<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="GNU Gettext" version="5" kateversion="5.0" section="Markup" extensions="*.po;*.pot" mimetype="text/x-gettext-translation" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
<highlighting>
<contexts>
<context name = "Normal" attribute = "Normal Text" lineEndContext="#stay">
<RegExpr attribute = "Keyword" String = "^(msgid_plural|msgid|msgstr|msgctxt)" context="#stay"/>
<StringDetect attribute = "Automatic Comment" String = "#." context="AutomaticComment" firstNonSpace="true"/>
<StringDetect attribute = "Reference" String = "#:" context="References" firstNonSpace="true"/>
<StringDetect attribute = "Flag" String = "#," context="Flags" firstNonSpace="true"/>
<StringDetect attribute = "StringPrevious" String = "#|" context="Previous" firstNonSpace="true"/>
<StringDetect attribute = "Translator Comment" String = "#" context="TranslatorComment" firstNonSpace="true"/>
<RegExpr attribute = "Char" String="\\." context="#stay"/>
<DetectChar attribute = "String" char=""" context="String"/>
<RegExpr attribute = "Index" String="\[\d+\]" context="#stay"/>
</context>
<context name = "TranslatorComment" attribute = "Translator Comment" lineEndContext="#pop">
<StringDetect attribute = "StringDiffNewWrapComment" String="{+" context="StringDiffNewComment"/>
<StringDetect attribute = "StringDiffOldWrapComment" String="{-" context="StringDiffOldComment"/>
</context>
<context name = "AutomaticComment" attribute = "Automatic Comment" lineEndContext="#pop">
<StringDetect attribute = "StringDiffNewWrapComment" String="{+" context="StringDiffNewComment"/>
<StringDetect attribute = "StringDiffOldWrapComment" String="{-" context="StringDiffOldComment"/>
</context>
<context name = "References" attribute = "Reference" lineEndContext="#pop">
<StringDetect attribute = "StringDiffNewWrapComment" String="{+" context="StringDiffNewComment"/>
<StringDetect attribute = "StringDiffOldWrapComment" String="{-" context="StringDiffOldComment"/>
</context>
<context name = "Flags" attribute = "Flag" lineEndContext="#pop">
<!-- Make fuzzy-flag stand out from the rest, being the most important. -->
<StringDetect attribute = "FlagFuzzy" String="fuzzy" context="#stay"/>
<StringDetect attribute = "StringDiffNewWrapComment" String="{+" context="StringDiffNewComment"/>
<StringDetect attribute = "StringDiffOldWrapComment" String="{-" context="StringDiffOldComment"/>
</context>
<context name = "StringDiffNewComment" attribute = "StringDiffNewComment" lineEndContext="#pop">
<StringDetect attribute = "StringDiffNewWrapComment" String="+}" context="#pop"/>
</context>
<context name = "StringDiffOldComment" attribute = "StringDiffOldComment" lineEndContext="#pop">
<StringDetect attribute = "StringDiffOldWrapComment" String="-}" context="#pop"/>
</context>
<!--
Tag-context should be carried over if split by string continuation,
to not lose markup highlighting when that happens.
-->
<context name = "String" attribute = "String" lineEndContext="#stay">
<RegExpr attribute = "Char" String="\\." context="#stay"/>
<RegExpr attribute = "Entity" String="&([a-zA-Z0-9_.-]+|#[0-9]+);" context="#stay"/>
<StringDetect attribute = "StringDiffNewWrap" String="{+" context="StringDiffNew"/>
<StringDetect attribute = "StringDiffOldWrap" String="{-" context="StringDiffOld"/>
<DetectChar attribute = "StringTag" char="<" context="StringTag"/>
<DetectChar attribute = "String" char=""" context="StringWrap"/>
</context>
<context name = "StringTag" attribute = "StringTag" lineEndContext="#stay">
<RegExpr attribute = "Char" String="\\." context="#stay"/>
<StringDetect attribute = "StringDiffNewWrap" String="{+" context="StringDiffNew"/>
<StringDetect attribute = "StringDiffOldWrap" String="{-" context="StringDiffOld"/>
<DetectChar attribute = "StringTag" char=">" context="#pop"/>
<DetectChar attribute = "String" char=""" context="StringWrapSub"/>
</context>
<context name = "StringWrap" attribute = "String" lineEndContext="#stay">
<DetectChar attribute = "String" char=""" context="#pop"/>
<RegExpr String="." lookAhead="true" context="#pop#pop"/>
</context>
<context name = "StringDiffNew" attribute = "StringDiffNew" lineEndContext="#stay">
<RegExpr attribute = "Char" String="\\." context="#stay"/>
<StringDetect attribute = "StringDiffNewWrap" String="+}" context="#pop"/>
<DetectChar attribute = "String" char=""" context="StringWrapSub"/>
</context>
<context name = "StringDiffOld" attribute = "StringDiffOld" lineEndContext="#stay">
<RegExpr attribute = "Char" String="\\." context="#stay"/>
<StringDetect attribute = "StringDiffOldWrap" String="-}" context="#pop"/>
<DetectChar attribute = "String" char=""" context="StringWrapSub"/>
</context>
<context name = "StringWrapSub" attribute = "String" lineEndContext="#stay">
<DetectChar attribute = "String" char=""" context="#pop"/>
<RegExpr String="." lookAhead="true" context="#pop#pop#pop"/>
</context>
<!--
Previous strings are those in #| comments, introduced by Gettext 0.16.
They should have all the same highlight types as normal strings.
A special addition are embedded diff-segments: {+...+} and {-...-},
which are not Gettext standard, but some tools can produce them.
-->
<context name = "Previous" attribute = "Normal Text" lineEndContext="#pop">
<RegExpr attribute = "KeywordPrevious" String = "(msgctxt|msgid_plural|msgid|msgstr)" context="#stay"/>
<RegExpr attribute = "CharPrevious" String="\\." context="#stay"/>
<DetectChar attribute = "StringPrevious" char=""" context="StringPrevious"/>
<RegExpr attribute = "IndexPrevious" String="\[\d+\]" context="#stay"/>
</context>
<context name = "StringPrevious" attribute = "StringPrevious" lineEndContext="#stay">
<RegExpr attribute = "CharPrevious" String="\\." context="#stay"/>
<RegExpr attribute = "EntityPrevious" String="&([a-zA-Z0-9_.-]+|#[0-9]+);" context="#stay"/>
<StringDetect attribute = "StringDiffNewWrapPrevious" String="{+" context="StringDiffNewPrevious"/>
<StringDetect attribute = "StringDiffOldWrapPrevious" String="{-" context="StringDiffOldPrevious"/>
<DetectChar attribute = "StringTagPrevious" char="<" context="StringTagPrevious"/>
<DetectChar attribute = "StringPrevious" char=""" context="StringWrapPrevious"/>
</context>
<context name = "StringTagPrevious" attribute = "StringTagPrevious" lineEndContext="#stay">
<RegExpr attribute = "Char" String="\\." context="#stay"/>
<StringDetect attribute = "StringDiffNewWrapPrevious" String="{+" context="StringDiffNewPrevious"/>
<StringDetect attribute = "StringDiffOldWrapPrevious" String="{-" context="StringDiffOldPrevious"/>
<DetectChar attribute = "StringTagPrevious" char=">" context="#pop"/>
<DetectChar attribute = "StringPrevious" char=""" context="StringWrapSubPrevious"/>
</context>
<context name = "StringDiffNewPrevious" attribute = "StringDiffNewPrevious" lineEndContext="#stay">
<RegExpr attribute = "CharPrevious" String="\\." context="#stay"/>
<StringDetect attribute = "StringDiffNewWrapPrevious" String="+}" context="#pop"/>
<DetectChar attribute = "StringPrevious" char=""" context="StringWrapSubPrevious"/>
</context>
<context name = "StringDiffOldPrevious" attribute = "StringDiffOldPrevious" lineEndContext="#stay">
<RegExpr attribute = "CharPrevious" String="\\." context="#stay"/>
<StringDetect attribute = "StringDiffOldWrapPrevious" String="-}" context="#pop"/>
<DetectChar attribute = "StringPrevious" char=""" context="StringWrapSubPrevious"/>
</context>
<context name = "StringWrapPrevious" attribute = "StringPrevious" lineEndContext="#stay">
<RegExpr String="[^#]" firstNonSpace="true" lookAhead="true" context="#pop#pop"/>
<RegExpr attribute = "StringPrevious" String="(#\|)? *"" context="#pop"/>
<RegExpr String="." lookAhead="true" context="#pop#pop"/>
</context>
<context name = "StringWrapSubPrevious" attribute = "StringPrevious" lineEndContext="#stay">
<RegExpr String="[^#]" firstNonSpace="true" lookAhead="true" context="#pop#pop#pop"/>
<RegExpr attribute = "StringPrevious" String="(#\|)? *"" context="#pop"/>
<RegExpr String="." lookAhead="true" context="#pop#pop#pop"/>
</context>
</contexts>
<itemDatas>
<!-- Adapted to work with Syntax::Kamelon-->
<itemData name = "Normal Text" defStyleNum ="dsNormal"/>
<itemData name = "Keyword" defStyleNum ="dsKeyword"/>
<itemData name = "KeywordPrevious" defStyleNum ="dsOperator" italic="true" color="#006060"/>
<itemData name = "String" defStyleNum ="dsString"/>
<itemData name = "StringPrevious" defStyleNum ="dsSpecialChar" italic="true" color="#008080"/>
<itemData name = "Translator Comment" defStyleNum ="dsComment" color="#888888"/>
<itemData name = "Automatic Comment" defStyleNum ="dsCommentVar" color="#0000ff"/>
<itemData name = "Reference" defStyleNum ="dsBaseN" color="#0000ff"/>
<itemData name = "Flag" defStyleNum ="dsBuiltIn" color="#0000ff"/>
<itemData name = "FlagFuzzy" defStyleNum ="dsConstant" color="#800080" bold="true"/>
<itemData name = "Char" defStyleNum ="dsChar" color="#ff00ff"/>
<itemData name = "CharPrevious" defStyleNum ="dsVariable" italic="true" color="#00c040"/>
<itemData name = "Entity" defStyleNum ="dsSpecialString" color="#ff0040" bold="true"/>
<itemData name = "EntityPrevious" defStyleNum ="dsVerbatimString" color="#40c080" bold="true" italic="true"/>
<itemData name = "StringTag" defStyleNum ="dsBuiltIn" color="#c00000" bold="true"/>
<itemData name = "StringTagPrevious" defStyleNum ="dsFloat" color="#006060" bold="true" italic="true"/>
<itemData name = "Index" defStyleNum ="dsDecVal" color="#0000ff"/>
<itemData name = "IndexPrevious" defStyleNum ="dsDataType" italic="true" color="#000000"/>
<itemData name = "StringDiffNewWrap" defStyleNum ="dsOperator" color="#0080f8"/>
<itemData name = "StringDiffOldWrap" defStyleNum ="dsAttribute" color="#f00080"/>
<itemData name = "StringDiffNew" defStyleNum ="dsPreprocessor" underline="true" color="#0080f8"/>
<itemData name = "StringDiffOld" defStyleNum ="dsRegionMarker" underline="true" color="#f00080"/>
<itemData name = "StringDiffNewWrapComment" defStyleNum ="dsDocumentation" italic="true" color="#0080f8"/>
<itemData name = "StringDiffOldWrapComment" defStyleNum ="dsInformation" italic="true" color="#f00080"/>
<itemData name = "StringDiffNewComment" defStyleNum ="dsControlFlow" italic="true" color="#0080f8"/>
<itemData name = "StringDiffOldComment" defStyleNum ="dsCommentVar" italic="true" color="#f00080"/>
<itemData name = "StringDiffNewWrapPrevious" defStyleNum ="dsAnnotation" italic="true" color="#0080f8"/>
<itemData name = "StringDiffOldWrapPrevious" defStyleNum ="dsDocumentation" italic="true" color="#f00080"/>
<itemData name = "StringDiffNewPrevious" defStyleNum ="dsFunction" italic="true" color="#0080f8"/>
<itemData name = "StringDiffOldPrevious" defStyleNum ="dsOthers" italic="true" color="#f00080"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#" />
</comments>
<keywords casesensitive="1" />
</general>
</language>