лучшие подходы для регистрации локализации с использованием C ++ - PullRequest
2 голосов
/ 03 апреля 2012

Я работаю над многонациональным проектом, в котором целевой аудиторией для журналов могут быть две национальности. Поэтому становится важно войти в систему более чем на одном языке, я думаю о записи в 2 разные папки журналов на основе языка каждый раз, когда я что-то записываю, но мне также интересно, есть ли какие-то из готовых функциональных возможностей, которые появятся вместе с каркасом журналирования, таким как log4cpp?

Ответы [ 4 ]

2 голосов
/ 03 апреля 2012

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

Я бы порекомендовал использовать английский язык (который является стандартом для технической информации и которыйЯ думаю, это язык, который вы знаете лучше всего) и чтобы убедиться, что вы используете язык ясно , грамматически правильно и однозначно .Тогда, если один из техников не может понять это, он может очень легко и эффективно запустить его через механизм машинного перевода, такой как Google Translate.Или действительно, они могли бы обрабатывать журналы и запускать все через Google Translate для добавления переведенного текста, особенно если вы аннотируете журналы, чтобы пометить содержание языка.

При условии, что язык ввода хорошо написан, машинный перевод обычно даетхороший результат, который может понять конечный пользователь.Если сообщение нечеткое, содержит опечатки или сокращения, то здесь машинный перевод проваливается.

0 голосов
/ 03 апреля 2012

Хорошо, одно предложение: вы можете использовать другой процесс / поток, который прослушивает ваши сообщения журнала, которые вы можете записать в него оттуда.

Это сокращает время регистрации ввода-вывода в вашем основном процессе / потокеи вы можете вносить в него все изменения, связанные с языком журналирования ..

Для многоязыковой поддержки я думаю, что вы можете попробовать написать с помощью строки widechar .. хотя я не уверен ..

0 голосов
/ 03 апреля 2012

лучшие подходы для регистрации локализации с использованием c ++

Установите Qt 4 и используйте макрос QObject :: tr / tr () для строк. Пишите строки на любом языке, который вы хотите. Наймите / Получите переводчик для локализации строк с использованием QT Linguist.

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

- EDIT -

Не замечал эту часть раньше:

на нескольких языках

Один из способов подойти к этому - реализовать программу чтения журнала Вместо написания текстовых сообщений вы можете записать идентификаторы сообщений (сгенерированные какими-то макросами) и строковые аргументы, если строки отформатированы. «Читатель журнала» позволит пользователю выбирать желаемый язык при просмотре файла журнала и переводить сообщения на основе их идентификаторов / аргументов, используя механизм, аналогичный QTranslator. Хорошая вещь в этом подходе состоит в том, что вы сможете добавить больше языков позже - так что можно будет перевести старые журналы. Плохо то, что этот формат будет труднее читать для «обычного человека», хотя вы можете добавить текстовые сообщения в дополнение к идентификаторам сообщений и аргументам, и вам нужно будет написать средство просмотра журнала.

В Qt 4 реализована большая часть этой инфраструктуры (есть подпрограммы для выгрузки вариантов в потоки текста / данных и т. Д.) Вместе со средством перевода. См. QTranslator документацию и Руководство лингвиста для получения дополнительной информации.

0 голосов
/ 03 апреля 2012

Запись журнала естественным образом снижает скорость выполнения из-за операций открытия, поиска и записи файла, которые являются его частью.

Это одна из основных причин, по которой многие разработчики и архитекторы предлагают записывать журналы на разных уровнях. Увеличение глубины записей журнала по мере увеличения уровня позволяет лучше отслеживать проблемы. На более высоком уровне вы заметите, что скорость вашего процесса падает из-за генерирования большего количества записей в журнале.

Скорее предлагаем вам воспользоваться услугами, которые могут переводить с одного языка на другой. Я уверен, что есть библиотеки бесплатные или платные, которые делают этот перевод. Вы можете создать небольшую служебную программу, которая работает в фоновом режиме и выполняет это преобразование во время простоя процесса.

...