将字符串翻译成具有男性/女性名词的语言


9

因此,在英语中,我们没有性别名词。它始终是“桌子”或“桌子”,无需担心它是“ une table”还是“ un tableau”(法语)。所以我的问题是,在处理法语.mo文件时,如何翻译一个字符串,例如:

您可以在子主题中包含%s

因为“ a”取决于%s是什么?

Answers:


7

如果每个字符串都有自己的翻译模板,这不是问题。

如果将字符串You can include a %s in a childtheme.多次用于不同的名词,则该字符串不可翻译。

一个例子,取自最近的一篇文章New %s用德语(是的,我们也有性别名词)…

  • Neues Buch(对于书籍而言,是中性的)
  • Neuer电影(用于电影,男性)

…所以您必须编写New book and New movieYou can include a logo in a child theme. and You can include a stylesheet in a child theme.

边注

这就是翻译文件占用大量内存的原因之一:您必须“重复”许多非常相似的字符串。虽然使用32MB PHP内存的英语WordPress安装可能会运行良好,但如果将其与德语或法语翻译一起使用,则安装将会死。

如果您的主题或插件在前端和后端使用许多可转换字符串,请考虑使用两个文件:一个用于后端,一个用于前端的单独文件。

load_theme_textdomain( 
    'your_text_domain', 
    get_template_directory() . '/languages' . ( is_admin() ? '/backend' : '/frontend' )
);

WordPress核心刚刚更改为该系统,以获得更好的性能。


感谢toscho。我想我需要更深入地研究原始字符串的用途,并查看%s的用途。如何分隔后端和前端字符串?
helgatheviking 2012年

@helgatheviking看到我的更新。
fuxia

知道了。感谢那。还有一件事,如果该字符串仅使用一次,您是否可以将其留给%s并仅提供上下文说明?
helgatheviking 2012年

@helgatheviking是的,您可以这样做。但是我不知道这如何使翻译更容易。上下文参数也必须是硬编码的字符串。您不能在此处使用PHP变量。
fuxia

是的,我们也有性别名词 ”,让我想起了马克·吐温:每当文学德国人潜入一个句子时,这就是你最后一次看到他,直到他出现在他大西洋的另一边,并且在他的动词中口。
brasofilo 2012年

0

Helga,你是Viking ...我想这是一个简单而有趣的问题的水坝。

简而言之,问题似乎是%s而不是性别:

您可以将其包含%s在儿童主题中

使事情复杂化,我不知道gettext toscho的重新翻译向导是否可以解决这个问题,或者它是否离题,应该由WP Polyglots来处理

旁注:操作方法:使用PoEdit翻译主题/插件的复数形式


,这个翻译的东西很复杂。显然,我认为母语是理所当然的!如果这个线程在WP Polyglots上更好,我希望有人能将其移动。
helgatheviking 2012年

好吧,现在,反之亦然,有了toscho提供的规范答案,WP Polyglots可以将此帖子作为该主题的参考:)
brasofilo 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.