Вопрос

Я ищу культурно-чувствительный способ правильно вставить существительное в предложение при использовании соответствующей статьи (a / an). Он может использовать String.Format или что-то еще, если подходящий способ сделать это существует в другом месте.

Например:

Базовое предложение: " Вы просматриваете / a {0} "

Формат должен быть следующим: " Вы смотрите на морковь " или "Вы смотрите на яйцо".

В настоящее время я делаю это, вручную проверяя первый символ слова, которое нужно вставить, а затем вручную вставляя " a " или "." Но я обеспокоен тем, что это может ограничить меня, когда приложение локализовано на другие языки.

Есть ли лучшая практика для решения этой проблемы?

РЕШЕНИЕ. Похоже, что проблема сложна до такой степени, что не существует утилиты или среды для решения этой проблемы так, как я ее первоначально сформулировал. Похоже, что лучшее решение (в моей ситуации) - это сохранить статью в базе данных вместе с существительным, чтобы переводчики могли иметь необходимый уровень контроля. Спасибо за все предложения!

Это было полезно?

Решение

Помимо проблемы, отмеченной lc (час, шляпа), правила грамматики в разных языках сильно различаются. Например, многие латиноамериканские языки переключают артикли существительных, основываясь на «роде» и «числе» существительного, что иногда может быть выведено из последних нескольких символов слова, но имеет ту же проблему, что и английский ... много исключений.

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

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

Проблема даже в английском, a-vs-an определяется не начальной буквой , а начальным звуком . Вы можете сделать довольно хорошее предположение на английском языке, основываясь на начальной букве, но есть некоторые исключения (например, «час», «пользователь»).

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

За исключением этого, следующее, что лучше всего сделать, это составить список распространенных исключений, а затем угадать остальное.

<Ч>

Из Википедии :

  

Выбор " a " или "а" является   определяется скорее фонетическими правилами   чем по правописанию. & Quot; & Quot; является   используется в речи, чтобы удалить   неловкая гортанная остановка   пауза), что в противном случае требуется   между "а" и следующее слово, например   «Рентген» ... Следующие   абзацы являются правилами правописания для слова "&"   который может быть использован, если фонетическое правило   не понято.

Во времена старых текстовых приключенческих компьютерных игр одним из способов решения этой проблемы было сделать «a», «an», «the» и т. д. часть фактического названия вещи. Когда в этих играх вы видите «почтовый ящик», отсутствует интеллектуальный ИИ, который бы определял «а». Название объекта - «почтовый ящик». В некоторых играх он может сказать «вы открываете почтовый ящик», что звучит глупо, а в других он может сказать «вы открываете почтовый ящик», что означает, что было введено другое имя введенного объекта для использования в различных грамматических контекстах , Я предлагаю вам пойти по этому маршруту вместо того, на котором вы сейчас находитесь.

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

Чтобы использовать пример из немецкого языка:

Эквивалент " Вы смотрите на (n) X " будет:

" Du siehst ein X "
или "Du siehst eine X"
или "Du Siehst Einen X"

в зависимости от пола объекта X. А пол объекта - это то, что вы не можете догадаться, оно связано с именем объекта только на основе исторической традиции.

Итак, не существует простого способа реализовать такие различия в большинстве языков. Я бы советовал всегда использовать составы, которые будут работать во всех случаях, например.

" Вы смотрите на объект типа X "
или " Вы смотрите на (n) X "
или "Вы смотрите на один X"

Как это культурно чувствительно? То, что вы пытаетесь сделать only , имеет смысл на английском языке. Другие языки могут потребовать совершенно других изменений в предложении. Некоторые могут изменить существительное, некоторые могут изменить структуру предложения, некоторые могут изменить порядок слов и так далее.

То, что вы пытаетесь сделать, будет нарушено при локализации на другие языки. Не существует автоматического способа решить эту проблему.

В качестве простого примера рассмотрим, что происходит, когда вы пытаетесь написать " {нечто} " В английском языке вы просто ставите префикс «quot; the "» и все хорошо. На французском языке вы добавляете префикс le, la или les, в зависимости от пола и от того, множественное число или нет. На датском вы вместо этого добавляете суффикс «en» или «et». Таким образом, когда таблица слов переводится как «bord», «таблица» становится "Bordet". И " стул " (Stol) становится "украденным".

Единственный значимый способ обойти это - дать переводчику контроль над целым предложением. Не думайте, что вы можете просто вставить несколько зависимых от культуры слов тут и там.

Таким образом, на практике лучшим решением может быть принятие того, что ваше приложение не может быть тривиально локализовано. Возможно, вы можете убедиться, что это возможно для нескольких ключевых языков, и, кроме того, игнорировать проблему. Затем, если в какой-то момент в будущем вам потребуется перевести приложение на язык X, поработайте с переводчиком, чтобы внести необходимые изменения в код приложения.

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

Существует библиотека под названием .NET inflector , которая используется для множественного числа / сингулярности, которые потенциально могут быть перенаправлены или продлен таким же образом для такой вещи. То, что вы ищете здесь, - это общее правило, которое вы можете настроить с исключениями ... например, слова, начинающиеся с буквенных комбинаций, которые обычно произносятся как гласные. Хотя это [строго говоря] не является культурно чувствительным, оно должно помочь вам начать работу по крайней мере на английском языке.

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