По поводу выбора языка в тесте программы
[html]
<a href="http://www.compiler.su/mnogoyazykovoe-programmirovanie.php">http://www.compiler.su/mnogoyazykovoe-programmirovanie.php</a>
[/html]

Там не было предложено, как именно указать язык в тексте.

Моё предложение такое. В стандарте Unicode есть флаги, можно проассоциировать флаги с языками, например:
🇷🇺 - дальше будет текст программы на русском языке
🇬🇧 - дальше будет текст на английском языке
🇨🇳 - дальше будет текст на китайском языке

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

Кроме языка ещё хорошо бы иметь возможность указать алфавит (пример Сербия - вуко́вица/га́евица)

Но что-то я не нашел значков для обозначения алфавитов.
А словами писать нельзя, потому что слова сами должны какой-то алфавит уже использовать.

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

А раз уже такие меры, то тоже самое можно проделать и с языками. Ну, чтобы была возможность указать алфавит, язык и страну.
Неясно, правда, зачем в коде программы нужно указание страны, что от этого будет зависеть? Локаль (т.е. соглашения по записи констант, например числа через точку или через запятую)?

Ещё мне не понятно, почему бы не разделить язык на правила и слова. Ну, например, кофе раньше был мужского рода, а потом стал среднего. Это поменялись правила, причём произошло это в какой-то конкретный момент времени. То есть могли бы быть программы, записанные в предыдущей версии правил, и программы записанные в следующей версии правил, и такие программы можно было бы различить.

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

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

И указание страны/языка/алфавита будет выглядеть как тройка чисел (например на отдельной строке).

Или можно требовать разбивать по языкам файлы исходников, а тройку чисел указывать как часть имени файла (предварительное расширение файла), например:
название-файла.18_147_35.txt

Впрочем, где-то я такое уже видел. В именах файлов локализации (.po-файлы).

[html]
<a href="https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html">https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html</a>
<br />
<a href="https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html">https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html</a>
[/html]

ISO 639 two-letter language code
ISO 3166 two-letter country code

Вот они тоже ввели классификаторы, и пометили элементы классификаторов, но использовали не цифры, а английский алфавит. Значит мой подход в принципе верный и правильный.

Отредактировано Лис (2021-12-27 23:44:52)