Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 对字符串进行扩展_Swift_String - Fatal编程技术网

Swift 对字符串进行扩展

Swift 对字符串进行扩展,swift,string,Swift,String,我有作业,我不能处理。我需要什么? 我有一个项目,使用两种语言(英语,西班牙语)。该项目有两种语言的2个Locolizable.strings文件。 示例字符串: "OrderDetails_IPText" = "IP: %@"; 我知道%@是一个字符串或某个对象,这无关紧要。问题在于那些帮助我将文本翻译成不同语言的人。 填写翻译文件时,他们会看到: %@ 他们不明白我想补充什么。这可能是一个电子邮件地址或其他东西。翻译文本的人给我的任务是实现一个考虑到这些细微差别的功能。他们甚至提供了一些

我有作业,我不能处理。我需要什么? 我有一个项目,使用两种语言(英语,西班牙语)。该项目有两种语言的2个Locolizable.strings文件。 示例字符串:

"OrderDetails_IPText" = "IP: %@";
我知道%@是一个字符串或某个对象,这无关紧要。问题在于那些帮助我将文本翻译成不同语言的人。 填写翻译文件时,他们会看到:

%@
他们不明白我想补充什么。这可能是一个电子邮件地址或其他东西。翻译文本的人给我的任务是实现一个考虑到这些细微差别的功能。他们甚至提供了一些实现,比如:

func pffffff(format: something, ["key" : value] -> Id : value
可能它应该是字符串的扩展。 如果你不明白,谢谢你看这个问题。我什么都不懂

我们建议您需要更改此函数:

func L (_ key: String, value: String = "") -> String
{
    let str = NSLocalizedString(key, value: value, comment: "")
    return str
}

你可以创建这样的东西

extension String {
   func yourFunction () {}
}
但我建议您不要在本地化字符串中使用
%@
或任何其他字符。当字符串包含任何变量时,始终可以使用替换字符串函数

例如:
“我们已通过[VARIABLEA]发送了OTP”


然后,在显示时,只需查找
[VARIABLEA]
并替换为实际值

,我就找到了摆脱这种情况的方法

public extension String {

/* Creates the string representation of the poo with requested size.
 - parameter format: string format with key
 - returns: localizable string
 */
public init(format: String, keyArguments: [String: Any]) {
    self = format
    keyArguments.forEach {
        self = self.replacingOccurrences(of: "{\($0.key)}", with: "\($0.value)", options: .caseInsensitive)
    }
}   
}

是:

现在:

let asd = String(format: "Hi, %@! %d", "Arnold", 2)
let str = String(format: "Hi, {User_Name}! How are you, {user_name}?", keyArguments: ["user_name" : "Arnold", "number": 5.6])