rules: - id: frappe-translation-empty-string pattern-either: - pattern: _("") - pattern: __("") message: | Empty string is useless for translation. Please refer: https://frappeframework.com/docs/user/en/translations languages: [python, javascript, json] severity: ERROR - id: frappe-translation-trailing-spaces pattern-either: - pattern: _("=~/(^[ \t]+|[ \t]+$)/") - pattern: __("=~/(^[ \t]+|[ \t]+$)/") message: | Trailing or leading whitespace not allowed in translate strings. Please refer: https://frappeframework.com/docs/user/en/translations languages: [python, javascript, json] severity: ERROR - id: frappe-translation-python-formatting pattern-either: - pattern: _("..." % ...) - pattern: _("...".format(...)) - pattern: _(f"...") message: | Only positional formatters are allowed and formatting should not be done before translating. Please refer: https://frappeframework.com/docs/user/en/translations languages: [python] severity: ERROR - id: frappe-translation-js-formatting patterns: - pattern: __(`...`) - pattern-not: __("...") message: | Template strings are not allowed for text formatting. Please refer: https://frappeframework.com/docs/user/en/translations languages: [javascript, json] severity: ERROR - id: frappe-translation-python-splitting pattern-either: - pattern: _(...) + _(...) - pattern: _("..." + "...") - pattern-regex: '[\s\.]_\([^\)]*\\\s*' # lines broken by `\` - pattern-regex: '[\s\.]_\(\s*\n' # line breaks allowed by python for using ( ) message: | Do not split strings inside translate function. Do not concatenate using translate functions. Please refer: https://frappeframework.com/docs/user/en/translations languages: [python] severity: ERROR - id: frappe-translation-js-splitting pattern-either: - pattern-regex: '__\([^\)]*[\\]\s+' - pattern: __('...' + '...', ...) - pattern: __('...') + __('...') message: | Do not split strings inside translate function. Do not concatenate using translate functions. Please refer: https://frappeframework.com/docs/user/en/translations languages: [javascript, json] severity: ERROR