Forum Replies Created

Viewing 15 replies - 1 through 15 (of 277 total)
  • Thread Starter bluantinoo

    (@bluantinoo)

    This works:

    add_action( 'init', 'xxx_theme_setup'); 

    function xxx_theme_setup() {
    global $l10n, $wp_textdomain_registry;
    $domain = 'xxx_xxx';
    $locale = get_locale();
    $wp_textdomain_registry->set($domain, $locale, get_stylesheet_directory() . '/languages');
    if ( isset( $l10n[ $domain ] )) {
    unset( $l10n[ $domain ] );
    }
    load_child_theme_textdomain($domain, get_stylesheet_directory() . '/languages');
    }

    This does NOT work:

    add_action( 'init', 'xxx_theme_setup'); 

    function xxx_theme_setup() {
    $domain = 'xxx_xxx';
    unload_textdomain($domain);
    load_child_theme_textdomain($domain, get_stylesheet_directory() . '/languages');
    }

    Trivia: looks like it all started here https://github.com/WordPress/gutenberg/issues/66547

    • This reply was modified 5 days, 22 hours ago by bluantinoo.
    Thread Starter bluantinoo

    (@bluantinoo)

    I’m not using any multi language setup, no switcher. Just a localized webiste.
    I’d like to try for you the unload_textdomain… but I’m not sure what I should try to unload…

    If you want to stop website from flooding debug.log with this messages, the only way I found is through set_error_handler function.

    Just put this in the wp-config.php file

    set_error_handler(function($errno, $errstr, $errfile, $errline) {
    // Search if the message contains "_load_textdomain_just_in_time"
    if (strpos($errstr, '_load_textdomain_just_in_time') !== false) {
    return true; // suppress the specific error
    }
    // for all other messages, just act normal.
    return false;
    }, E_USER_NOTICE | E_NOTICE);

    NOTE: this does not fix the issue (that will be fixe by plugin autors I hope), but at least you don’t end up having huge debug.log on your server.

    Thread Starter bluantinoo

    (@bluantinoo)

    I tried the fix suggested here: https://core.trac.www.ads-software.com/ticket/62337#comment:19

    it works.

    It looks like load_theme_textdomain and load_child_theme_textdomain need to be called before after_setup_theme, as I always did.

    And yes, your plugin is not involved in this issue, on the contrary, it helps working around it.

    thanks again.

    Thread Starter bluantinoo

    (@bluantinoo)

    Sorry @timwhitlock but I don’t understand what means “file layout”, could you explain a bit?

    The way I use translations in my theme does not involve elementor at all.

    I think the issue may be this one: https://core.trac.www.ads-software.com/ticket/62337

    Thread Starter bluantinoo

    (@bluantinoo)

    @timwhitlock I double checked. In my Child theme there’s no need for system or author. As long as I have the translations in custom folder it’s working.

    This is the beginning my child theme xxx-ja.po file:

    msgid ""
    msgstr ""
    "Project-Id-Version: Hello Elementor Child IIC\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2021-11-08 14:50+0000\n"
    "PO-Revision-Date: 2024-11-14 10:29+0000\n"
    "Last-Translator: \n"
    "Language-Team: Japanese\n"
    "Language: ja\n"
    "Plural-Forms: nplurals=1; plural=0;\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=UTF-8\n"
    "Content-Transfer-Encoding: 8bit\n"
    "X-Generator: Loco https://localise.biz/\n"
    "X-Loco-Version: 2.6.6; wp-6.7\n"
    "X-Domain: iic_corsi"

    #: includes/inc-woocommerce.php:900
    msgid "%d Place Still Available"
    msgid_plural "%d Places Still Available"
    msgstr[0] "残席%d名"

    #: includes/inc-shortcodes.php:821
    #, php-format
    msgid "%s Available classes"
    msgstr "開講クラス数:%s"

    #: includes/inc-shortcodes.php:814
    #, php-format
    msgid "%s Class Available"
    msgstr "開講クラス数:%s"

    Parent theme has translations only in the default “system” folder (never touched or used it).

    this is the beginning of my hello-elementor-ja.po

    # Translation of Themes - Hello Elementor in Japanese
    # This file is distributed under the same license as the Themes - Hello Elementor package.
    msgid ""
    msgstr ""
    "PO-Revision-Date: 2024-06-21 13:43:06+0000\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=UTF-8\n"
    "Content-Transfer-Encoding: 8bit\n"
    "Plural-Forms: nplurals=1; plural=0;\n"
    "X-Generator: GlotPress/4.0.1\n"
    "Language: ja_JP\n"
    "Project-Id-Version: Themes - Hello Elementor\n"

    #. Description of the theme
    #: style.css
    #, gp-priority: high
    msgid "Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators."
    msgstr "Hello Elementor は、Elementor サイトビルダープラグインとシームレスに動作するように特別に構築された、軽量でミニマルな WordPress テーマです。このテーマは無料のオープンソースで、柔軟で使いやすく、カスタマイズ可能なサイトを求めるユーザー向けに設計されています。パフォーマンスが最適化されたテーマは、Elementor のドラッグアンドドロップサイトビルダーを使用してユーザーが独自のデザインを構築するための強固な基盤を提供します。そのシンプルさと柔軟性により、初心者にも経験豊富な Web クリエイターにも最適です。"

    #. Theme Name of the theme
    #: style.css
    #, gp-priority: high
    msgid "Hello Elementor"
    msgstr "Hello Elementor"

    #: includes/settings/settings-footer.php:600
    #: includes/settings/settings-header.php:634
    msgid "Elementor Pro"
    msgstr "Elementor Pro"

    Hope it helps

    Thread Starter bluantinoo

    (@bluantinoo)

    I never had child theme translations in system folder. Just a copy in author was working.

    Now it works only in custom folder.
    No need of system or author copies

    I’ll come back with others details asap

    • This reply was modified 6 days, 1 hour ago by bluantinoo.

    For me 2.6.12 of Loco Translate fixes also Woocommerce issue.

    I tried deleting system and author translations leaving only the custom one. It’s still working.

    On my child theme instead, I have to keep translations in custom folder, if I leave files only in author or system it does not work(I’m loading with the load_child_theme_textdomain function).

    I’m a bit confused, but the important thing is that we can present the website in the right language.

    So, many thanks for your commitment @timwhitlock

    Actually I don’t really know what to do. there’s a lot of people with this issue.

    For the moment we don’t have a fix.
    https://www.ads-software.com/support/topic/translations-broken-in-woocommerce-after-wordpress-core-upgrade-to-6-7/
    https://www.ads-software.com/support/topic/automatic-language-change-3/
    https://www.ads-software.com/support/topic/woocommerce-language-problem-2/
    https://www.ads-software.com/support/topic/unexpected-change-of-language-missing-messages/

    Looks like for the moment the only way to go is downgrading WP to 6.6

    • This reply was modified 6 days, 4 hours ago by bluantinoo.
    • This reply was modified 6 days, 4 hours ago by bluantinoo.
    bluantinoo

    (@bluantinoo)

    Mee too. There’s definitely something wrong with translations after WP 6.7

    bluantinoo

    (@bluantinoo)

    After updating WP to 6.7 all my Woocommerce translations does not work anymore.

    bluantinoo

    (@bluantinoo)

    @timwhitlock please forget my last post. I did not really understand what to do.

    Now I’ve used the debugger properly to check a Woocommerce translation.

    I’ve copied the Woo translations (both .mo and .po files) in all 3 places: author, system and custom.

    I’m using the dev version of Loco.

    this is the proper debug result for the string “choose an option” from Woocomerce

    Author translations:

     plugins/woocommerce/i18n/languages/woocommerce-ja.po → 選択してください

    ?plugins/woocommerce/i18n/languages/woocommerce-ja.mo?→?選択してください

    Custom translations:

     languages/loco/plugins/woocommerce-ja.po → 選択してください

     languages/loco/plugins/woocommerce-ja.mo → 選択してください

    ?languages/loco/plugins/woocommerce-ja.l10n.php?→?選択してください

    System translations:

     languages/plugins/woocommerce-ja.po → 選択してください

     languages/plugins/woocommerce-ja.mo → 選択してください

     languages/plugins/woocommerce-ja.l10n.php → 選択してください

    Trace log

    Running test for domain => woocommerce
    Have locale: ja
    ~ filter:pre_determine_locale: none => ja
    Have plugin bundle => WooCommerce
    Unloading text domain for auto loader
    Removing JIT lock
    > unload_textdomain returned false
    Query: msgid "Choose an option"
    Calling __( "Choose an option","woocommerce" )
    ~ filter:pre_determine_locale: none => ja
    ~ filter:lang_dir_for_domain {wp_lang_dir}/plugins/
    ~ action:load_textdomain: {wp_lang_dir}/plugins/woocommerce-ja.mo
    ~ filter:load_textdomain_mofile: {wp_lang_dir}/plugins/woocommerce-ja.mo (exists=1)
    ~ filter:translation_file_format: php
    ~ action:load_textdomain: {loco_lang_dir}/plugins/woocommerce-ja.l10n.php
    ~ filter:load_textdomain_mofile: {loco_lang_dir}/plugins/woocommerce-ja.l10n.php (exists=1)
    ~ filter:translation_file_format: php
    ~ filter:load_translation_file: {loco_lang_dir}/plugins/woocommerce-ja.l10n..l10n.php (exists=0)
    ~ filter:load_translation_file: {loco_lang_dir}/plugins/woocommerce-ja.l10n.php (exists=1)
    ~ filter:load_translation_file: {wp_lang_dir}/plugins/woocommerce-ja.l10n.php (exists=1)
    ~ filter:gettext: ["Choose an option"] =>"選択してください"
    ====>| msgstr "選択してください"
    Translated result state => true
    Searching 5 possible locations for string versions
    > found in {wp_content_dir}/plugins/woocommerce/i18n/languages/woocommerce-ja.po => '選択してください'
    > found in {wp_content_dir}/plugins/woocommerce/i18n/languages/woocommerce-ja.mo => '選択してください'
    > found in {loco_lang_dir}/plugins/woocommerce-ja.po => '選択してください'
    > found in {loco_lang_dir}/plugins/woocommerce-ja.mo => '選択してください'
    > found in {loco_lang_dir}/plugins/woocommerce-ja.l10n.php => '選択してください'
    > found in {wp_lang_dir}/plugins/woocommerce-ja.po => '選択してください'
    > found in {wp_lang_dir}/plugins/woocommerce-ja.mo => '選択してください'
    > found in {wp_lang_dir}/plugins/woocommerce-ja.l10n.php => '選択してください'
    > 8 matches in 5 locations; 564 files searched

    It looks like translations are there,

    but frontend they are not shown.

    bluantinoo

    (@bluantinoo)

    @timwhitlock I have the same issue:

    • I’ve updated plugin to dev version
    • woocommerce shows 2 translations: system and custom (the custom one says there are lots of pending strings)

    But frontend is not translated.

    Your debug gives the following result:

    Showing all %1$d results

    this is the trace log:

    Running test for domain => woocommerce
    Have locale: ja_JA
    ~ filter:pre_determine_locale: none => ja_JA
    Have plugin bundle => WooCommerce
    Unloading text domain for auto loader
    Removing JIT lock

    unload_textdomain returned false
    Query: msgid “Showing all %1$d result”
    | msgid_plural “Showing all %1$d results” (n=37)
    Calling _n( “Showing all %1$d result”,”Showing all %1$d results”,37,”woocommerce” )
    ~ filter:pre_determine_locale: none => ja_JA
    ~ filter:lang_dir_for_domain {wp_content_dir}/plugins/woocommerce/i18n/languages/
    ~ action:load_textdomain: {wp_content_dir}/plugins/woocommerce/i18n/languages/woocommerce-ja_JA.mo
    ~ filter:load_textdomain_mofile: {wp_content_dir}/plugins/woocommerce/i18n/languages/woocommerce-ja_JA.mo (exists=0)
    ~ filter:translation_file_format: php
    ~ filter:load_translation_file: {wp_content_dir}/plugins/woocommerce/i18n/languages/woocommerce-ja_JA.l10n.php (exists=0)
    ~ filter:load_translation_file: {wp_content_dir}/plugins/woocommerce/i18n/languages/woocommerce-ja_JA.mo (exists=0)
    ~ filter:gettext: [“Showing all %1$d result”,”Showing all %1$d results”,37] =>”Showing all %1$d results”
    ====>| msgstr “Showing all %1$d results”
    ! Text domain not loaded after _n() call completed
    ? get_translations_for_domain => NOOP_Translations
    ! Can’t get Plural-Forms; Using built-in rules
    Parsing header: nplurals=1; plural=0;
    Selected plural form [0]
    Translated result state => true
    Searching 5 possible locations for string versions
    0 matches in 5 locations; 0 files searched

    Hope it helps.

    Here Just to confirm that:

    fixed the issue.

    Now translations are loading.

    thanks

    bluantinoo

    (@bluantinoo)

    Is the FEATUREDIMAGE placeholder made to show the Gift Card Template featured image or the Gift Card Product featured image?

Viewing 15 replies - 1 through 15 (of 277 total)