- first = false;
- wikiBuilder.append(entry.getKey()).append("=").append(entry.getValue());
- }
- wikiBuilder.append("}");
- }
-
- //System.err.println("Unhandled part of speech template: " + positionalArgs + namedArgs);
- return;
- } // Part of speech
-
-
- // Translations
- if (name.equals("trans-top")) {
- assertTrue(positionalArgs.size() >= 1 && namedArgs.isEmpty(), positionalArgs.toString() + namedArgs + title);
-
- if (currentPartOfSpeech == null) {
- assertTrue(currentWord != null && !currentWord.partsOfSpeech.isEmpty(), title);
- System.err.println("Assuming last part of speech for non-nested translation section: " + title);
- currentPartOfSpeech = ListUtil.getLast(currentWord.partsOfSpeech);
- }
-
- currentTranslationSense = new WikiWord.TranslationSense();
- currentPartOfSpeech.translationSenses.add(currentTranslationSense);
- if (positionalArgs.size() > 1) {
- currentTranslationSense.sense = positionalArgs.get(1);
- }
- return;
- } // Translations
-
- if (wikiBuilder == null) {
- return;
- }
- if (name.equals("m") || name.equals("f") || name.equals("n") || name.equals("c")) {
- assertTrue(positionalArgs.size() >= 1 && namedArgs.isEmpty(), positionalArgs.toString() + namedArgs.toString());
- wikiBuilder.append("{");
- for (int i = 1; i < positionalArgs.size(); ++i) {
- wikiBuilder.append(i > 1 ? "," : "");
- wikiBuilder.append(positionalArgs.get(i));
- }
- wikiBuilder.append(name).append("}");
-
- } else if (name.equals("p")) {
- assertTrue(positionalArgs.size() == 1 && namedArgs.isEmpty());
- wikiBuilder.append("pl.");
-
- } else if (name.equals("s")) {
- assertTrue(positionalArgs.size() == 1 && namedArgs.isEmpty() || title.equals("dobra"), title);
- wikiBuilder.append("sg.");
-
- } else if (grammarTemplates.contains(name)) {
- assert positionalArgs.size() == 1 && namedArgs.isEmpty() : positionalArgs.toString() + namedArgs;
- wikiBuilder.append(name).append(".");
-
- } else if (name.equals("l")) {
- // This template is designed to generate a link to a specific language-section on the target page.
- wikiBuilder.append(positionalArgs.size() >= 4 ? positionalArgs.get(3) : positionalArgs.get(2));
-
- } else if (name.equals("t") || name.equals("t+") || name.equals("t-") || name.equals("tø")) {
- if (positionalArgs.size() > 2) {
- wikiBuilder.append(positionalArgs.get(2));
- }
- for (int i = 3; i < positionalArgs.size(); ++i) {
- wikiBuilder.append(i == 3 ? " {" : ",");
- wikiBuilder.append(positionalArgs.get(i));
- wikiBuilder.append(i == positionalArgs.size() - 1 ? "}" : "");
- }
- final String transliteration = namedArgs.remove("tr");
- if (transliteration != null) {
- wikiBuilder.append(" (").append(transliteration).append(")");
- }
-
- } else if (name.equals("trreq")) {
- wikiBuilder.append("{{trreq}}");
-
- } else if (name.equals("qualifier")) {
- //assert positionalArgs.size() == 2 && namedArgs.isEmpty() : positionalArgs.toString() + namedArgs.toString();
- wikiBuilder.append(" (").append(positionalArgs.get(1)).append(")");
-
- } else if (useRemainingArgTemplates.contains(name)) {
- for (int i = 1; i < positionalArgs.size(); ++i) {
- if (i != 1) {
- wikiBuilder.append(", ");