我有一个谷歌Chrome坚持认为是法语的页面.这是它的快照:
http://yootles.com/outbox/overcleverchrome.html
请注意,我包含一个meta http-equiv标签,告诉它实际上是英文的:
<meta http-equiv="Content-language" content="en">
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.还有什么我可以做的来防止这种情况吗?
browser translation google-chrome cross-browser internationalization
我是Android编码和这个论坛的新手.当我试图运行项目来测试它时,我收到以下错误: -
"app_name"未翻译为af,am,ar,be,bg,ca,cs,da,de,el,en-rGB,en-rIN,es,es-rUS,et,et-rEE,fa,fi ,fr,fr-rCA,hi,hr,hu,hy-rAM,in,it,iw,ja,ka-rGE,km-rKH,ko,lo-rLA,lt,lv,mn-rMN,ms,ms -rMY,nb,nl,pl,pt,pt-rBR,pt-rPT,ro,ru,sk,sl,sr,sv,sw,th,tl,tr,uk,vi,zh-rCN,zh-rHK ,zh-rTW,zu
在 values/strings.xml
的strings.xml: -
Run Code Online (Sandbox Code Playgroud)<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">ThessMuseams</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string>
在Django模板中,您可以使用{{ _("Hello World") }}或{% trans "Hello World" %}标记要翻译的字符串.在文档中,"官方"方法似乎是{% trans %}标记,但_()语法也提到过一次.
这些方法有何不同(语法除外)以及为什么应该优先于其他方法?
一个区别是你显然不能使用{% trans %}标签和过滤器.但这是否意味着我可以_()随处使用,比如{{ _("String") }}?与使用{% trans "String" %}独立字符串以及_()标签和过滤器相比,它更加干净,更加一致.
我在我的Rails应用程序(config/locale/[en | de] .yml)中有一些翻译,我在我的视图中使用它<%=t "teasers.welcome" %>.例:
teasers:
welcome: "<strong>Welcome</strong> to the Website ..."
Run Code Online (Sandbox Code Playgroud)
在Rails 2.3.8中这很好用,使用Rails 3,HTML被转义并转换为<...如何防止这种形式的翻译并在我的翻译文件中使用HTML,如Rails 2.3.8?
我有一个twig文件和一个yml,我在其中定义了用于翻译的变量,例如.:
YML文件 -
variable.for.translation: Disponible, para tí
树枝文件的内容 -
<h2>"Hola, Follow {{ variableName }} en Twitter</h2>
Run Code Online (Sandbox Code Playgroud)
我想为变量做一个变量
Hola, Follow {{ variableName }} en Twitter
Run Code Online (Sandbox Code Playgroud)
在翻译文件中(即我的yml文件).
目前我这样做:
在YML中 -
follow.us.twitter: Hola, Follow
follow.us.twitter1: en Twitter
Run Code Online (Sandbox Code Playgroud)
在Twig -
<h2>{{ "follow.us.twitter"|trans([], "workend") }} {{ variableName }} {{ "follow.us.twitter1"|trans([], "workend") }}</h2>
Run Code Online (Sandbox Code Playgroud)
它的工作正常,但问题是我现在在树枝上有3个变量太多了:
1. follow.us.twitter
2. follow.us.twitter1
3. {{ variableName }}
Run Code Online (Sandbox Code Playgroud)
我尝试用1变量做到:
follow.us.in.twitter : Hola, Follow {{ variableName }} en Twitter
and
<h2>{{ "follow.us.in.twitter"|trans([], "workend") }}</h2>
Run Code Online (Sandbox Code Playgroud)
但它没有奏效问题是我正在使用的变量ie {{variableName}}.
有没有办法处理预定义的变量并在翻译文件中定义?
谢谢你的时间.
是否有可能在没有Lint抱怨MissingTranslation的单独资源文件中翻译某些字符串,而不是全部?
例如:我的应用程序的字符串都在res/values/strings.xml中.其中一个字符串是
<string name="postal_code">Postal Code</string>
由于"邮政编码"在美国通常被称为"邮政编码",我想在内容中添加另一个资源res/values-en-rUS/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="postal_code">Zip Code</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
但是,Lint在values/strings.xml中抱怨其他字符串,但在values-en-rUS/strings.xml中没有
我意识到你可以通过tools:ignore在values/strings.xml中指定来抑制警告.但这是不可取的,因为Lint警告在翻译成另一种语言时实际上很有用.
相反,是否可以在values-en-rUS/strings.xml文件中禁止警告,如在查找缺少的翻译时告诉Lint不要将该文件用作标准?
我正在为我们的网络应用程序开发多语言支持.我们在gettext库周围使用Django的助手.除了如何处理包含重要HTML标记的句子之外,一切都非常容易.这是一个简单的例子:
Please <a href="/login/">log in</a> to continue.
Run Code Online (Sandbox Code Playgroud)
以下是我能想到的方法:
更改链接以包括整个句子.无论在这种情况下改变是否是一个好主意,该解决方案的问题在于,当两者理想地独立时,UI变得依赖于i18n的需要.
将上面的整个字符串标记为翻译(包括格式).然后,翻译字符串也将直接包含HTML.这样做的问题是更改HTML格式需要更改所有翻译.
紧紧耦合多个翻译,然后使用字符串插值来组合它们.例如,可以单独标记短语"Please%s to continue"和"log in"进行翻译,然后合并."登录"已本地化,然后包装在HREF中,然后插入到翻译的短语中,这使%s保持翻译以标记链接应该去的位置.这种方法使代码复杂化并破坏了翻译字符串的独立性.
还有其他选择吗?其他人如何解决这个问题?
我的模型中包含的内容是:
def body_color_enum
[
['Aqua', '#009c9c'],
['Grey', '#6d6e71'],
['Yellow', '#ffe600'],
['White', 'white']
]
end
Run Code Online (Sandbox Code Playgroud)
我希望这些值来自翻译文件'en.yml'
en:
group:
hero:
hex1: '#6d6e71'
name1: 'Dark grey'
hex2: '#ccc'
name2: 'Light grey'
hex3: '#0099ce'
name3: 'Blue'
hex4: '#ffffff'
name4: 'White'
Run Code Online (Sandbox Code Playgroud)
我试过这个:
def body_color_enum
[
[t('group.hero.name1'), '#009c9c'],
['Grey', '#6d6e71'],
['Yellow', '#ffe600'],
['White', 'white']
]
end
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
undefined method `t' for #<Group:0x007fabad847ac8>
Run Code Online (Sandbox Code Playgroud)
所以我问的是如何从模型中访问我的本地文件,以便我可以在body_color_enum方法中设置我的值.
我正在使用{%trans%}模板标记.Django文档说:
{%trans%}模板标记转换为常量字符串(用单引号或双引号括起来)或变量内容:
{%trans"这是标题." %} {%trans myvar%}
https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/#trans-template-tag
我发现不可能{%trans myvar%},因为myvar在运行makemessages命令后根本不会出现在django.po文件中.
我用错了吗?有人可以帮我这个吗?
我搜索过谷歌和StackOverflow,并且仍然没有明确的答案,这是一个简单而自动的方法,但这里是场景:
NSLocalizedString()键.genstrings将检索所有1010个不同的字符串.这是一个痛苦,因为每次我做更新时,我都需要"大海捞针"找到这10个字符串.
更新2014年9月19日 - XCode 6 - Apple终于发布了对XLIFF导出和导入.strings文件的支持 在XCode 6中有什么新东西?本土化
灵源(v1.1.3)虽然大部分时间都是一个可爱的工具,但它开始成为另一种意义上的工具.它合并了更改,但是某些字符串在合并时不能正确匹配,因此每次执行扫描源时,它会创建100个新的重复键以及我之后的10个字符串,因此它可以完成更多工作.
FileMerge如下所示,尝试在genstrings输出文件的旧版本和新版本之间进行差异.该genstrings输出具有串字母顺序进行排序,以便10串分散在整个1000意味着有200个分歧审查.它一直匹配/*...*/和"..." = "..."和说,...已更新.它尚未更新,只是转移到文件中的新位置.越来越多看起来我将不得不编写一个自定义工具.
MacHG + FileMerge旁注,出于一些奇怪的原因,不喜欢使用Localizable.strings的工作副本从存储库中做差异.左窗格和右窗格都显示为空. 更新:将某些变更集中的变化保存为UTF-16,而某些变更集则以UTF-8为例进行调整,以便能够进行正确的差异.
Bash Script + FileMerge我每次添加新NSLocalizedString条目后都编写了以下脚本来帮助维护我的英文参考文件:
#LOCALISATION UPDATE SCRIPT
#
#This will create a temporary copy of the current 'en' reference file then generate the
#latest reference file using the 'genstrings' tool. …Run Code Online (Sandbox Code Playgroud) translation ×10
localization ×4
android ×2
django ×2
html ×2
android-lint ×1
browser ×1
bundles ×1
gettext ×1
ios ×1
ipad ×1
iphone ×1
lint ×1
rails-i18n ×1
ruby ×1
symfony ×1
twig ×1