Как проверить строку формата
-
16-09-2019 - |
Вопрос
В наших файлах ресурсов есть много строк, которые содержат формат .e.g
«{0} переехал в {1}»
Эти строки передаются Строка.Формат() приложениями иногда переводчики путают «маркеры форматирования». Поэтому я хочу найти/написать инструмент, который проверяет, что все строки в файле ресурсов имеют допустимый формат.
Для каждого ключа я знаю количество аргументов, которые передаются в String.Format, чтобы их также можно было использовать при проверке.
Итак, помимо проверки того, что «{» соответствует «}», есть ли простой способ найти большинство ошибок в строках формата?
(Я использую .NET, эта проверка, конечно, будет выполняться как часть процесса сборки)
Решение 3
Я нашел простое решение, которое дает разумный результат: я знаю количество аргументов оператора формата, но не тип аргументов.Однако большинство аргументов являются строками.
Так
if (numberOfArguments == 3)
{
try
{
String.Format(theTranslatorString, "", "", "")
}
catch
{
// tell the translator there is a problem with the string format
}
}
Конечно, в реальной жизни это было бы написано без «если» для каждого количества аргументов.
Другие советы
Это похоже на классический сценарий модульного тестирования.Можете ли вы запустить для них автоматическую сборку/юнит-тестирование с помощью триггера фиксации исходного кода?Модульный тест просто проверит, что каждая строка формата по-прежнему доступна для анализа.
Похоже, вы проверяете строку в выражении, поэтому вам следует использовать Обычные выраженияПосмотри на текст ссылки