Хорошо, так что, похоже, ваша проблема здесь может быть решена путем реализации первого решения вашего первого решения, когда вам нужно думать только о локализации ,
и .
.Это легко, вы могли бы реализовать это разными способами, но важная часть заключается в том, что ваше приложение, например, локализовано, скажем, на два языка, которые обрабатывают десятичные и тысячи различных символов (предположим, в качестве примера, эти языки - английский и итальянский)):
- [en] язык обрабатывает разделение десятичных дробей с
,
и тысячи с .
- [it] язык обрабатывает разделение десятичных дробей с
.
и тысячи с ,
A) Что вы можете сделать, это создать файл Localizable.strings
и затем локализовать ваш проект, скажем, на английском и итальянском, например.Для этого добавьте язык сюда.
B) Затем перейдите к файлу Localizable.strings
и localize
для поддерживаемых языков (например, английского и итальянского), как на этом изображении, которое былосделано для немецкого и английского
Теперь у вас будет две строки Localizable.string, одна для английского и одна для итальянского:
Localizable.строки (английский)
core_decimal_separator_symbol = ",";
core_thousand_separator_symbol = ".";
Localizable.strings (итальянский)
core_decimal_separator_symbol = ".";
core_thousand_separator_symbol = ",";
C) И в вашем коде везде, куда вам нужно обратиться,например, ваш символ десятичного разделителя , вместо того, чтобы писать его жестко, вы можете сделать что-то вроде:
removeDecimalSeparator = numberAsString.replacingOccurrences(of: NSLocalizedString("core_decimal_separator_symbol", comment: ""), with: "")
Так что всякий раз, когда ваше приложение локализовано на английский, например, этот кодбудет транслироваться в:
removeDecimalSeparator = numberAsString.replacingOccurrences(of: ",", with: "")
И когда ваше приложение будет локализовано, например, на итальянский, этот код будет транслироваться в:
removeDecimalSeparator = numberAsString.replacingOccurrences(of: ".", with: "")
В заключение:рассмотрим их в качестве примера, принимая во внимание Localizable.strings, которые мы имеем в этом ответе.Просто чтобы показать вам, как вы можете по-разному манипулировать некоторыми символами для разных языков, используя локализацию в своем приложении.