[{"displayName":"Gettext PO","fileTypes":["po","pot","potx"],"name":"po","patterns":[{"begin":"^(?:(?=(msg(?:id(_plural)?|ctxt))\\s*\"[^\"])|\\s*$)","end":"\\z","patterns":[{"include":"#body"}]},{"include":"#comments"},{"match":"^msg(id|str)\\s+\"\"\\s*$\\n?","name":"comment.line.number-sign.po"},{"captures":{"1":{"name":"constant.language.po"},"2":{"name":"punctuation.separator.key-value.po"},"3":{"name":"string.other.po"}},"match":"^\"(?:([^:\\s]+)(:)\\s+)?([^\"]*)\"\\s*$\\n?","name":"meta.header.po"}],"repository":{"body":{"patterns":[{"begin":"^(msgid(_plural)?)\\s+","beginCaptures":{"1":{"name":"keyword.control.msgid.po"}},"end":"^(?!\")","name":"meta.scope.msgid.po","patterns":[{"begin":"(\\G|^)\"","end":"\"","name":"string.quoted.double.po","patterns":[{"match":"\\\\[\"\\\\]","name":"constant.character.escape.po"}]}]},{"begin":"^(msgstr)(?:(\\[)(\\d+)(]))?\\s+","beginCaptures":{"1":{"name":"keyword.control.msgstr.po"},"2":{"name":"keyword.control.msgstr.po"},"3":{"name":"constant.numeric.po"},"4":{"name":"keyword.control.msgstr.po"}},"end":"^(?!\")","name":"meta.scope.msgstr.po","patterns":[{"begin":"(\\G|^)\"","end":"\"","name":"string.quoted.double.po","patterns":[{"match":"\\\\[\"\\\\]","name":"constant.character.escape.po"}]}]},{"begin":"^(msgctxt)(?:(\\[)(\\d+)(]))?\\s+","beginCaptures":{"1":{"name":"keyword.control.msgctxt.po"},"2":{"name":"keyword.control.msgctxt.po"},"3":{"name":"constant.numeric.po"},"4":{"name":"keyword.control.msgctxt.po"}},"end":"^(?!\")","name":"meta.scope.msgctxt.po","patterns":[{"begin":"(\\G|^)\"","end":"\"","name":"string.quoted.double.po","patterns":[{"match":"\\\\[\"\\\\]","name":"constant.character.escape.po"}]}]},{"captures":{"1":{"name":"punctuation.definition.comment.po"}},"match":"^(#~).*$\\n?","name":"comment.line.number-sign.obsolete.po"},{"include":"#comments"},{"match":"^(?!\\s*$)[^\"#].*$\\n?","name":"invalid.illegal.po"}]},"comments":{"patterns":[{"begin":"^(?=#)","end":"(?!\\G)","patterns":[{"begin":"(#,)\\s+","beginCaptures":{"1":{"name":"punctuation.definition.comment.po"}},"end":"\\n","name":"comment.line.number-sign.flag.po","patterns":[{"captures":{"1":{"name":"entity.name.type.flag.po"}},"match":"(?:\\G|,\\s*)(fuzzy|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format)"}]},{"begin":"#\\.","beginCaptures":{"0":{"name":"punctuation.definition.comment.po"}},"end":"\\n","name":"comment.line.number-sign.extracted.po"},{"begin":"(#:)[\\t ]*","beginCaptures":{"1":{"name":"punctuation.definition.comment.po"}},"end":"\\n","name":"comment.line.number-sign.reference.po","patterns":[{"match":"(\\S+:)([;\\d]*)","name":"storage.type.class.po"}]},{"begin":"#\\|","beginCaptures":{"0":{"name":"punctuation.definition.comment.po"}},"end":"\\n","name":"comment.line.number-sign.previous.po"},{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.po"}},"end":"\\n","name":"comment.line.number-sign.po"}]}]}},"scopeName":"source.po"}]