Запретить транслитерацию при замене неизвестных символов

#ruby-on-rails #transliteration

Вопрос:

транслитерация по умолчанию заменяет неизвестные символы вопросительными знаками»?». Вместо этого я бы хотел, чтобы он оставил их как есть.

Это значение по умолчанию:

 I18n.transliterate("日本語")
# => "???"
 

Это то, чего я хочу:

 I18n.transliterate("日本語")
# => "日本語"
 

Как я могу этого добиться?

Если это невозможно (я думаю, что транслитерация покрывает все до UTF-8/US-ASCII), я бы, по крайней мере, хотел бы создать исключение при замене. Я пытался установить raise значение true, но это не сработало.

Комментарии:

1. Вы можете предоставить пользовательскую реализацию транслитерации как Proc для конфигурации i18n, как описано здесь .

2. @raina77ow спасибо. Я очень новичок в ruby, не могли бы вы помочь мне с этой реализацией?

3. похоже, мне просто нужно будет написать функцию для обработки этого (я предполагаю, что у proc есть некоторые ограничения, как и у lamdas). Чего я не понимаю, так это как я могу написать «для любых неизвестных символов ничего не делать» в коде