php WooCommerce我的帐户地址标签未以网站语言显示

btqmn9zl  于 2023-05-05  发布在  PHP
关注(0)|答案(2)|浏览(148)

当我使用阿拉伯语时,“我的帐户”页面中的“地址”选项卡没有显示网站语言,而它应该已经被翻译。
它的占位符“空突出显示的空间在屏幕截图”仍然工作,并导航到正确的页面预期。
我使用最新的WordPress 5.5和WooCommerce 4.4.1,它工作正常,如果我切换到英语和阿拉伯语AFAIK工作之前。
https://imgur.com/a/HIZTG3h
出于测试目的,我使用TranslatePress插件插入字符串的阿拉伯语翻译,它只在使用插件时工作。
我还尝试使用开发人员控制台进行调试,并尝试使用下面的代码进行调试,但无济于事,甚至在使用默认主题时也存在这个问题。
1-负责显示菜单标签的代码:wp-content\plugins\woocommerce\templates\myaccount\navigation.php

<nav class="woocommerce-MyAccount-navigation">
    <ul>
        <?php foreach ( wc_get_account_menu_items() as $endpoint => $label ) : ?>
            <li class="<?php echo wc_get_account_menu_item_classes( $endpoint ); ?>">
                <a href="<?php echo esc_url( wc_get_account_endpoint_url( $endpoint ) ); ?>"><?php echo esc_html( $label ); ?></a>
            </li>
        <?php endforeach; ?>
    </ul>
</nav>

<?php do_action( 'woocommerce_after_account_navigation' ); ?>

2-显示的项目代码,如果我将“地址”更改为其他内容,则会显示:wp-content\plugins\woocommerce\includes\wc-account-functions.php

$items = array(
        'dashboard'       => __( 'Dashboard', 'woocommerce' ),
        'orders'          => __( 'Orders', 'woocommerce' ),
        'downloads'       => __( 'Downloads', 'woocommerce' ),
        'edit-address'    => _n( 'Addresses', 'Address', (int) wc_shipping_enabled(), 'woocommerce' ),
        'payment-methods' => __( 'Payment methods', 'woocommerce' ),
        'edit-account'    => __( 'Account details', 'woocommerce' ),
        'customer-logout' => __( 'Logout', 'woocommerce' ),
    );

3-翻译字符串:wp-content\languages\plugins\woocommerce-ar.po

#: includes/class-wc-query.php:126
#: includes/admin/settings/class-wc-settings-advanced.php:284
#: includes/wc-account-functions.php:102
msgid "Addresses"
msgid_plural "Address"
msgstr[0] "العناوين"
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
pvcm50d1

pvcm50d11#

使用Loco Translate修复了这个问题,根据github问题反馈和插件目录上的woocommerce支持论坛更新了阿拉伯语翻译PO和MO文件。
https://github.com/woocommerce/woocommerce/issues/27428https://wordpress.org/support/topic/updating-translations-after-updates/

j2cgzkjk

j2cgzkjk2#

我的解决方案是使用JavaScript代码

let addressLink=document.querySelector('.woocommerce-MyAccount-navigation-link--edit-address a')
if (addressLink!=null) {
if(addressLink.innerText==""){
    addressLink.innerText="العنوان"
}}

相关问题