本地化资源.NET -如何保持它们同步?

yduiuuwa  于 2023-05-30  发布在  .NET
关注(0)|答案(9)|浏览(393)

当我们遵循本地化指南时,我们最终至少会得到两个资源文件。
Resource.resxResource.CI.resxResource.CI.resx是特定的CultureInfo资源。假设我们在Resource.resx中添加了100个字符串对,并希望在另一个资源中转换这些键。我们现在就可以复制粘贴它们,然后翻译它们,第一次可能会起作用。
然而,在我们翻译字符串之后,保持文件同步变得很困难--它会自动重新排序字符串,我目前不明白应该用什么方法来确保每个字符串都被本地化。
由于资源字符串应该是相互链接的,并且需要完成额外的工作以确保正确构建附属程序集,因此我希望有一个类似“确保每个资源字符串都存在于本地化资源文件中”的功能,但我担心缺少一个。

j0pj023g

j0pj023g1#

RESX Synchroniser可能会做你正在寻找的东西
当您在Visual Studio中编辑.NET资源文件时,无论是手动还是使用“生成本地资源”命令,IDE都只更新区域性不变的资源:如果您有一个名为Messages.aspx的资源文件,则其他语言的文件(如Messages.it-IT.resx)不会更新,您必须手动更新。RESX同步器将帮助您保持资源文件的同步,将新的密钥添加到本地化的文件,并删除已删除的文件。在此过程中保留注解。

isr3a4wc

isr3a4wc2#

我刚刚发现http://zetaresourceeditor.codeplex.com/也似乎是一个类似的想法,以其他人

guz6ccqo

guz6ccqo3#

UnitTest可以帮到你吗?你知道,每个控件应该有哪些文本,一旦你创建了它们,在添加新的字符串列表和比较值之后。经过一次艰苦的工作,你可以测试你的本地化作品的权利。

sauutmhj

sauutmhj4#

这个讨论有点老了,但仍然很有趣。查看ResXManager

mtb9vblg

mtb9vblg5#

我知道这已经得到了传统的答案,但我也想提出一些完全原创的东西,我们尝试(并成功)做自己更有效的本地化Silverlight:
Localisation of Silverlight projects after completion
Resx是如此“上个世纪”

5sxhfpxr

5sxhfpxr6#

我建议您使用该Winform的Resx文件以编程方式创建特定于区域性的资源文件。你可以创建一个小的应用程序,你可以运行的时间。
为每个区域性创建类似fr.XML的XML类型的文件,用项目中所有字符串的并集填充该文件。并提供其本身的翻译,例如法语文件可能如下所示。

< wordTranslation>
< Word>Hello< /Word>
< Translation>Bonjour< /Translation>
< /wordTranslation>

创建一个哈希表或一些数据结构,它们最好充当每个区域性的字典,用来自特定于区域性的XMl文件(如frDictionary)的数据填充它。
对于项目中的每个Resx文件(例如wind1.resx),创建一个特定于区域性的文件,例如wind1.fr.resx。从wind1.resx中读取单词,从frDictionayry中找到单词的翻译。将其写入wind1.fr.resx。
您可以不断更新XML文件中的翻译。这是一次性的努力。这样你就可以保持它的同步和易于维护。

oprakyz7

oprakyz77#

你的意思是同步这些文件之间的翻译?使用http://www.getlocalization.com并将两者作为主文件上传,当它们被翻译时,翻译将被填充到所有文件中。

htrmnn0y

htrmnn0y8#

我想你可以试试Amanuens。它是由RESX Synchronizer的同一作者开发的,除了帮助保持资源文件同步(如果您设置它,甚至自动进入您的存储库),还可以用于给予您的翻译人员在一个非常强大且易于使用的Web编辑器中访问要翻译的字符串。

rdrgkggo

rdrgkggo9#

在2023年,最好的选择是使用Visual Studio扩展:ResXManager。它允许您在一个视图中查看字符串和所有翻译。

相关问题