我想显示一条消息给沿线的用户:如何在本地化字符串中包含变量?
“用户5不能添加”
但我怎么能添加变量到被放置在一个字符串。 resx文件?我试图寻找诸如“本地化变量”,“变量全球化”之类的东西,但是干了起来。
如果我没有本地化我会写:
Console.Write("User " + userNum + " could not be added");
怎么可以这样用资源来完成?
我想显示一条消息给沿线的用户:如何在本地化字符串中包含变量?
“用户5不能添加”
但我怎么能添加变量到被放置在一个字符串。 resx文件?我试图寻找诸如“本地化变量”,“变量全球化”之类的东西,但是干了起来。
如果我没有本地化我会写:
Console.Write("User " + userNum + " could not be added");
怎么可以这样用资源来完成?
在团队中我所做的国际化,我们一般也通过传递资源的值作为格式模式创建资源格式字符串,像USER_COULD_NOT_BE_ADDED_FORMAT,并呼吁的String.Format(或您的环境当量)。
然后你会做Console.Write(String.Format(resourceManager.GetString("USER_COULD_NOT_BE_ADDED_FORMAT"), userNum));
大多数本地化要么必须在使用的系统他们本地化,或者他们提供的本地化工具包,你为他们提供指导格式字符串训练。例如,这不像直接修改代码那么严格。
您通常需要添加一个loc注释到资源ID来解释位置参数。
你可以进一步了解如何将这种“loc注释添加到资源ID”?或者提供给我一个阅读更多的链接?谢谢! :) –
此外,当我有你在这里,因为你似乎有这些东西的经验,是它最好有在给定项目的所有字符串一个RESX文件,或者倒不如将它们分成多个RESX文件比如说,每个表单都有一个? (我的RESX文件本身存储在一个单独的项目全球化) –
假设你正在使用的.resx格式,定位注释只是在RESX编辑器UI“注释”,或''
你不能直接这样做。
什么你可以做的是把令牌 - 特定字符串,可以是更换与string.Replace
与变量的值。
这样做的一个很好的候选人将被内置在字符串格式化:
Console.Write(string.Format("User {0} could not be added", userNum));
假设userNum
已经值5
,其结果必然是:
User 5 could not be added
您可以本地化此字符串与复合格式说明符。
使用Composite Formatting像这样:
Console.Write("User {0} could not be added", userNum);
这样,您将定位"User {0} could not be added"
。
我会使用字符串。格式
http://msdn.microsoft.com/en-us/library/system.string.format.aspx
Console.Write(string.Format("User {0} could not be added", userNum));
新的,让我们看看这将如何
String.Format(Resource_en.PhoneNumberForEmployeeAlreadyExist,letterForm.EmployeeName[i])
每次
给我的动态消息,由我用它的方式摹ResXManager
你不应该构建/打印字符串+反正。 String.Format非常容易处理... –