[wp-trac] [WordPress Trac] #49625: load_theme_textdomain() opens local files without domain in their name
WordPress Trac
noreply at wordpress.org
Wed Mar 11 17:52:08 UTC 2020
#49625: load_theme_textdomain() opens local files without domain in their name
--------------------------+------------------------------
Reporter: marekdedic | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: I18N | Version: 5.3.2
Severity: normal | Resolution:
Keywords: | Focuses:
--------------------------+------------------------------
Description changed by SergeyBiryukov:
Old description:
> Hi,
>
> I am developing a theme called `crdm-modern` and want to add translations
> for the language `cs_CZ`. I want to load local `.mo` files as the
> translations. In order to do that, I placed a file called `crdm-modern-
> cs_CZ.mo` in the theme in the `languages` folder. I tried to use this by
> calling `load_theme_textdomain( 'crdm-modern', get_stylesheet_directory()
> . '/languages' )`. However this failed.
>
> Looking at the source of the function `load_theme_textdomain()`
> [https://developer.wordpress.org/reference/functions/load_theme_textdomain/],
> I see the following line:
>
> `return load_textdomain( $domain, $path . '/' . $locale . '.mo' );`
>
> So this would load the file `languages/cs_CZ.mo`. I think this is a bug
> and it should instead try to load the file `languages/crdm-modern-
> cs_CZ.mo`. This would be in line with how the function
> `load_plugin_textdomain()` works - that's wha I think it is a bug.
>
> Looking at the code, I think the issue was introduced in
> [https://core.trac.wordpress.org/changeset/37414] and could be solved by
> replacing
>
> `return load_textdomain( $domain, $path . '/' . $locale . '.mo' );`
>
> with
>
> `return load_textdomain( $domain, $path . '/' . $mofile );`
New description:
Hi,
I am developing a theme called `crdm-modern` and want to add translations
for the language `cs_CZ`. I want to load local `.mo` files as the
translations. In order to do that, I placed a file called `crdm-modern-
cs_CZ.mo` in the theme in the `languages` folder. I tried to use this by
calling `load_theme_textdomain( 'crdm-modern', get_stylesheet_directory()
. '/languages' )`. However this failed.
Looking at the source of the function `load_theme_textdomain()`
[https://developer.wordpress.org/reference/functions/load_theme_textdomain/],
I see the following line:
`return load_textdomain( $domain, $path . '/' . $locale . '.mo' );`
So this would load the file `languages/cs_CZ.mo`. I think this is a bug
and it should instead try to load the file `languages/crdm-modern-
cs_CZ.mo`. This would be in line with how the function
`load_plugin_textdomain()` works - that's wha I think it is a bug.
Looking at the code, I think the issue was introduced in [37414] and could
be solved by replacing
`return load_textdomain( $domain, $path . '/' . $locale . '.mo' );`
with
`return load_textdomain( $domain, $path . '/' . $mofile );`
--
--
Ticket URL: <https://core.trac.wordpress.org/ticket/49625#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list