Вопрос

В наших файлах ресурсов есть много строк, которые содержат формат .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
  }
}

Конечно, в реальной жизни это было бы написано без «если» для каждого количества аргументов.

Другие советы

Это похоже на классический сценарий модульного тестирования.Можете ли вы запустить для них автоматическую сборку/юнит-тестирование с помощью триггера фиксации исходного кода?Модульный тест просто проверит, что каждая строка формата по-прежнему доступна для анализа.

Похоже, вы проверяете строку в выражении, поэтому вам следует использовать Обычные выраженияПосмотри на текст ссылки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top