Я думаю, что короткий ответ: вы не можете, если не сильно сузите свои требования.Кажется, вы хотите взять образец текста A и преобразовать его в латинизированный текст B.
Есть несколько проблем для решения:
Языки обычно нероманизированный на основе одного символа.Правильное произношение символа часто зависит от символов и слов вокруг него, и даже может иметь специальные правила только для одного слова (изучение английского может быть сложным, потому что оно заполнено ими, заимствуя слова из многих языков без нормализации орфографии).
Даже если вы кодируете правила для каждого языка, который хотите поддерживать, у вас все еще есть гомографии, слова, которые пишутся с использованием абсолютно одинаковых символов, но имеют различное произношение (и, следовательно, латинизацию) в зависимости отна то, что имелось в виду - например, «свиноматка», означающая свинью, или «свиноматка» (где w молчит), означающая сажать семена.
И затем вы сталкиваетесь с проблемой того, какой язык вы латинизируете: символы и даже слова не уникальны для одного языка, но фактическое значение и латинизация могут различаться.Тот факт, что многие языки включают заимствованные слова из тех языков, с которыми они разделяют символы, усложняет любую попытку автоматически определить, какой язык вы пытаетесь латинизировать.
Учитывая все эти трудности, что вына самом деле хотите достичь (какую проблему вы решаете)?
Вы упоминаете французский язык среди языков, которые вы хотите «конвертировать» в английский - но французский (с акцентированными символами) уже написан на латинице.Даже в повседневных словах, используемых в английском языке, иногда используются акцентированные символы, хотя они достаточно редки, чтобы понимать значение и произношение, даже если они опущены (например, резюме).
Действительно ли ваша проблема в том, что вы можете 'хранить юникод / расширенный ASCII?Есть множество способов исправить или обойти это.