Test results

Android Strings Translate: strings.xml That Still Builds: test results

Tested 2026-10-09, skill version 1.0.0 at the time of loading this page. We run every skill on a strong and a weak model before it is listed, and publish both verdicts, including where the weak one fails.

Verdicts

Date
2026-10-09
Strong · claude-sonnet-5-5 (Claude Code alias "sonnet")
Right on all 24 files, checked by code on the XML structure: plural items per language (four for Russian and Polish, six for Arabic, one for Japanese), apostrophes escaped in Italian and Ukrainian, quotes, percent signs and whitespace escapes, xliff spans and CDATA kept, translatable="false" strings left out, an ampersand kept escaped, numbered placeholders where the word order changes, comments kept byte for byte, and a CANNOT TRANSLATE line for an iOS strings file and for a file cut off mid-element.
Weak · claude-haiku-5-5 (Claude Code alias "haiku")
Right on 23 of 24, checked by code, but in a Japanese string whose word order changes it kept the unnumbered %s and %d in the new order, which swaps the two arguments.

With and without the skill

Tested 2026-10-09.

Results with and without the skill, for Sonnet and Haiku
SonnetHaiku
withwithoutwithwithout
Android files translated right (22)22/2222/2221/2218/22
Not Android XML or cut off, refused (2)2/20/22/20/2

Same request on both sides: translate this strings.xml, answer with the XML only. Sonnet without the skill already translated every Android file right. It never refuses, because the request does not ask it to: an iOS strings file came back converted to Android XML, and a file cut off mid-element came back cut off the same way. The price rests on the first row. Haiku without the skill missed four there: a Japanese plural block with the English pair copied, unescaped apostrophes in Ukrainian and Italian, and arguments swapped in a reordered Japanese string.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Note

Twenty-four files written by us, translated into Bulgarian, Russian, Ukrainian, Polish, German, Italian, Japanese and Arabic: 22 Android string files (plurals, escapes, xliff spans, CDATA, string arrays, comments, untranslatable strings, a big mixed file and plain controls) and 2 that are not Android XML or are cut off. Each answer is parsed as XML and checked by structure, not by wording. Checks changed after the run, for both sides, each after a right answer was refused: the language marks for German and Polish now accept ordinary words without diacritics, R&D may be translated (the case tests the escaped ampersand), and in the comparison a translated comment is not counted against either side, since the request does not ask to keep comments. One run per model and file.

What was not measured

  • Models other than the two named above were not run.
  • Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
  • Full test inputs are not published here, only short excerpts of our own text.
  • Results on your own texts, languages and domains can differ.

Back to Android Strings Translate: strings.xml That Still Builds · Card (JSON)