Ios 带有Interface Builder用户定义的运行时属性的本地化字符串

Ios 带有Interface Builder用户定义的运行时属性的本地化字符串,ios,ios7,interface-builder,nslocalizedstring,uiaccessibility,Ios,Ios7,Interface Builder,Nslocalizedstring,Uiaccessibility,我目前正在尝试在故事板中创建本地化的accessibilityLabel(我试图避免以编程方式进行)。似乎每当我使用本地化字符串选项时,AccessibilityLabel都会被设置为我提供的本地化字符串键,而不是字符串本身。有人能解决这个问题吗?任何帮助都将不胜感激。我想您希望本地化字符串取自Localizable.strings。“本地化字符串”类型不是这样工作的,它只是一个标记,指示在使用基本本地化时,用户定义的运行时属性的值将参与本地化过程。请查看更详细的解释。属性类型需要是可本地化字符


我目前正在尝试在故事板中创建本地化的accessibilityLabel(我试图避免以编程方式进行)。似乎每当我使用本地化字符串选项时,AccessibilityLabel都会被设置为我提供的本地化字符串键,而不是字符串本身。有人能解决这个问题吗?任何帮助都将不胜感激。

我想您希望本地化字符串取自Localizable.strings。“本地化字符串”类型不是这样工作的,它只是一个标记,指示在使用基本本地化时,用户定义的运行时属性的值将参与本地化过程。请查看更详细的解释。

属性类型需要是
可本地化字符串
,然后使用以下属性在
.strings
文件中对其进行翻译:

"KLc-fp-ZVK.ibExternalUserDefinedRuntimeAttributesLocalizableStrings[0]" = "¡Hola!";
不幸的是,它似乎不适用于命名属性,而只适用于上面的long属性


(根据Andrew在这里的回答:)

我使用通过代码本地化属性的简单解决方案定制了属性:

private struct AssociatedKeys {
    static var someTagKey = "someTag"
}

@IBInspectable var someTag: String? {
    get {
       return NSLocalizedString(
            objc_getAssociatedObject(self, &AssociatedKeys.someTagsKey) as? String ?? "", comment: "")
    }
    set {
        if let newValue = newValue {
            objc_setAssociatedObject(
                self,
                &AssociatedKeys.someTagsKey,
                newValue as NSString?,
                objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC
            )
        }
    }
}
之后,您可以使用egrep轻松地从xib和故事板文件中提取所有字符串:

egrep -ohr --include="*.xib" --include="*.storyboard" '<userDefinedRuntimeAttribute type="string" keyPath="someTag" value="[^"]+"/>' . >> extracted-strings.txt
egrep-ohr--include=“*.xib”--include=“*.storyboard””/\1=\1/g'extracted-strings.txt

的可能重复(其结论是这是OS X遗留下来的,在iOS上不受支持)。我真的希望经过这段时间后,有人能对这个问题有更多的了解。我读过这个主题,我真的希望不是这样。请注意,您仍然可以像任何其他资源一样本地化整个Interface Builder文件。我对iOS开发相对较新,但情节提要文件是否被视为IB文件?啊,在这种情况下,您需要启用并为每个本地化创建一个字符串文件。
sed -i -e 's/^<userDefinedRuntimeAttribute type="string" keyPath="someTag" value=\("[^"]*"\)\/>/\1 = \1;/g' extracted-strings.txt