Перед .NET у нас была своя локальная система определения фразы, и мы построили способ вставки комментариев в строку форматирования, например: «{0: цена}». Я нахожу, что я скучаю по этому все больше и больше по прошествии многих лет.Строки форматирования .NET - хорошая практика для комментариев?
Это не кажется, что есть способ форматирования документа строки в месте, как это в .NET:
string.Format("{0//numerator}/{1//denominator} = {2//ratio}"
,somevar
,anothervar
,yetanothervar);
В частности, это полезно в локализации/фразеологии, где точки вставки получить переупорядоченную, без изменение кода:
string.Format("Dividing {1//denominator} into {0//numerator} gives {2//ratio}"
,somevar
,anothervar
,yetanothervar);
Кто-нибудь есть какие-то трюки, которые они используют, чтобы документировать их, чтобы избежать ошибок при терминах переупорядочивания в обслуживании/локализации и т.д.?
Причина, по которой важно комментирование, заключается в том, что для локализации и конфигурации, как правило, строка не находится в коде с переменными - у меня были они в файлах ресурсов, в app.config и в базах данных.
В реальном примере подклассифицированный элемент управления предоставляет свойство PhraseID (элементы управления сопоставляются с идентификаторами в XML-файле, сгенерированном из формы, и элементы управления формой переводится «на лету»), поэтому подклассовая форма делает что-то вроде этого :
// Handle the phrases without insertion points - this is in the base class
foreach (Control in this.Controls) {
IXLatable ixl = (IXLatable) Control;
ixl.Text = GetPhrase(ixl.PhraseID);
}
// in the individual form classes, they override the behavior for complex displays:
lnkPublish.Text = string.Format(GetPhrase(lnkPublish.PhraseID), filename, foldername, userid);
если словарь содержит по умолчанию и локализованную строку, как:
phraseid, language code, phrase
1,en,"{0//filename} published to {1//foldername} by {2//userid}"
1,pl,"{2//userid} ublishedpay ethay ilefay {0//filename} otay {1//foldername}"
это намного менее вероятно, что переводчик (который никогда не видит исходный код) получит индексы неправильно, если они с комментариями в d фразу. И проще для нелокализованного динамика устранить проблемы в переведенном ресурсе.
не .net, но формат сообщения довольно интересная локализация мудрая https://github.com/jedtoolkit/messageformat.js –