- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在考虑使用 XLIFF 来标准化企业内的本地化工作。我是 xliff 的新手,在做了一些研究后,我想出了以下使用它的一般过程:
到目前为止一切都很清楚,但是我想知道什么是添加或修改字符串资源时的最佳做法?我不希望每次以原始格式(resx/properties)将新字符串添加到字符串资源时都重新翻译所有资源
如果有对翻译的版本控制,那也很棒 - 这样如果标记有相同版本的多种语言翻译将被合并(提供相同的字符串集)。并且在添加新字符串或修改现有字符串时更新版本。
有现成的解决方案吗?还是我们必须自己构建?
编辑:
我在 Okapi Rainbow 的 Pipeline 库中找到了 Diff Leverage 步骤,但我很难让它工作。这里有两个 xliff 文件。第一个是翻译成法语的第一个资源版本,第二个是从新版本资源生成的文件,并进行了以下更改:
更新了 1 个字符串(AdminTitleResource 现在是 Administration Resource)
删除了 1 个字符串(HomeLinkResource 消失了)
添加了 2 个新字符串(项目和公司)
但是运行 Diff Leverage 管道不会产生翻译的智能合并。有什么想法吗?
旧版本资源的翻译 xliff:
<?xml version="1.0" encoding="windows-1252"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:okp="okapi-framework:xliff-extensions" version="1.2">
<file original="/Messages.resx" source-language="en-us" target-language="fr-fr" datatype="xml">
<body>
<trans-unit id="1" resname="AccessDenied" xml:space="preserve" approved="yes">
<source xml:lang="en-us">Access denied</source>
<target xml:lang="fr-fr" state="translated">Accès refusé </target>
<note>Error message</note>
</trans-unit>
<trans-unit id="2" resname="AdminTitleResource" xml:space="preserve" approved="yes">
<source xml:lang="en-us">Administration</source>
<target xml:lang="fr-fr" state="translated">Administration</target>
<note></note>
</trans-unit>
<trans-unit id="3" resname="HomeLinkResource" xml:space="preserve" approved="yes">
<source xml:lang="en-us">Main page</source>
<target xml:lang="fr-fr" state="translated">Page web principale</target>
<note></note>
</trans-unit>
<trans-unit id="4" resname="SelectCategoriesResource" xml:space="preserve" approved="yes">
<source xml:lang="en-us">Categories</source>
<target xml:lang="fr-fr" state="translated">Catégories</target>
<note></note>
</trans-unit>
<trans-unit id="5" resname="SelectConfigResource" xml:space="preserve">
<source xml:lang="en-us">Configuration</source>
<target xml:lang="fr-fr" state="needs-review-translation">Paramètres</target>
<note></note>
</trans-unit>
<trans-unit id="6" resname="SelectGroupsResource" xml:space="preserve">
<source xml:lang="en-us">User groups</source>
<target xml:lang="fr-fr" state="needs-review-translation">Utiliser le groupe</target>
<note></note>
</trans-unit>
</body>
</file>
</xliff>
如何获取仅包含需要翻译的字符串的 XLIFF 文件?
具有上面所列更改的新文件:
<?xml version="1.0" encoding="windows-1252"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:okp="okapi-framework:xliff-extensions" version="1.2">
<file original="/Messages_v2.resx" source-language="en-us" target-language="fr-fr" datatype="xml">
<body>
<trans-unit id="1" resname="AccessDenied" xml:space="preserve">
<source xml:lang="en-us">Access denied</source>
<target xml:lang="fr-fr">Access denied</target>
<note>Error message</note>
</trans-unit>
<trans-unit id="2" resname="AdminTitleResource" xml:space="preserve">
<source xml:lang="en-us">Administration Resource</source>
<target xml:lang="fr-fr">Administration Resource</target>
<note></note>
</trans-unit>
<trans-unit id="3" resname="SelectCategoriesResource" xml:space="preserve">
<source xml:lang="en-us">Categories</source>
<target xml:lang="fr-fr">Categories</target>
<note></note>
</trans-unit>
<trans-unit id="4" resname="SelectConfigResource" xml:space="preserve">
<source xml:lang="en-us">Configuration</source>
<target xml:lang="fr-fr">Configuration</target>
<note></note>
</trans-unit>
<trans-unit id="5" resname="SelectGroupsResource" xml:space="preserve">
<source xml:lang="en-us">User groups</source>
<target xml:lang="fr-fr">User groups</target>
<note></note>
</trans-unit>
<trans-unit id="6" resname="Project" xml:space="preserve">
<source xml:lang="en-us">Project</source>
<target xml:lang="fr-fr">Project</target>
<note></note>
</trans-unit>
<trans-unit id="7" resname="Company" xml:space="preserve">
<source xml:lang="en-us">Company</source>
<target xml:lang="fr-fr">Company</target>
<note></note>
</trans-unit>
</body>
</file>
</xliff>
最佳答案
这里有一个答案: http://tech.groups.yahoo.com/group/okapitools/message/2494
编辑:链接消息的内容
Hi Paul,
I am trying to figure out how to use the diff leverage to improve the translation experience and get an update xliff file when merging/leveraging existing translation with new version of the document with added/modified/removed strings.
正如 Jim 指出的那样,您可以利用 XLIFF 文件 基于 ID 的步骤。
但是 Diff 杠杆步骤也可以。方法如下:
我假设您有 XLIFF 文件并且只想更新它们。 您可以创建管道来执行其他操作,例如创建 翻译工具包等,但这将使事情变得简单。
首先您需要将新的源文件放入输入列表 1 和 输入列表 2 中的翻译文件。
然后您可以创建以下管道:
- 用于过滤事件的原始文档
- 差异化利用
- 过滤原始文档的事件
在 Diff Leverage 步骤的参数中:确保选项 “复制到/越过目标”已设置。
然后执行管道。
我附上了原始新之间的比较(compare_out.html) 文件和输出文件。如您所见,所有可能的文字 杠杆现在在输出中。您输入的“AdminTitleResource”不是 已翻译,因为它是翻译文件中的来源 不同,并且您的两个新条目也未翻译。
您还会注意到那里的新属性 approved='yes' 表示翻译完成。该额外标志可用于 将需要翻译的条目与需要翻译的条目区分开来 被杠杆化了。
出于某种原因,有两个杠杆条目没有它:我会有 看看那个并报告回来。这可能是一个错误或某些情况我 不记得了(也许 Jim 记得)。
基于 Id 的复制步骤几乎可以做得更好。它会复制 通过匹配条目的重命名来翻译文本。我说 几乎是因为目前它不看源文本,所以你 即使新来源不同(这不是 '利用'步骤)。但我们可以添加一个选项来增加额外的费用 检查这将使该步骤像杠杆步骤一样工作。恶劣地 试着找时间做这件事。
希望对您有所帮助, -伊夫
关于java - XLIFF、版本控制或翻译更新过程(Diff Leverage 步骤),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508066/
翻译自官方wiki: https://github.com/facebook/rocksdb/wiki/Write-Stalls 转载请注明出处: https://www.cnblogs.c
译者注:在微服务架构设计,构建API和服务间通信技术选型时,对 REST 和 gRPC 的理解和应用还存在知识盲区,近期看到国外的这篇文章: A detailed comparison of
rocksdb调试指引 翻译自官方wiki: https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide 转载请注明出处: h
传统的ASP.NET Web Forms是一个非常好的主意,但现实需求非常复杂。随着时间的推移,现实世界的项目暴露出Web Forms的一些不足之处: “沉重的”视图状态:现实中在http请求之间
翻译自:Top 10 questions of Java Strings 简单地说,”==”测试两个字符串的引用是否相同,equals()测试两个字符串的值是否相同。除非你希望检
你好,今天我要和大家分享一些东西,举例来说这个在JavaScript中用的很多。我要讲讲回调(callbacks)。你知道什么时候用,怎么用这个吗?你真的理解了它在java环境中的用法了吗?当我也问
Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个
原文: [A Dive into .Net 8 Native AOT and Efficient Web Development] 作者: [sharmila subbiah] 引言 随着 .NE
这是Fiddle 是否可以在 angular-translate 中检查其他语言的键值是否可用,然后它可以从其他语言中提取该键值? 就像在示例中,我有英语和西类牙语。并且一个键值(例如“CONFIRM
我希望能够使用 $this->__('String to translate')在外部脚本中。我该怎么做呢? Magento 版本 1.5.1.0 . 最佳答案 我认为设置语言环境的正确方法是: Ma
我有一个开关小部件,它使用自定义数据属性值来标记自己。 .switch.switch-text .switch-label::before { right: 1px; color: #c2cf
是否有人遇到过这样的情况:用 Java 编写并由(例如)法国程序员编写的现有代码库必须转换为英语程序员可以理解的代码?这里的问题是变量/方法/类名称、注释等都将采用该特定语言。 现在有可用的自动化解决
维基百科和其他一些网站将解释器描述为将代码从某种高级语言翻译成某种低级语言的翻译器。然而,有很多解释,包括在 stackoverflow 中,它说解释器直接执行作为输入的指令,而无需事先转换。那么解释
我想将基本动画应用于自定义单元格中的某些元素,例如标签、图像:特别是,我想让这些动画在我触摸单元格内部时也启动。我是初学者,我只学会了使用 animateWithDuration 和 transiti
这个问题在这里已经有了答案: NSDateFormatter and current language in iOS11 (5 个回答) 已关闭 3 年前。 当使用这样的 DateComponentF
我想在点击 var about 时移动 div.willshow。但我单击那个 btn,只有它获得类 active。然后我再次单击那个 btn 它失去了类。如果我再点击一次,每项任务都无法正常工作。
我想要一个按钮在悬停时向下移动几个像素,但它又回来了。当您还在上面徘徊时,它不应该留在原处吗? Email Me .btn {background: #2ecc71; padding: .5em 1e
在我的应用程序中,我想添加功能将页面翻译为用户在浏览器中设置的所有语言,如果没有可用的语言,则翻译为默认英语...问题是浏览器与语言支持不一致。我找到了一个解决方法,我对一些返回用户语言的 Web 服
我的应用程序有一个 Help.htm 文件,用谷歌翻译翻译得相当好。我想将菜单项标记为“请勿翻译”,但我发现并尝试过的 HTML 标签都不起作用。对于以下内容,我使用了谷歌翻译网站 - 它翻译了我没想
我有以下代码: span { width:200px; height:100px; background-color:red; border:1px solid black; } span.c2 {
我是一名优秀的程序员,十分优秀!