Provided by: i18nspector_0.13.4-1_all
NAME
i18nspector - checking tool for gettext POT, PO and MO files
SYNOPSIS
i18nspector [--language <lang>] [--debian] <file> [<file> …]
OPTIONS
-l <lang>, --language <lang> Assume this language. <lang> should be a 2- or 3-letter ISO 639 language code, possibly followed by underscore and a 2-letter ISO 3166 territory code. --debian Allow checking Debian (binary or source) packages. This option is enabled by default on modern Debian systems and its derivatives; it needs to be explicitly enabled on other systems.
DESCRIPTION
i18nspector is a tool for checking translation templates (POT), message catalogues (PO) and compiled message catalogues (MO) files for common problems. These files are used by the GNU gettext translation functions and tools in many different development environments. The following format is used for all the reported problems: code: file: tag [extra] where: • code is a letter indicating type of the message: E (error), W (warning), I (informative message), or P (pedantic message); • tag is a name of the problem that was discovered; • extra can contain additional information about the problem.
TAGS
ancient-date The date refers to the time before the first GNU gettext release. As such, it's extremely unlikely to be correct. References: http://git.savannah.gnu.org/cgit/gettext.git/tree/ChangeLog.0#n1767 Severity, certainty: normal, certain arithmetic-error-in-plural-forms Computing a plural form value triggers division by zero or integer overflow. This normally indicates an error in the plural form expression. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: serious, possible arithmetic-error-in-unused-plural-forms Computing a plural form value triggers division by zero or integer overflow. (But there are no translated messages which use plural forms.) This normally indicates an error in the plural form expression. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: normal, possible boilerplate-in-content-type The Content-Type header field contains xgettext boilerplate. It should be in the form text/plain; charset=encoding. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: important, certain boilerplate-in-date The date header field contains xgettext boilerplate. The date format should be YYYY-MM-DD hh:mm+ZZzz, e.g. 2011-11-05 10:14+0100. Severity, certainty: normal, certain boilerplate-in-language-team The Language-Team header field contains xgettext boilerplate. It should contain English name of the language, and the email address or homepage URL of the language team. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, certain boilerplate-in-last-translator The Last-Translator header field contains xgettext boilerplate. It should contain the last translator's name and email address. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: normal, certain boilerplate-in-project-id-version The Project-Id-Version header field contains xgettext boilerplate. It should contain the name and the version of the package. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, certain boilerplate-in-report-msgid-bugs-to The Report-Msgid-Bugs-To header field contains xgettext boilerplate. It should contain an email address or URL where one can report bugs in the untranslated strings. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: normal, certain broken-encoding Header fields and messages contained by this file couldn't be decoded to Unicode. The usual cause of this is incorrect or missing encoding declaration. Note that in the absence of encoding declaration, i18nspector assumes ASCII encoding. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2045#section-5 Severity, certainty: serious, possible codomain-error-in-plural-forms Either a plural form value is outside the declared range, or some values within the declared range can never be reached. This normally indicates an error in the plural form expression. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: serious, possible codomain-error-in-unused-plural-forms Either a plural form value is outside the declared range, or some values within the declared range can never be reached. (But there are no translated messages which use plural forms.) This normally indicates an error in the plural form expression. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: normal, possible conflict-marker-in-header-entry The header contains a conflict marker (#-#-#-#-# … #-#-#-#-#). The conflict will have to be resolved manually. References: http://www.gnu.org/software/gettext/manual/html_node/Creating-Compendia.html#Creating-Compendia Severity, certainty: serious, certain conflict-marker-in-translation One of the translated messages appear to contain a conflict marker (#-#-#-#-# … #-#-#-#-#). The conflict will have to be resolved manually. References: http://www.gnu.org/software/gettext/manual/html_node/Creating-Compendia.html#Creating-Compendia Severity, certainty: serious, possible conflicting-message-flags Two flags with conflicting meanings are associated with one of the messages. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Severity, certainty: important, possible date-from-future The date refers to the future. As such, it's extremely unlikely to be correct. Severity, certainty: normal, certain distant-header-entry The header entry in this file is preceded by other entries. The header entry should be always the first one. Severity, certainty: important, certain duplicate-flag-for-header-entry Multiple identical flags are associated with the header entry. Severity, certainty: minor, certain duplicate-header-entry This file contains multiple header entries. Severity, certainty: serious, certain duplicate-header-field This file contains multiple header fields of the same name. Severity, certainty: minor, wild-guess duplicate-header-field-content-transfer-encoding This file contains multiple Content-Transfer-Encoding header fields. Severity, certainty: pedantic, certain duplicate-header-field-content-type This file contains multiple Content-Type header fields. Severity, certainty: serious, certain duplicate-header-field-date This file contains multiple date header fields of the same name. Severity, certainty: normal, certain duplicate-header-field-language This file contains multiple Language header fields. Severity, certainty: important, certain duplicate-header-field-language-team This file contains multiple Language-Team header fields. Severity, certainty: normal, certain duplicate-header-field-last-translator This file contains multiple Last-Translator header fields. Severity, certainty: normal, certain duplicate-header-field-mime-version This file contains multiple MIME-Version header fields. Severity, certainty: pedantic, certain duplicate-header-field-plural-forms This file contains multiple Plural-Forms header fields. Severity, certainty: serious, certain duplicate-header-field-project-id-version This file contains multiple Project-Id-Version header fields. Severity, certainty: minor, certain duplicate-header-field-report-msgid-bugs-to This file contains multiple Report-Msgid-Bugs-To header fields. Severity, certainty: normal, certain duplicate-header-field-x-poedit This file contains multiple X-Poedit-* header fields. Severity, certainty: normal, certain duplicate-message-definition This file contains multiple definitions of the same message. Severity, certainty: serious, certain duplicate-message-flag Multiple identical flags are associated with one of the messages. Severity, certainty: minor, certain empty-file This file doesn't contain any messages. Severity, certainty: normal, certain empty-msgid-message-with-plural-forms The message with empty msgid contains plural forms. Such messages are reserved by GNU gettext for header entries, and your code should not call ngettext("", …). Severity, certainty: serious, certain empty-msgid-message-with-source-code-references The message with empty msgid contains plural forms. Such messages are reserved by GNU gettext for header entries, and your code should not call gettext(""). Severity, certainty: serious, possible encoding-in-language-header-field The language header field contains encoding declaration. Such information shouldn't be included in this field. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, certain fuzzy-header-entry The header entry is marked as fuzzy. To increase operability with very old (<< 0.11) msgfmt(1) versions, which didn't support fuzzy header entries, it shouldn't be marked as such. References: http://git.savannah.gnu.org/cgit/gettext.git/tree/NEWS?id=v0.11#n44 Severity, certainty: pedantic, certain inconsistent-leading-newlines Some strings in an entry start with a newline, but some don't. Either all of them should start with a newline, or none of them should. Severity, certainty: important, possible inconsistent-number-of-plural-forms Number of plural forms in a message definition doesn't match number of plural forms declared in another message definition. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html http://www.gnu.org/software/gettext/manual/html_node/Translating-plural-forms.html Severity, certainty: serious, certain inconsistent-trailing-newlines Some strings in an entry end with a newline, but some don't. Either all of them should end with a newline, or none of them should. Severity, certainty: important, possible incorrect-number-of-plural-forms Number of plural forms in a message definition doesn't match number of plural forms declared in the header. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html http://www.gnu.org/software/gettext/manual/html_node/Translating-plural-forms.html Severity, certainty: serious, certain incorrect-plural-forms The Plural-Forms declaration is incorrect, according to i18nspector's linguistic data. Severity, certainty: serious, possible incorrect-unused-plural-forms The Plural-Forms declaration is incorrect, according to i18nspector's linguistic data. (But there are no translated messages which use plural forms.) Severity, certainty: normal, possible invalid-content-transfer-encoding Value of the Content-Transfer-Encoding header field is invalid. It should be 8bit. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2045#section-6.1 Severity, certainty: pedantic, certain invalid-content-type Value of the Content-Type header field should is invalid. It should be in the form text/plain; charset=encoding. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2045#section-5 Severity, certainty: important, possible invalid-date The date is invalid or in an invalid format. The format should be YYYY-MM-DD hh:mm+ZZzz, e.g. 2011-11-05 10:14+0100. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: normal, certain invalid-language The Language header field couldn't be parsed, or it contains an unknown language. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: important, possible invalid-language-team The Language-Team header field contains an e-mail address that uses a reserved domain name. References: http://tools.ietf.org/html/rfc2606 Severity, certainty: normal, possible invalid-last-translator The Last-Translator header field could neither be parsed as an e-mail, or the e-mail address uses a reserved domain name. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2606 Severity, certainty: normal, possible invalid-mime-version Value of the MIME-Version header field is invalid. It should be 1.0. References: http://tools.ietf.org/html/rfc2045#section-4 Severity, certainty: pedantic, certain invalid-mo-file This file couldn't be parsed a MO file. Severity, certainty: serious, certain invalid-range-flag A range: flag couldn't be parsed, or the designated range contained less than two numbers. The syntax is range: min..max, where both values are non-negative integers. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Severity, certainty: important, certain invalid-report-msgid-bugs-to The Report-Msgid-Bugs-To header field could neither be parsed as an e-mail nor as a URL, or the e-mail address uses a reserved domain name. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2606 Severity, certainty: normal, possible language-disparity Language of this file has been declared in multiple places, but the declarations don't match. Severity, certainty: normal, possible language-team-equal-to-last-translator Language-Team and Last-Translator header fields contain the same e-mail address. Severity, certainty: minor, possible language-variant-does-not-affect-translation The Language header field contains a variant designator that is not relevant for the message translation. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, possible no-content-transfer-encoding-header-field The Content-Transfer-Encoding header field doesn't exist. It should be set to 8bit. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2045#section-6.1 Severity, certainty: pedantic, certain no-content-type-header-field The Content-Type header field doesn't exist. It should be set to text/plain; charset=encoding. Note that in the absence of encoding declaration, i18nspector assumes ASCII encoding. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html http://tools.ietf.org/html/rfc2045#section-5 Severity, certainty: important, certain no-date-header-field The date header field doesn't exist. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, certain no-language-header-field The Language header field doesn't exist. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: pedantic, certain no-language-team-header-field The Language-Team header field does not exist. It should contain English name of the language, and the email address or homepage URL of the language team. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: pedantic, certain no-last-translator-header-field The Last-Translator header field doesn't exist. It should contain the last translator's name and email address. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: normal, certain no-mime-version-header-field The MIME-Version header field does't exist. It should be to set to 1.0. References: http://tools.ietf.org/html/rfc2045#section-4 Severity, certainty: pedantic, certain no-package-name-in-project-id-version The Project-Id-Version header field doesn't appear to contain any name. It should contain both the name and the version of the package. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, possible no-plural-forms-header-field The Plural-Forms header field does not exist, even though some of the messages use plural forms (although none of them have been translated). References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: minor, certain no-project-id-version-header-field The Project-Id-Version header field does not exist. It should contain the name and the version of the package. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: minor, certain no-report-msgid-bugs-to-header-field The Report-Msgid-Bugs-To header field does not exist or it is empty. It should contain an email address or URL where one can report bugs in the untranslated strings. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: normal, certain no-required-plural-forms-header-field The Plural-Forms header field does not exist, even though some of the translated messages use plural forms. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: serious, certain no-version-in-project-id-version The Project-Id-Version header field doesn't appear to contain any version. It should contain both the name and the version of the package. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: pedantic, possible non-ascii-compatible-encoding This file uses an encoding that is not compatible with ASCII. Severity, certainty: serious, certain non-portable-encoding This file uses an encoding that is not widely supported by software. References: http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html Severity, certainty: important, certain os-error An input/output error or another operating system error occurred while checking this file. Severity, certainty: serious, certain range-flag-without-plural-string A range: flag is associated with a message that doesn't have plural string. range: flags only make sense for translations involving plural forms. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Severity, certainty: normal, certain redundant-message-flag A flags associated with one of the messages is redundant, because it's implied by another flag. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Severity, certainty: pedantic, certain stray-header-line The headers contains a line that does not belong to any header. Note that RFC-822-style folding of long headers is not supported. References: http://lists.gnu.org/archive/html/bug-gettext/2012-12/msg00010.html Severity, certainty: important, certain syntax-error-in-plural-forms Value of the Plural-Forms header field could not be parsed. It should be in the form nplurals=n; plural=expression. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: serious, possible syntax-error-in-po-file This file couldn't be parsed a PO file. In some rare cases this is due to incorrect or missing encoding declaration. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html http://bugs.debian.org/692283 Severity, certainty: serious, possible syntax-error-in-unused-plural-forms Value of the Plural-Forms header field could not be parsed. (But there are no translated messages which use plural forms.) It should be in the form nplurals=n; plural=expression. References: http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html Severity, certainty: important, possible unable-to-determine-language i18nspector was unable to determine language of this file. Absence of this information will prevent it from performing further checks. Severity, certainty: normal, wild-guess unexpected-flag-for-header-entry An unexpected flag is associated with the header entry. The only flag that makes sense for the header entry is fuzzy. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Severity, certainty: normal, possible unknown-encoding This file declares an encoding that couldn't be recognized by i18nspector. It might be a typo. Absence of encoding information will prevent i18nspector from performing further checks. Severity, certainty: important, possible unknown-file-type File format of this file couldn't be recognized. It might be a bug in i18nspector. Severity, certainty: normal, wild-guess unknown-header-field The header field name is unknown to i18nspector. It might be a typo or a capitalization error (header field names are case-sensitive). References: http://lists.gnu.org/archive/html/bug-gettext/2012-12/msg00010.html Severity, certainty: minor, wild-guess unknown-message-flag An unknown flag is associated with one of the messages. It might be a typo. References: http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html Severity, certainty: normal, wild-guess unknown-poedit-language Language declared in X-Poedit-Language couldn't be recognized. It might be a bug in i18nspector. Severity, certainty: minor, wild-guess unrepresentable-characters The declared encoding cannot represent all characters commonly used in this language. This is a strong indication that the declared encoding is incorrect. Severity, certainty: serious, possible unusual-character-in-header-entry The header entry contains an unusual character. This is usually an indication of an encoding problem, such as: • using ISO 2022 escape sequences, or • using UTF-8 despite declaring an 8-bit encoding. References: http://www.unicode.org/faq/utf_bom.html#bom6 Severity, certainty: important, certain unusual-character-in-translation One of the translated messages contains an unusual character. This is usually an indication of an encoding problem, such as: • using ISO 2022 escape sequences, or • using UTF-8 despite declaring an 8-bit encoding. References: http://www.unicode.org/faq/utf_bom.html#bom6 Severity, certainty: important, possible
SEE ALSO
msgfmt(1), particularly the -c option