]> granicus.if.org Git - ejabberd/commitdiff
Report invalid translation strings
authorEvgeny Khramtsov <ekhramtsov@process-one.net>
Mon, 24 Jun 2019 18:09:29 +0000 (21:09 +0300)
committerEvgeny Khramtsov <ekhramtsov@process-one.net>
Mon, 24 Jun 2019 18:09:29 +0000 (21:09 +0300)
tools/extract-tr.sh

index 0375a1f21ba86c5199d583e95577711c24329c88..242a81fecbd41bbaecd0889d454831cc638dca39 100755 (executable)
@@ -10,8 +10,13 @@ main(Paths) ->
     generate_pot(Dict).
 
 extract_tr(File, [{'?', _}, {var, _, 'T'}, {'(', Line}|Tokens], Acc) ->
-    {String, Tokens1} = extract_string(Tokens, []),
-    extract_tr(File, Tokens1, dict:append(String, {File, Line}, Acc));
+    case extract_string(Tokens, "") of
+       {"", Tokens1} ->
+           err("~s:~B: Warning: invalid string", [File, Line]),
+           extract_tr(File, Tokens1, Acc);
+       {String, Tokens1} ->
+           extract_tr(File, Tokens1, dict:append(String, {File, Line}, Acc))
+    end;
 extract_tr(File, [_|Tokens], Acc) ->
     extract_tr(File, Tokens, Acc);
 extract_tr(_, [], Acc) ->
@@ -19,8 +24,10 @@ extract_tr(_, [], Acc) ->
 
 extract_string([{string, _, S}|Tokens], Acc) ->
     extract_string(Tokens, [S|Acc]);
-extract_string(Tokens, Acc) ->
-    {lists:flatten(lists:reverse(Acc)), Tokens}.
+extract_string([{')', _}|Tokens], Acc) ->
+    {lists:flatten(lists:reverse(Acc)), Tokens};
+extract_string(Tokens, _) ->
+    {"", Tokens}.
 
 fold_erls(Fun, State, Paths) ->
     Paths1 = fold_paths(Paths),