我想将我得到的一些数字转换为双打,但这些数字不是美国标准语言环境,而是另一个数字.我怎样才能做到这一点?
我知道在节点开发时,你应该总是试图避免阻塞(同步)函数并使用异步函数,但是我会稍微测试一下它们如何比较.
我需要打开一个包含i18n数据(如日期和时间格式等)的json文件,并将该数据传递给使用此数据格式化我的视图中的数字等的类.
在回调中开始包装所有类的方法会有点尴尬,所以如果可能的话,我会使用同步版本.
console.time('one');
console.time('two');
fs.readFile( this.dir + "/" + locale + ".json", function (err, data) {
if (err) cb( err );
console.timeEnd('one');
});
var data = fs.readFileSync( this.dir + "/" + locale + ".json" );
console.timeEnd('two');
Run Code Online (Sandbox Code Playgroud)
这导致我的控制台中的以下行:
two: 1ms
one: 159ms
Run Code Online (Sandbox Code Playgroud)
似乎fs.readFileSync比fs.readFile快约150倍,并且需要大约1ms才能加载50KB的json文件(缩小).我所有的json文件大约是50-100KB.
我也在考虑以某种方式将这个json数据记忆或保存到会话中,以便每个会话只读取一次文件(或者当用户更改其语言环境时).我不完全确定如何做到这一点,这只是一个想法.
可以fs.readFileSync在我的情况下使用,还是以后会遇到麻烦?
我们使用resx文件来本地化我们的Web应用程序.当只有一个页面使用某个短语时,我们通常创建本地resx文件(映射到特定页面);当多个页面需要短语时,我们通常创建全局resx文件.
但是关于全局resx文件的好处是它们是一个类,你可以像调用类的属性一样调用这些短语:
Resource.UI.iNotFound
所以我在想 - 为什么要有本地resx文件呢?为什么不为整个应用程序使用一个全局resx文件,这样可以避免运行时错误调用不存在的短语?
我确信这是一个很好的答案,我只是不知道它是什么......
以下资源文件的最佳用法是什么?
我也想知道asp.net mvc应用程序中(1)和(2)之间的区别.
我正在为欧洲的客户开发一款应用程序.我是美国的英语演讲者.我们的应用程序将支持多种语言,但不支持英语.我的应用程序中的所有字符串都在翻译的Localized.strings文件中,为不同的语言正确设置,并且当设备设置为正确的语言时它们都正常工作(设备的语言是德语= app正确地为德语本地化) .
如果设备未设置为我们支持的某种语言(例如,设置为英语的手机),则会出现问题.在这种情况下,我们希望手机能够回归德国,但事实并非如此.我们看到的是,手机正在使用Settings.app的国际部分中语言列表中最高的语言.对于我的手机,列表中最高的非英语语言是法语,因此当我运行该应用程序时,它已本地化为法语.如果我将手机更改为德语,然后返回英语(这会更改语言列表中的顺序),则应用程序将本地化为德语.
对于不受支持的语言,如何确保应用默认为德语?我使用本教程设置项目的语言环境.这包括删除首次本地化文件时创建的默认"英语"区域设置.在项目文件中,我添加了:
developmentRegion = de;
Run Code Online (Sandbox Code Playgroud)
另外,在Info.plist中,我有
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
Run Code Online (Sandbox Code Playgroud)
没有成功.
任何想法,将不胜感激!
我想通过添加文件夹res/drawable-hdpi-no来本地化图像,但是我收到一条错误,指出"资源目录名称无效".怎么了?
如何使用NSLocalizedString本地化具有占位符的字符串?
例如:
[NSString stringWithFormat:@"You can afford %i at %@%li.",[kCash integerValue]/self.price, kYen, self.price]
Run Code Online (Sandbox Code Playgroud)
我该如何本地化?我是否将字符串分解为多个本地化字符串?那我怎么处理不同的句子结构和语法呢?
我在我的项目和格式化日期中使用Moment.js如下:
var locale = window.navigator.userLanguage || window.navigator.language;
moment.locale(locale);
someDate.format("L");
Run Code Online (Sandbox Code Playgroud)
它运作良好但有时我需要显示没有年份的日期.我不能使用类似的东西,someDate.format("MM/DD")因为在某些语言中它应该是someDate.format("DD/MM").我需要一些想法,L,LL,LLL但没有一年.
我能做什么?
LTS : 'h:mm:ss A',
LT : 'h:mm A',
L : 'MM/DD/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY LT',
LLLL : 'dddd, MMMM D, YYYY LT'
Run Code Online (Sandbox Code Playgroud) 我正在以编程方式创建Localizable,strings文件.我从服务器下载文件并显示该文件的本地化.
但是如果文件中有一些错误,那么我的本地化不起作用.它向我展示了钥匙.如果在服务器上我编辑本地化文件,我添加字符串为
"HELLO_WORLD"=你好
这里,密钥是正确的,但值的格式不正确.格式应为
"HELLO_WORLD"="你好";
如果我的Localizable.strings文件不包含任何错误且有效,我如何在运行时以编程方式检查.
请帮忙
在使用ASP.NET MVC时,我注意到我系统上安装的.NET框架发出的异常消息是德语.我真的更喜欢英文短信,所以我可以将它们贴在SO上.
我知道之前已经问过这个问题了,但奇怪的是,建议的解决方法似乎都不适用于我的情况.我已经尝试过以下方法:
在抛出异常之前将线程区域设置设置为英语,如下所示:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
//打电话给我错误的方法......
那么,我如何让.NET框架发出英语异常消息呢?是否有任何方法可以在每个解决方案甚至整个系统的基础上执行此操作?
编辑:在排除单元测试时抛出异常.我不确定这是否是设置线程文化无效的原因.
localization ×10
ios ×3
asp.net-mvc ×2
objective-c ×2
resx ×2
.net ×1
android ×1
asp.net ×1
cocoa-touch ×1
drawable ×1
exception ×1
io ×1
ios7 ×1
iphone ×1
java ×1
javascript ×1
locale ×1
momentjs ×1
node.js ×1
resources ×1
swift ×1
xcode ×1