Packages
gettext
0.5.0
1.0.2
1.0.1
retired
1.0.0
0.26.2
0.26.1
0.26.0
retired
0.25.0
0.24.0
0.23.1
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.2
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.1
0.6.0
0.5.0
Internationalization and localization through gettext
Current section
Files
Jump to
Current section
Files
src/gettext_po_parser.yrl
Nonterminals grammar translations translation pluralizations pluralization
strings comments.
Terminals str msgid msgid_plural msgstr plural_form comment.
Rootsymbol grammar.
grammar ->
translations : '$1'.
translations ->
'$empty' : [].
translations ->
translation translations : ['$1'|'$2'].
translation ->
comments msgid strings msgstr strings : {translation, #{
comments => '$1',
msgid => '$3',
msgstr => '$5',
po_source_line => extract_line('$2')
}}.
translation ->
comments msgid strings msgid_plural strings pluralizations : {plural_translation, #{
comments => '$1',
msgid => '$3',
msgid_plural => '$5',
msgstr => plural_forms_map_from_list('$6'),
po_source_line => extract_line('$2')
}}.
pluralizations ->
pluralization : ['$1'].
pluralizations ->
pluralization pluralizations : ['$1'|'$2'].
pluralization ->
msgstr plural_form strings : {'$2', '$3'}.
strings ->
str : [extract_simple_token('$1')].
strings ->
str strings : [extract_simple_token('$1')|'$2'].
comments ->
'$empty' : [].
comments ->
comment comments : [extract_simple_token('$1')|'$2'].
Erlang code.
extract_simple_token({_Token, _Line, Value}) ->
Value.
extract_line({_Token, Line}) ->
Line.
plural_forms_map_from_list(Pluralizations) ->
Tuples = lists:map(fun extract_plural_form/1, Pluralizations),
maps:from_list(Tuples).
extract_plural_form({{plural_form, _Line, PluralForm}, String}) ->
{PluralForm, String}.