Порылся в коде и понял, что это баг Вукоммерс. Единицы измерения выводяться в таб с аттрибутами не оборачиваясь в функции локализации.
Локализация единиц измерения веса
Вывод осуществляется в файле
.../plugins/woocommerce/templates/single-product/product-attributes.php
Этот файл нужно скопировать к себе в тему и расположить по адресу:
.../themes/[MY-THEME]/woocommerce/single-product/product-attributes.php
После этого внести в него изменения:
Строка 39
<td class="product_weight"><?php echo wc_format_localized_decimal( $product->get_weight() ) . ' ' . esc_attr( get_option( 'woocommerce_weight_unit' ) ); ?></td>
Нужно обернуть esc_attr( get_option( 'woocommerce_weight_unit' ) ) в функцию __()
<td class="product_weight"><?php echo wc_format_localized_decimal( $product->get_weight() ) . ' ' . __(esc_attr( get_option( 'woocommerce_weight_unit' ) ), 'woocommerce'); ?></td>
Локализация единиц измерения длины
К сожалению, значение длины выводиться функцией get_dimensions(), которая прописана в ядре и ее нельзя переписывать. Функция возвращает уже полную строку с цифрами и единицей измерения. Но перед выводом строка пропускается через фильтр woocommerce_product_dimensions.
В файле functions.php можно заменить значения единицы длины с английского языка на русский.
function localize_demensions_units($dimensions) {
return str_replace('m', 'м', $dimensions);
}
add_filter('woocommerce_product_dimensions', 'localize_demensions_units');
Нужно подставить нужные значения.