Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上处理具有屈折变化的语言的翻译字符串_Android_Translation - Fatal编程技术网

在Android上处理具有屈折变化的语言的翻译字符串

在Android上处理具有屈折变化的语言的翻译字符串,android,translation,Android,Translation,我不确定这是否是发布这篇文章的合适论坛,但我不确定在某些语言中的名词发生屈折变化的特定场景中如何组织我的字符串。用一个例子来解释这个问题比较容易。考虑下面的字符串: <string name="my_string">Show you more information in context with each <xliff:g id="item_name">%s</xliff:g></string> 在上下文中显示每个 % 在这种情况下

我不确定这是否是发布这篇文章的合适论坛,但我不确定在某些语言中的名词发生屈折变化的特定场景中如何组织我的字符串。用一个例子来解释这个问题比较容易。考虑下面的字符串:

<string name="my_string">Show you more information in context with each 
    <xliff:g id="item_name">%s</xliff:g></string>
在上下文中显示每个
%
在这种情况下,元素
%s
可以替换为,例如,“报警”或“警报”,具体取决于我的应用程序中的上下文。但是,这不适用于影响名词的语言,例如芬兰语

在芬兰语中,
%s
在应用程序中被替换为单词“hälytys”(=报警),但在本例中,语法正确的形式是“hälytyksen”(芬兰语中单数报警的一种屈折形式,由后置引起,不幸的是,没有很好的方法避免屈折)


所以我似乎不能用可替换的名词来表示这种通用的字符串元素。除了为
%s
的每个可能值硬编码字符串元素外,您还有什么建议吗?

将字符串以这种方式放入string.xml中

<string name="my_string">Show you more information in context with each &lt;xliff:g id=\"item_name\"&gt; %s &lt;\/xliff:g&gt;</string>
产出将是:

Show you more information in context with each <xliff:g id="item_name"> alarm </xliff:g>
在每个报警的上下文中显示更多信息

我看到的唯一解决方案是两个不同的句子,其中%s名词可以屈折,而句子W不是这种情况。您找到解决此问题的方法了吗?我真的对这个很感兴趣。。。我们公司正在使用Gettext for Python,我认为可能有类似的方法/库来处理这个问题。不幸的是,似乎没有简单的解决方案。唯一正确的方法是用完整的句子,每一个你想要的占位符单词对应一个。谢谢,但这是我已经在做的。问题是“报警”一词在一些语言中有屈折变化,比如芬兰语。所以我不能再翻译另一个带有单词“alarm”的字符串引用,因为它可以在不同的语言中得到不同的形式。有什么想法吗?
Show you more information in context with each <xliff:g id="item_name"> alarm </xliff:g>