我下载了新的Xcode,在Interface Builder中,我遇到了很多问题,例如:
固定宽度约束可能导致剪辑
它看起来像这样:
我确实有几种语言的本地化,我理解警告,在另一种语言中标签的大小可能会改变,但我的应用程序没有这个问题.我昨天在Xcode 8中运行并测试了它,很好.我不想花费数小时的时间来添加无意义的新约束.
有建议的解决方案
我(和所有其他人一样)使用NSLocalizedString本地化我的应用程序.
不幸的是,有几个"缺点"(不一定是NSLocalizedString本身的错误),包括
genstring最终会有一个字符串的多个注释genstring在已经对某些字符串进行本地化后使用,则必须小心不要丢失旧的本地化.NSLocalizedString(@"Abort", @"Cancel action")在任何地方都使用过,然后Code Review要求您重命名字符串NSLocalizedString(@"Cancel", @"Cancel action")以使代码更加一致.我所做的(以及经过一些搜索后,我认为很多人这样做)是有一个单独的strings.h文件,我#define所有的本地化代码.例如
// In strings.h
#define NSLS_COMMON_CANCEL NSLocalizedString(@"Cancel", nil)
// Somewhere else
NSLog(@"%@", NSLS_COMMON_CANCEL);
Run Code Online (Sandbox Code Playgroud)
这基本上提供了代码完成,一个更改变量名称的位置(因此不再需要genstring),以及一个自动重构的唯一关键字.但是,这需要花费大量结果来解决一系列#define非固有结构的语句(例如LocString.Common.Cancel或类似的东西).
所以,虽然这有点好,但我想知道你们是如何在你的项目中做到的.是否有其他方法可以简化NSLocalizedString的使用?甚至可能有一个封装它的框架?
我需要比较C#中的2个字符串,并将重音字母与非重音字母相同.例如:
string s1 = "hello";
string s2 = "héllo";
s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase);
s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
这两个字符串需要相同(就我的应用程序而言),但这两个语句都评估为false.C#中有没有办法做到这一点?
Asp.net-MVC现在允许隐式绑定DateTime对象.我有一个行动
public ActionResult DoSomething(DateTime startDate)
{
...
}Run Code Online (Sandbox Code Playgroud)
这成功地将字符串从ajax调用转换为DateTime.但是,我们使用日期格式dd/MM/yyyy; MVC正在转换为MM/dd/yyyy.例如,使用字符串'09/02/2009'提交对操作的调用会导致DateTime为'02/09/2009 00:00:00',或在我们的本地设置中为9月2日.
我不想为了日期格式而滚动我自己的模型绑定器.但是,如果MVC能够为我执行此操作,则无需更改操作以接受字符串然后使用DateTime.Parse.
有没有办法改变DateTime的默认模型绑定器中使用的日期格式?默认型号绑定器不应该使用您的本地化设置吗?
本地化ASP.NET MVC应用程序的最佳做法是什么?
我想介绍两种情况:
在第一种情况下你应该选择某种基于视图的东西,比如〜/ View/EN,〜/ View/FI,〜/ View/SWE或者其他什么东西?
那么第二种情况,只需通过Web.config进行基于应用程序的配置,并将这些不同的语言指向不同的URL?
我正在寻找一种方法来本地化PropertyGrid中显示的属性名称.可以使用DisplayNameAttribute属性"覆盖"属性的名称.不幸的是,属性不能有非常量表达式.所以我不能使用强类型资源,例如:
class Foo
{
[DisplayAttribute(Resources.MyPropertyNameLocalized)] // do not compile
string MyProperty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我浏览了一下,发现了一些从DisplayNameAttribute继承的建议,以便能够使用资源.我最终会得到如下代码:
class Foo
{
[MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed
string MyProperty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
但是我失去了强大的类型资源优势,这绝对不是一件好事.然后我遇到了DisplayNameResourceAttribute,这可能是我正在寻找的.但它应该在Microsoft.VisualStudio.Modeling.Design命名空间中,我找不到我应该为此命名空间添加的引用.
有人知道是否有更好的方法以一种好的方式实现DisplayName本地化?或者是否有使用Microsoft似乎用于Visual Studio的方法?
*comment参数是什么:
NSString *NSLocalizedString(NSString *key, NSString *comment)
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
NSLocalizedString(@"Hello_World_Key", @"Hello World")
Run Code Online (Sandbox Code Playgroud)
并有两个版本的Localizable.strings(英语和西班牙语),每个版本都需要输入:
English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";
Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";
Run Code Online (Sandbox Code Playgroud)
英语不是多余的吗?
我真的需要一个本地化的下拉日历.英语日历并不能完全在挪威网站上传达卓越性;-)
我已经尝试过jQuery DatePicker,他们的网站说它可以本地化,但这似乎不起作用.
我正在使用ASPNET.MVC,我真的想坚持一个JavaScript库.在这种情况下jQuery.
ajax工具包日历是可以接受的,只要它也会显示挪威名称.
更新:太棒了!我看到我错过了语言文件,一个不那么小的细节:-)
javascript calendar localization jquery-ui jquery-ui-datepicker
我是一个拥有20多名开发人员的团队成员.每个开发人员都在一个单独的模块上工作(接近10个模块).在每个模块中,我们可能至少有50个CRUD表单,这意味着我们目前有近500个添加按钮,保存按钮,编辑按钮等.
但是,因为我们想要使我们的应用程序全球化,所以我们需要能够在我们的应用程序中翻译文本.例如,无处不在,单词add应该成为法国用户的焦点.
我们到目前为止所做的是,对于UI或表示层中的每个视图,我们都有一个关键/值对翻译的字典.然后在渲染视图时,我们使用此字典翻译所需的文本和字符串.然而,这种方法,我们已经有500 个字典附近的500个添加.这意味着我们已经违反了DRY委托人.
另一方面,如果我们集中常见的字符串,比如将add添加到一个地方,并要求开发人员在任何地方使用它,我们就会遇到不确定字符串是否已经在集中式字典中定义的问题.
另一个选择可能是没有翻译词典并使用谷歌翻译,Bing翻译等在线翻译服务.
我们遇到的另一个问题是,一些处于准时交付项目压力下的开发人员无法记住翻译密钥.例如,对于添加按钮的文本,开发人员使用了add,而另一个开发人员使用了new,等等.
什么是应用程序的字符串资源的全球化和本地化的最佳实践或最着名的方法?
javascript globalization translation localization client-side
在WPF 3.5SP1中,我使用DataBindings中的最后一个功能StringFormat:
<TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f'}"
FontSize="20" TextTrimming="CharacterEllipsis" />
Run Code Online (Sandbox Code Playgroud)
我面临的问题是日期总是用英文格式化...虽然我的系统是法语的?我如何强制日期遵循系统日期?
localization ×10
ios ×3
asp.net-mvc ×2
c# ×2
datetime ×2
javascript ×2
objective-c ×2
attributes ×1
calendar ×1
client-side ×1
formatting ×1
jquery-ui ×1
string ×1
swift ×1
translation ×1
wpf ×1
xcode ×1
xcode9-beta ×1