You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Строка не локализована. Возможно, она видна пользователю.
Английское название проверки ??
Правило анализа кода/метаданных
Интерфейсные тексты в коде: требования по локализации
Область применения: управляемое приложение, мобильное приложение,
обычное приложение.
1. Если в модулях конфигурации встречаются строки, предназначенные для
пользовательского интерфейса (сообщения пользователю, надписи в формах,
названия и подсказки команд, выражения в настройках СКД и т.п.)
необходимо обеспечить возможность локализации таких строк.
Для этого необходимо применять функцию НСтр вместо прямого использования
строковых литералов. Иное использование строк, предназначенных для
пользовательского интерфейса, не допускается.
Например, неправильно:
Предупреждение("Для выполнения операции необходимо установить расширение работы с файлами.");
Правильно:
Предупреждение(НСтр("ru='Для выполнения операции необходимо установить расширение работы с файлами.'"));
Также следует обращать внимание на корректное использование функции
НСтр.
Например, неправильно:
ТекстСообщения = "ru='Для выполнения операции необходимо установить расширение работы с файлами.'";
Предупреждение(НСтр(ТекстСообщения));
правильно:
ТекстСообщения = НСтр("ru='Для выполнения операции необходимо установить расширение работы с файлами.'");
Предупреждение(ТекстСообщения);
2. В том случае если строка является составной и включает в себя части,
зависящие от тех или иных условий, тем не менее, настоятельно
рекомендуется использовать логически завершенные, целостные фразы. Для
формирования переменной составляющей строки при этом необходимо
применять функцию
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку для подстановки
параметров в строки сообщений пользователю.
СтрокаВопроса = НСтр("ru = 'Видите ли вы корректно это сообщение: ""%1""?'");
СтрокаВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
СтрокаВопроса, ПолучитьТекстСообщения());
Это требование обусловлено, во-первых, разным расположением параметров в
тексте предложения на различных языках, что приводит к необходимости
изменения исходного кода для перестановки складываемых фрагментов строк,
а во-вторых, сложностью перевода отдельных несогласованных частей
предложения.
В связи со сложившейся практикой, допускается использовать именованные
параметры подстановки (параметры, включающие имя аналогично переменной,
а не номер) только в двух вариантах: [Параметр], %Параметр%. Здесь
Параметр должен удовлетворять требованиям стандарта Правила образования
имен переменных.
При использовании в конфигурации Библиотеки стандартных подсистем, можно
использовать функцию
СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку. Это позволит
лучше автоматизировать определение, что в строке используется именно
подстановка параметров, а не другая синтаксическая конструкция языка.
Правильно:
Шаблон = НСтр("ru = '[Организация]-[Контрагент] Счет №[Номер] от [Дата]'");
ЗначенияРеквизитовДокументов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивОбъектов, "Организация,Контрагент,Номер,Дата,Ссылка");
Для Каждого Ссылка Из МассивОбъектов Цикл
ИмяФайла = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(Шаблон, ЗначенияРеквизитовДокументов[Ссылка]);
КонецЦикла;
3. В функции НСтр строка ограничивается символами одинарных кавычек.
Такое требование обусловлено частым использованием двойных кавычек в
строковых литералах, а также встроенным в платформу механизмом
редактирования строк на разных языках.
Неправильно:
Предупреждение(НСтр("ru=Переменная типа ""Строка"""));
Предупреждение(НСтр("ru=""Переменная типа ""Строка"""""));
Правильно:
Предупреждение(НСтр("ru='Переменная типа ""Строка""'"));
4. В редких случаях, например, когда нужно собрать длинное сообщение с
предоставлением лога действий пользователя, допускается применять не
замену строк в строке-шаблоне, а сложение строк. При этом неязыковые
символы (чаще перенос строки) в начале и конце строк необходимо выделять
в отдельные строковые литералы (которые пропускаются при переводе).
Неправильно:
ТекстСообщения = НСтр("ru = 'Не удалось сохранить файл документа по причине:
|'")
+ ИнформацияОбОшибке;
Правильно:
ТекстСообщения = НСтр("ru = 'Не удалось сохранить файл документа по причине:'")
+ Симв.ПС + ИнформацияОбОшибке;
В противном случае, при переводе строки на другой язык концевой пробел
легко может быть не замечен переводчиком, так как переводчик не видит
всего контекста, а только сводную таблицу строк, подлежащих переводу.
Кроме того, может быть искажена при переводе фраза, так как её
продолжение переводчику не видно и нет символа шаблона подстановки,
поясняющего, что дальше будет продолжение.
1. Если в модулях конфигурации встречаются строки, предназначенные для
пользовательского интерфейса (сообщения пользователю, надписи в формах,
названия и подсказки команд, выражения в настройках СКД и т.п.)
необходимо обеспечить возможность локализации таких строк.
Для этого необходимо применять функцию НСтр вместо прямого использования
строковых литералов. Иное использование строк, предназначенных для
пользовательского интерфейса, не допускается.
Мета-информация (пожалуйста, заполните если знаете):
Номер стандарта: 761
Код проверки: ??my-check-id
Тип ошибки: ERRORSECURITYPERFORMANCEWARNINGPORTABILITYLIBRARY_DEVELOPMENT_AND_USAGECODE_STYLEUI_STYLESPELLING
Критичность: BLOCKERCRITICALMAJORMINORTRIVIAL
Код ошибки АПК: 1297
Параметры проверки
NA
Текст ошибки
Строка не локализована. Возможно, она видна пользователю.
The text was updated successfully, but these errors were encountered:
marmyshev
added
bsl
1C Built-in Script Language
dcs
Data Composition Scheme (СКД)
form
Модель форм 1С
mdo
Metadata objects (Объекты метаданных)
standards
Поддержка стандартов
АПК
Доработка совместимоси с функциональностю АПК ред.1
Черновик
Задача не отредактирована, шаблон, или не дописана.
labels
Sep 14, 2021
marmyshev
removed
dcs
Data Composition Scheme (СКД)
mdo
Metadata objects (Объекты метаданных)
form
Модель форм 1С
Черновик
Задача не отредактирована, шаблон, или не дописана.
labels
Apr 2, 2022
Название проверки
Строка не локализована. Возможно, она видна пользователю.
Английское название проверки
??
Правило анализа кода/метаданных
Интерфейсные тексты в коде: требования по локализации
1. Если в модулях конфигурации встречаются строки, предназначенные для
пользовательского интерфейса (сообщения пользователю, надписи в формах,
названия и подсказки команд, выражения в настройках СКД и т.п.)
необходимо обеспечить возможность локализации таких строк.
Для этого необходимо применять функцию НСтр вместо прямого использования
строковых литералов. Иное использование строк, предназначенных для
пользовательского интерфейса, не допускается.
Например, неправильно:
Правильно:
Также следует обращать внимание на корректное использование функции
НСтр.
Например, неправильно:
правильно:
2. В том случае если строка является составной и включает в себя части,
зависящие от тех или иных условий, тем не менее, настоятельно
рекомендуется использовать логически завершенные, целостные фразы. Для
формирования переменной составляющей строки при этом необходимо
применять функцию
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку для подстановки
параметров в строки сообщений пользователю.
Неправильно:
Правильно:
Это требование обусловлено, во-первых, разным расположением параметров в
тексте предложения на различных языках, что приводит к необходимости
изменения исходного кода для перестановки складываемых фрагментов строк,
а во-вторых, сложностью перевода отдельных несогласованных частей
предложения.
В связи со сложившейся практикой, допускается использовать именованные
параметры подстановки (параметры, включающие имя аналогично переменной,
а не номер) только в двух вариантах: [Параметр], %Параметр%. Здесь
Параметр должен удовлетворять требованиям стандарта Правила образования
имен переменных.
Правильно:
При использовании в конфигурации Библиотеки стандартных подсистем, можно
использовать функцию
СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку. Это позволит
лучше автоматизировать определение, что в строке используется именно
подстановка параметров, а не другая синтаксическая конструкция языка.
Правильно:
3. В функции НСтр строка ограничивается символами одинарных кавычек.
Такое требование обусловлено частым использованием двойных кавычек в
строковых литералах, а также встроенным в платформу механизмом
редактирования строк на разных языках.
Неправильно:
Правильно:
4. В редких случаях, например, когда нужно собрать длинное сообщение с
предоставлением лога действий пользователя, допускается применять не
замену строк в строке-шаблоне, а сложение строк. При этом неязыковые
символы (чаще перенос строки) в начале и конце строк необходимо выделять
в отдельные строковые литералы (которые пропускаются при переводе).
Неправильно:
Правильно:
В противном случае, при переводе строки на другой язык концевой пробел
легко может быть не замечен переводчиком, так как переводчик не видит
всего контекста, а только сводную таблицу строк, подлежащих переводу.
Кроме того, может быть искажена при переводе фраза, так как её
продолжение переводчику не видно и нет символа шаблона подстановки,
поясняющего, что дальше будет продолжение.
1. Если в модулях конфигурации встречаются строки, предназначенные для
пользовательского интерфейса (сообщения пользователю, надписи в формах,
названия и подсказки команд, выражения в настройках СКД и т.п.)
необходимо обеспечить возможность локализации таких строк.
Для этого необходимо применять функцию НСтр вместо прямого использования
строковых литералов. Иное использование строк, предназначенных для
пользовательского интерфейса, не допускается.
Мета-информация (пожалуйста, заполните если знаете):
761
??my-check-id
ERROR
SECURITY
PERFORMANCE
WARNING
PORTABILITY
LIBRARY_DEVELOPMENT_AND_USAGE
CODE_STYLE
UI_STYLE
SPELLING
BLOCKER
CRITICAL
MAJOR
MINOR
TRIVIAL
1297
Параметры проверки
Текст ошибки
Строка не локализована. Возможно, она видна пользователю.
Пример некорректного решения
Описание, почему так делать нельзя
Пример корректного решения
Дополнительные материалы
The text was updated successfully, but these errors were encountered: