Собственно немного флуда о наболевшем. Про то что у нас есть в разных ЯП и ОС в плане локализации и почему у меня до сих пор от неё подгорает.
В linux-е и таких языках как c, c++ вовсю используется gettext. Штука хорошая мне нравится. Вроде как удобно, т.к. в коде пишешь на английском как дефолтном языке, а если есть перевод то подтягивается русский. Т.е. в самом коде всё написано нормально. Стал делать локализацию в оффтопике на c# там свой огород с .resx файлами и тем, что в коде одно, в локализации совсем другое, короче мне сильно не нравится, всё как всегда у мелгкомягких через одно место. Ещё и если сильно не извращаться то библиотека с переводом на каждый язык (там это технически дотнетовская dll-ка с данными внутри) ну и куча всякого говна паровозиком за твоим экзешником таскается (вопрос зачем, я бы предпочёл в один бинарь всё собирать, вроде как можно сверху помазать некоторыми полуофициальными средствами которые это в один бинарь собирают чтоб маленькая программка портативной была, но дотнет туповат и не может так ну или память старается экономить чтоб лишние переводы не подгружать заранее, хотя это ИМХО экономия на спичках при текущих объёмах оперативки). Что у джавистов и на андроде с маком хочу от знатоков послушать - честно не знаю, но стало очень интересно.
И ещё вопрос в догонку, а почему не прижилось в библиотеках делать переводы? Имеется ввиду не те dll что в дотнете чисто под ресурсы создаются, а к примеру, есть у нас формат mp3, в нём есть ID3 теги, ну например https://github.com/JeevanJames/Id3 вот пример библиотеки которая с ними работает как раз с примером кода. В результате имеем (в теории, понятно что это просто одна из рандомных либ на гитхабе) эту библиотеку в разных программах ну скажем возьмём более известную, например https://github.com/quodlibet/mutagen просто mutagen посерьёзнее и примеры там будут чуть менее простыми и каждый автор программы использующей эту библиотеку должен переводить в теории на все языки мира (в реальности конечно проектов с полной локализацией нет, и мало у кого больше 10 языков поддерживается) слова Artist, Album и так далее, которые в 99% случаев переводятся однозначно на все основные языки мира при этом перевод у всех будет под копирку почти, сколько плееров видел никто меня даже падежами не удивил, везде +- одно и то же, иногда синонимы разные используются, вводя смуту.
В теории могли бы в самой библиотеке опционально строчку зафигачить которая возвращала бы эти названия в переданной ей локале, а кому надо необычно перевести могли бы как сейчас делать. Например вместо
Console.WriteLine("Title: {0}", tag.Title);
Console.WriteLine($"{tag.TitleName}: {tag.Title}");