Git commit c9e570d745b1ba1f541aa21e481bd195009cd704 by Urs Fleisch. Committed on 14/04/2020 at 06:42. Pushed by ufleisch into branch 'master'.
Script to transliterate ID3v1 tags to ASCII BUG: 419668 M +5 -0 doc/en/index.docbook M +4 -0 src/core/config/useractionsconfig.cpp M +1 -0 src/qml/CMakeLists.txt A +613 -0 src/qml/script/Tag1ToAscii.qml [License: LGPL] https://invent.kde.org/kde/kid3/commit/c9e570d745b1ba1f541aa21e481bd195009cd704 diff --git a/doc/en/index.docbook b/doc/en/index.docbook index 87da30e7..09782e34 100644 --- a/doc/en/index.docbook +++ b/doc/en/index.docbook @@ -4455,6 +4455,11 @@ Helps to find the encoding of ID3v1 tags by showing the tags of the current file in all available character encodings. </para></listitem> <listitem><para> +<guilabel>ID3v1 to ASCII</guilabel> +(<filename>Tag1ToAscii.qml</filename>): +Transliterate extended latin characters in the ID3v1 tag to ASCII. +</para></listitem> +<listitem><para> <guilabel>English Title Case</guilabel> (<filename>TitleCase.qml</filename>): Formats text in the tags to English title case. diff --git a/src/core/config/useractionsconfig.cpp b/src/core/config/useractionsconfig.cpp index 646d793e..cfd42721 100644 --- a/src/core/config/useractionsconfig.cpp +++ b/src/core/config/useractionsconfig.cpp @@ -246,6 +246,10 @@ void UserActionsConfig::setDefaultUserActions(bool upgradeOnly) false, true)); } if (!upgradeOnly || ConfigStore::getConfigVersion() < 5) { + m_contextMenuCommands.push_back( + UserActionsConfig::MenuCommand( + QLatin1String("ID3v1 to ASCII"), + QLatin1String("@qml %{qmlpath}/script/Tag1ToAscii.qml"))); m_contextMenuCommands.push_back( UserActionsConfig::MenuCommand( QLatin1String("English Title Case"), diff --git a/src/qml/CMakeLists.txt b/src/qml/CMakeLists.txt index 04114754..2d8ca576 100644 --- a/src/qml/CMakeLists.txt +++ b/src/qml/CMakeLists.txt @@ -29,6 +29,7 @@ if(NOT HAVE_QMLDIR_IN_QRC) script/EmbedLyrics.qml script/ExportPlaylist.qml script/TitleCase.qml + script/Tag1ToAscii.qml ) if(BUILD_QML_APP) # Only used to add the QML sources to the project. diff --git a/src/qml/script/Tag1ToAscii.qml b/src/qml/script/Tag1ToAscii.qml new file mode 100644 index 00000000..ae4a2273 --- /dev/null +++ b/src/qml/script/Tag1ToAscii.qml @@ -0,0 +1,613 @@ +/** + * \file Tag1ToAscii.qml + * Transliterate contents of ID3v1 tag from Extended Latin to ASCII. + * + * \b Project: Kid3 + * \author Urs Fleisch + * \date 13 Apr 2020 + * + * Copyright (C) 2020 Urs Fleisch + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +import Kid3 1.1 + +Kid3Script { + onRun: { + /** + * ASCII replacements for set of extended latin characters. + * Extended using some Perl modules by Martin Mareš. + * $conv = Text::Iconv->new('UTF-8', 'US-ASCII//TRANSLIT'); + * $t = $conv->convert(Encode::encode('utf-8', chr $code)); + */ + var replacements = [ + ' ', // 160 NO-BREAK SPACE + '!', // 161 ¡ INVERTED EXCLAMATION MARK + 'c', // 162 ¢ CENT SIGN + 'L', // 163 £ POUND SIGN + 'o', // 164 ¤ CURRENCY SIGN + 'Y', // 165 ¥ YEN SIGN + '|', // 166 ¦ BROKEN BAR + 'S', // 167 § SECTION SIGN + '`', // 168 ¨ DIAERESIS + 'c', // 169 © COPYRIGHT SIGN + 'a', // 170 ª FEMININE ORDINAL INDICATOR + '<<', // 171 « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + '-', // 172 ¬ NOT SIGN + '-', // 173 SOFT HYPHEN + 'R', // 174 ® REGISTERED SIGN + '-', // 175 ¯ MACRON + 'o', // 176 ° DEGREE SIGN + '+-', // 177 ± PLUS-MINUS SIGN + '2', // 178 ² SUPERSCRIPT TWO + '3', // 179 ³ SUPERSCRIPT THREE + '\'', // 180 ´ ACUTE ACCENT + 'u', // 181 µ MICRO SIGN + 'P', // 182 ¶ PILCROW SIGN + '.', // 183 · MIDDLE DOT + ',', // 184 ¸ CEDILLA + '1', // 185 ¹ SUPERSCRIPT ONE + 'o', // 186 º MASCULINE ORDINAL INDICATOR + '>>', // 187 » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + '1/4', // 188 ¼ VULGAR FRACTION ONE QUARTER + '1/2', // 189 ½ VULGAR FRACTION ONE HALF + '3/4', // 190 ¾ VULGAR FRACTION THREE QUARTERS + '?', // 191 ¿ INVERTED QUESTION MARK + 'A', // 192 À LATIN CAPITAL LETTER A WITH GRAVE + 'A', // 193 Á LATIN CAPITAL LETTER A WITH ACUTE + 'A', // 194  LATIN CAPITAL LETTER A WITH CIRCUMFLEX + 'A', // 195 à LATIN CAPITAL LETTER A WITH TILDE + 'Ae', // 196 Ä LATIN CAPITAL LETTER A WITH DIAERESIS + 'A', // 197 Å LATIN CAPITAL LETTER A WITH RING ABOVE + 'AE', // 198 Æ LATIN CAPITAL LETTER AE + 'C', // 199 Ç LATIN CAPITAL LETTER C WITH CEDILLA + 'E', // 200 È LATIN CAPITAL LETTER E WITH GRAVE + 'E', // 201 É LATIN CAPITAL LETTER E WITH ACUTE + 'E', // 202 Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX + 'E', // 203 Ë LATIN CAPITAL LETTER E WITH DIAERESIS + 'I', // 204 Ì LATIN CAPITAL LETTER I WITH GRAVE + 'I', // 205 Í LATIN CAPITAL LETTER I WITH ACUTE + 'I', // 206 Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX + 'I', // 207 Ï LATIN CAPITAL LETTER I WITH DIAERESIS + 'D', // 208 Ð LATIN CAPITAL LETTER ETH + 'N', // 209 Ñ LATIN CAPITAL LETTER N WITH TILDE + 'O', // 210 Ò LATIN CAPITAL LETTER O WITH GRAVE + 'O', // 211 Ó LATIN CAPITAL LETTER O WITH ACUTE + 'O', // 212 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX + 'O', // 213 Õ LATIN CAPITAL LETTER O WITH TILDE + 'Oe', // 214 Ö LATIN CAPITAL LETTER O WITH DIAERESIS + 'x', // 215 × MULTIPLICATION SIGN + 'O', // 216 Ø LATIN CAPITAL LETTER O WITH STROKE + 'U', // 217 Ù LATIN CAPITAL LETTER U WITH GRAVE + 'U', // 218 Ú LATIN CAPITAL LETTER U WITH ACUTE + 'U', // 219 Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX + 'Ue', // 220 Ü LATIN CAPITAL LETTER U WITH DIAERESIS + 'Y', // 221 Ý LATIN CAPITAL LETTER Y WITH ACUTE + 'p', // 222 Þ LATIN CAPITAL LETTER THORN + 'ss', // 223 ß LATIN SMALL LETTER SHARP S + 'a', // 224 à LATIN SMALL LETTER A WITH GRAVE + 'a', // 225 á LATIN SMALL LETTER A WITH ACUTE + 'a', // 226 â LATIN SMALL LETTER A WITH CIRCUMFLEX + 'a', // 227 ã LATIN SMALL LETTER A WITH TILDE + 'ae', // 228 ä LATIN SMALL LETTER A WITH DIAERESIS + 'a', // 229 å LATIN SMALL LETTER A WITH RING ABOVE + 'ae', // 230 æ LATIN SMALL LETTER AE + 'c', // 231 ç LATIN SMALL LETTER C WITH CEDILLA + 'e', // 232 è LATIN SMALL LETTER E WITH GRAVE + 'e', // 233 é LATIN SMALL LETTER E WITH ACUTE + 'e', // 234 ê LATIN SMALL LETTER E WITH CIRCUMFLEX + 'e', // 235 ë LATIN SMALL LETTER E WITH DIAERESIS + 'i', // 236 ì LATIN SMALL LETTER I WITH GRAVE + 'i', // 237 í LATIN SMALL LETTER I WITH ACUTE + 'i', // 238 î LATIN SMALL LETTER I WITH CIRCUMFLEX + 'i', // 239 ï LATIN SMALL LETTER I WITH DIAERESIS + 'o', // 240 ð LATIN SMALL LETTER ETH + 'n', // 241 ñ LATIN SMALL LETTER N WITH TILDE + 'o', // 242 ò LATIN SMALL LETTER O WITH GRAVE + 'o', // 243 ó LATIN SMALL LETTER O WITH ACUTE + 'o', // 244 ô LATIN SMALL LETTER O WITH CIRCUMFLEX + 'o', // 245 õ LATIN SMALL LETTER O WITH TILDE + 'oe', // 246 ö LATIN SMALL LETTER O WITH DIAERESIS + '/', // 247 ÷ DIVISION SIGN + 'o', // 248 ø LATIN SMALL LETTER O WITH STROKE + 'u', // 249 ù LATIN SMALL LETTER U WITH GRAVE + 'u', // 250 ú LATIN SMALL LETTER U WITH ACUTE + 'u', // 251 û LATIN SMALL LETTER U WITH CIRCUMFLEX + 'ue', // 252 ü LATIN SMALL LETTER U WITH DIAERESIS + 'y', // 253 ý LATIN SMALL LETTER Y WITH ACUTE + 'p', // 254 þ LATIN SMALL LETTER THORN + 'y', // 255 ÿ LATIN SMALL LETTER Y WITH DIAERESIS + 'A', // 256 Ā LATIN CAPITAL LETTER A WITH MACRON + 'a', // 257 ā LATIN SMALL LETTER A WITH MACRON + 'A', // 258 Ă LATIN CAPITAL LETTER A WITH BREVE + 'a', // 259 ă LATIN SMALL LETTER A WITH BREVE + 'A', // 260 Ą LATIN CAPITAL LETTER A WITH OGONEK + 'a', // 261 ą LATIN SMALL LETTER A WITH OGONEK + 'C', // 262 Ć LATIN CAPITAL LETTER C WITH ACUTE + 'c', // 263 ć LATIN SMALL LETTER C WITH ACUTE + 'C', // 264 Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX + 'c', // 265 ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX + 'C', // 266 Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE + 'c', // 267 ċ LATIN SMALL LETTER C WITH DOT ABOVE + 'C', // 268 Č LATIN CAPITAL LETTER C WITH CARON + 'c', // 269 č LATIN SMALL LETTER C WITH CARON + 'D', // 270 Ď LATIN CAPITAL LETTER D WITH CARON + 'd', // 271 ď LATIN SMALL LETTER D WITH CARON + 'D', // 272 Đ LATIN CAPITAL LETTER D WITH STROKE + 'd', // 273 đ LATIN SMALL LETTER D WITH STROKE + 'E', // 274 Ē LATIN CAPITAL LETTER E WITH MACRON + 'e', // 275 ē LATIN SMALL LETTER E WITH MACRON + 'E', // 276 Ĕ LATIN CAPITAL LETTER E WITH BREVE + 'e', // 277 ĕ LATIN SMALL LETTER E WITH BREVE + 'E', // 278 Ė LATIN CAPITAL LETTER E WITH DOT ABOVE + 'e', // 279 ė LATIN SMALL LETTER E WITH DOT ABOVE + 'E', // 280 Ę LATIN CAPITAL LETTER E WITH OGONEK + 'e', // 281 ę LATIN SMALL LETTER E WITH OGONEK + 'E', // 282 Ě LATIN CAPITAL LETTER E WITH CARON + 'e', // 283 ě LATIN SMALL LETTER E WITH CARON + 'G', // 284 Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX + 'g', // 285 ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX + 'G', // 286 Ğ LATIN CAPITAL LETTER G WITH BREVE + 'g', // 287 ğ LATIN SMALL LETTER G WITH BREVE + 'G', // 288 Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE + 'g', // 289 ġ LATIN SMALL LETTER G WITH DOT ABOVE + 'G', // 290 Ģ LATIN CAPITAL LETTER G WITH CEDILLA + 'g', // 291 ģ LATIN SMALL LETTER G WITH CEDILLA + 'H', // 292 Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX + 'h', // 293 ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX + 'H', // 294 Ħ LATIN CAPITAL LETTER H WITH STROKE + 'h', // 295 ħ LATIN SMALL LETTER H WITH STROKE + 'I', // 296 Ĩ LATIN CAPITAL LETTER I WITH TILDE + 'i', // 297 ĩ LATIN SMALL LETTER I WITH TILDE + 'I', // 298 Ī LATIN CAPITAL LETTER I WITH MACRON + 'i', // 299 ī LATIN SMALL LETTER I WITH MACRON + 'I', // 300 Ĭ LATIN CAPITAL LETTER I WITH BREVE + 'i', // 301 ĭ LATIN SMALL LETTER I WITH BREVE + 'I', // 302 Į LATIN CAPITAL LETTER I WITH OGONEK + 'i', // 303 į LATIN SMALL LETTER I WITH OGONEK + 'I', // 304 İ LATIN CAPITAL LETTER I WITH DOT ABOVE + 'i', // 305 ı LATIN SMALL LETTER DOTLESS I + 'IJ', // 306 IJ LATIN CAPITAL LIGATURE IJ + 'ij', // 307 ij LATIN SMALL LIGATURE IJ + 'J', // 308 Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX + 'j', // 309 ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX + 'K', // 310 Ķ LATIN CAPITAL LETTER K WITH CEDILLA + 'k', // 311 ķ LATIN SMALL LETTER K WITH CEDILLA + 'q', // 312 ĸ LATIN SMALL LETTER KRA + 'L', // 313 Ĺ LATIN CAPITAL LETTER L WITH ACUTE + 'l', // 314 ĺ LATIN SMALL LETTER L WITH ACUTE + 'L', // 315 Ļ LATIN CAPITAL LETTER L WITH CEDILLA + 'l', // 316 ļ LATIN SMALL LETTER L WITH CEDILLA + 'L', // 317 Ľ LATIN CAPITAL LETTER L WITH CARON + 'l', // 318 ľ LATIN SMALL LETTER L WITH CARON + 'L', // 319 Ŀ LATIN CAPITAL LETTER L WITH MIDDLE DOT + 'l', // 320 ŀ LATIN SMALL LETTER L WITH MIDDLE DOT + 'L', // 321 Ł LATIN CAPITAL LETTER L WITH STROKE + 'l', // 322 ł LATIN SMALL LETTER L WITH STROKE + 'N', // 323 Ń LATIN CAPITAL LETTER N WITH ACUTE + 'n', // 324 ń LATIN SMALL LETTER N WITH ACUTE + 'N', // 325 Ņ LATIN CAPITAL LETTER N WITH CEDILLA + 'n', // 326 ņ LATIN SMALL LETTER N WITH CEDILLA + 'N', // 327 Ň LATIN CAPITAL LETTER N WITH CARON + 'n', // 328 ň LATIN SMALL LETTER N WITH CARON + '\'n', // 329 ʼn LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + 'N', // 330 Ŋ LATIN CAPITAL LETTER ENG + 'n', // 331 ŋ LATIN SMALL LETTER ENG + 'O', // 332 Ō LATIN CAPITAL LETTER O WITH MACRON + 'o', // 333 ō LATIN SMALL LETTER O WITH MACRON + 'O', // 334 Ŏ LATIN CAPITAL LETTER O WITH BREVE + 'o', // 335 ŏ LATIN SMALL LETTER O WITH BREVE + 'O', // 336 Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + 'o', // 337 ő LATIN SMALL LETTER O WITH DOUBLE ACUTE + 'OE', // 338 Œ LATIN CAPITAL LIGATURE OE + 'oe', // 339 œ LATIN SMALL LIGATURE OE + 'R', // 340 Ŕ LATIN CAPITAL LETTER R WITH ACUTE + 'r', // 341 ŕ LATIN SMALL LETTER R WITH ACUTE + 'R', // 342 Ŗ LATIN CAPITAL LETTER R WITH CEDILLA + 'r', // 343 ŗ LATIN SMALL LETTER R WITH CEDILLA + 'R', // 344 Ř LATIN CAPITAL LETTER R WITH CARON + 'r', // 345 ř LATIN SMALL LETTER R WITH CARON + 'S', // 346 Ś LATIN CAPITAL LETTER S WITH ACUTE + 's', // 347 ś LATIN SMALL LETTER S WITH ACUTE + 'S', // 348 Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX + 's', // 349 ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX + 'S', // 350 Ş LATIN CAPITAL LETTER S WITH CEDILLA + 's', // 351 ş LATIN SMALL LETTER S WITH CEDILLA + 'S', // 352 Š LATIN CAPITAL LETTER S WITH CARON + 's', // 353 š LATIN SMALL LETTER S WITH CARON + 'T', // 354 Ţ LATIN CAPITAL LETTER T WITH CEDILLA + 't', // 355 ţ LATIN SMALL LETTER T WITH CEDILLA + 'T', // 356 Ť LATIN CAPITAL LETTER T WITH CARON + 't', // 357 ť LATIN SMALL LETTER T WITH CARON + 'T', // 358 Ŧ LATIN CAPITAL LETTER T WITH STROKE + 't', // 359 ŧ LATIN SMALL LETTER T WITH STROKE + 'U', // 360 Ũ LATIN CAPITAL LETTER U WITH TILDE + 'u', // 361 ũ LATIN SMALL LETTER U WITH TILDE + 'U', // 362 Ū LATIN CAPITAL LETTER U WITH MACRON + 'u', // 363 ū LATIN SMALL LETTER U WITH MACRON + 'U', // 364 Ŭ LATIN CAPITAL LETTER U WITH BREVE + 'u', // 365 ŭ LATIN SMALL LETTER U WITH BREVE + 'U', // 366 Ů LATIN CAPITAL LETTER U WITH RING ABOVE + 'u', // 367 ů LATIN SMALL LETTER U WITH RING ABOVE + 'U', // 368 Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + 'u', // 369 ű LATIN SMALL LETTER U WITH DOUBLE ACUTE + 'U', // 370 Ų LATIN CAPITAL LETTER U WITH OGONEK + 'u', // 371 ų LATIN SMALL LETTER U WITH OGONEK + 'W', // 372 Ŵ LATIN CAPITAL LETTER W WITH CIRCUMFLEX + 'w', // 373 ŵ LATIN SMALL LETTER W WITH CIRCUMFLEX + 'Y', // 374 Ŷ LATIN CAPITAL LETTER Y WITH CIRCUMFLEX + 'y', // 375 ŷ LATIN SMALL LETTER Y WITH CIRCUMFLEX + 'Y', // 376 Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS + 'Z', // 377 Ź LATIN CAPITAL LETTER Z WITH ACUTE + 'z', // 378 ź LATIN SMALL LETTER Z WITH ACUTE + 'Z', // 379 Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE + 'z', // 380 ż LATIN SMALL LETTER Z WITH DOT ABOVE + 'Z', // 381 Ž LATIN CAPITAL LETTER Z WITH CARON + 'z', // 382 ž LATIN SMALL LETTER Z WITH CARON + 's', // 383 ſ LATIN SMALL LETTER LONG S + 'b', // 384 ƀ LATIN SMALL LETTER B WITH STROKE + 'B', // 385 Ɓ LATIN CAPITAL LETTER B WITH HOOK + 'B', // 386 Ƃ LATIN CAPITAL LETTER B WITH TOPBAR + 'b', // 387 ƃ LATIN SMALL LETTER B WITH TOPBAR + '6', // 388 Ƅ LATIN CAPITAL LETTER TONE SIX + '6', // 389 ƅ LATIN SMALL LETTER TONE SIX + 'O', // 390 Ɔ LATIN CAPITAL LETTER OPEN O + 'C', // 391 Ƈ LATIN CAPITAL LETTER C WITH HOOK + 'c', // 392 ƈ LATIN SMALL LETTER C WITH HOOK + 'D', // 393 Ɖ LATIN CAPITAL LETTER AFRICAN D + 'D', // 394 Ɗ LATIN CAPITAL LETTER D WITH HOOK + 'D', // 395 Ƌ LATIN CAPITAL LETTER D WITH TOPBAR + 'd', // 396 ƌ LATIN SMALL LETTER D WITH TOPBAR + 'd', // 397 ƍ LATIN SMALL LETTER TURNED DELTA + 'E', // 398 Ǝ LATIN CAPITAL LETTER REVERSED E + 'd', // 399 Ə LATIN CAPITAL LETTER SCHWA + 'E', // 400 Ɛ LATIN CAPITAL LETTER OPEN E + 'F', // 401 Ƒ LATIN CAPITAL LETTER F WITH HOOK + 'f', // 402 ƒ LATIN SMALL LETTER F WITH HOOK + 'G', // 403 Ɠ LATIN CAPITAL LETTER G WITH HOOK + 'Y', // 404 Ɣ LATIN CAPITAL LETTER GAMMA + 'hv', // 405 ƕ LATIN SMALL LETTER HV + 'I', // 406 Ɩ LATIN CAPITAL LETTER IOTA + 'I', // 407 Ɨ LATIN CAPITAL LETTER I WITH STROKE + 'K', // 408 Ƙ LATIN CAPITAL LETTER K WITH HOOK + 'k', // 409 ƙ LATIN SMALL LETTER K WITH HOOK + 'l', // 410 ƚ LATIN SMALL LETTER L WITH BAR + 'L', // 411 ƛ LATIN SMALL LETTER LAMBDA WITH STROKE + 'W', // 412 Ɯ LATIN CAPITAL LETTER TURNED M + 'N', // 413 Ɲ LATIN CAPITAL LETTER N WITH LEFT HOOK + 'n', // 414 ƞ LATIN SMALL LETTER N WITH LONG RIGHT LEG + 'O', // 415 Ɵ LATIN CAPITAL LETTER O WITH MIDDLE TILDE + 'O', // 416 Ơ LATIN CAPITAL LETTER O WITH HORN + 'o', // 417 ơ LATIN SMALL LETTER O WITH HORN + 'OI', // 418 Ƣ LATIN CAPITAL LETTER OI + 'oi', // 419 ƣ LATIN SMALL LETTER OI + 'P', // 420 Ƥ LATIN CAPITAL LETTER P WITH HOOK + 'p', // 421 ƥ LATIN SMALL LETTER P WITH HOOK + 'R', // 422 Ʀ LATIN LETTER YR + '2', // 423 Ƨ LATIN CAPITAL LETTER TONE TWO + '2', // 424 ƨ LATIN SMALL LETTER TONE TWO + 'E', // 425 Ʃ LATIN CAPITAL LETTER ESH + 'E', // 426 ƪ LATIN LETTER REVERSED ESH LOOP + 't', // 427 ƫ LATIN SMALL LETTER T WITH PALATAL HOOK + 'T', // 428 Ƭ LATIN CAPITAL LETTER T WITH HOOK + 't', // 429 ƭ LATIN SMALL LETTER T WITH HOOK + 'T', // 430 Ʈ LATIN CAPITAL LETTER T WITH RETROFLEX HOOK + 'U', // 431 Ư LATIN CAPITAL LETTER U WITH HORN + 'u', // 432 ư LATIN SMALL LETTER U WITH HORN + 'U', // 433 Ʊ LATIN CAPITAL LETTER UPSILON + 'V', // 434 Ʋ LATIN CAPITAL LETTER V WITH HOOK + 'Y', // 435 Ƴ LATIN CAPITAL LETTER Y WITH HOOK + 'y', // 436 ƴ LATIN SMALL LETTER Y WITH HOOK + 'Z', // 437 Ƶ LATIN CAPITAL LETTER Z WITH STROKE + 'z', // 438 ƶ LATIN SMALL LETTER Z WITH STROKE + '3', // 439 Ʒ LATIN CAPITAL LETTER EZH + '3', // 440 Ƹ LATIN CAPITAL LETTER EZH REVERSED + '3', // 441 ƹ LATIN SMALL LETTER EZH REVERSED + '3', // 442 ƺ LATIN SMALL LETTER EZH WITH TAIL + '2', // 443 ƻ LATIN LETTER TWO WITH STROKE + '5', // 444 Ƽ LATIN CAPITAL LETTER TONE FIVE + '5', // 445 ƽ LATIN SMALL LETTER TONE FIVE + 's', // 446 ƾ LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE + 'p', // 447 ƿ LATIN LETTER WYNN + '|', // 448 ǀ LATIN LETTER DENTAL CLICK + '||', // 449 ǁ LATIN LETTER LATERAL CLICK + '#', // 450 ǂ LATIN LETTER ALVEOLAR CLICK + '!', // 451 ǃ LATIN LETTER RETROFLEX CLICK + 'DZ', // 452 DŽ LATIN CAPITAL LETTER DZ WITH CARON + 'Dz', // 453 Dž LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON + 'dz', // 454 dž LATIN SMALL LETTER DZ WITH CARON + 'LJ', // 455 LJ LATIN CAPITAL LETTER LJ + 'Lj', // 456 Lj LATIN CAPITAL LETTER L WITH SMALL LETTER J + 'lj', // 457 lj LATIN SMALL LETTER LJ + 'NJ', // 458 NJ LATIN CAPITAL LETTER NJ + 'Nj', // 459 Nj LATIN CAPITAL LETTER N WITH SMALL LETTER J + 'nj', // 460 nj LATIN SMALL LETTER NJ + 'A', // 461 Ǎ LATIN CAPITAL LETTER A WITH CARON + 'a', // 462 ǎ LATIN SMALL LETTER A WITH CARON + 'I', // 463 Ǐ LATIN CAPITAL LETTER I WITH CARON + 'i', // 464 ǐ LATIN SMALL LETTER I WITH CARON + 'O', // 465 Ǒ LATIN CAPITAL LETTER O WITH CARON + 'o', // 466 ǒ LATIN SMALL LETTER O WITH CARON + 'U', // 467 Ǔ LATIN CAPITAL LETTER U WITH CARON + 'u', // 468 ǔ LATIN SMALL LETTER U WITH CARON + 'U', // 469 Ǖ LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON + 'u', // 470 ǖ LATIN SMALL LETTER U WITH DIAERESIS AND MACRON + 'U', // 471 Ǘ LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE + 'u', // 472 ǘ LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE + 'U', // 473 Ǚ LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON + 'u', // 474 ǚ LATIN SMALL LETTER U WITH DIAERESIS AND CARON + 'U', // 475 Ǜ LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE + 'u', // 476 ǜ LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE + 'e', // 477 ǝ LATIN SMALL LETTER TURNED E + 'A', // 478 Ǟ LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON + 'a', // 479 ǟ LATIN SMALL LETTER A WITH DIAERESIS AND MACRON + 'A', // 480 Ǡ LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON + 'a', // 481 ǡ LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON + 'AE', // 482 Ǣ LATIN CAPITAL LETTER AE WITH MACRON + 'ae', // 483 ǣ LATIN SMALL LETTER AE WITH MACRON + 'G', // 484 Ǥ LATIN CAPITAL LETTER G WITH STROKE + 'g', // 485 ǥ LATIN SMALL LETTER G WITH STROKE + 'G', // 486 Ǧ LATIN CAPITAL LETTER G WITH CARON + 'g', // 487 ǧ LATIN SMALL LETTER G WITH CARON + 'K', // 488 Ǩ LATIN CAPITAL LETTER K WITH CARON + 'k', // 489 ǩ LATIN SMALL LETTER K WITH CARON + 'O', // 490 Ǫ LATIN CAPITAL LETTER O WITH OGONEK + 'o', // 491 ǫ LATIN SMALL LETTER O WITH OGONEK + 'O', // 492 Ǭ LATIN CAPITAL LETTER O WITH OGONEK AND MACRON + 'o', // 493 ǭ LATIN SMALL LETTER O WITH OGONEK AND MACRON + '3', // 494 Ǯ LATIN CAPITAL LETTER EZH WITH CARON + '3', // 495 ǯ LATIN SMALL LETTER EZH WITH CARON + 'j', // 496 ǰ LATIN SMALL LETTER J WITH CARON + 'DZ', // 497 DZ LATIN CAPITAL LETTER DZ + 'Dz', // 498 Dz LATIN CAPITAL LETTER D WITH SMALL LETTER Z + 'dz', // 499 dz LATIN SMALL LETTER DZ + 'G', // 500 Ǵ LATIN CAPITAL LETTER G WITH ACUTE + 'g', // 501 ǵ LATIN SMALL LETTER G WITH ACUTE + 'H', // 502 Ƕ LATIN CAPITAL LETTER HWAIR + 'P', // 503 Ƿ LATIN CAPITAL LETTER WYNN + 'N', // 504 Ǹ LATIN CAPITAL LETTER N WITH GRAVE + 'n', // 505 ǹ LATIN SMALL LETTER N WITH GRAVE + 'A', // 506 Ǻ LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE + 'a', // 507 ǻ LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE + 'AE', // 508 Ǽ LATIN CAPITAL LETTER AE WITH ACUTE + 'ae', // 509 ǽ LATIN SMALL LETTER AE WITH ACUTE + 'O', // 510 Ǿ LATIN CAPITAL LETTER O WITH STROKE AND ACUTE + 'o', // 511 ǿ LATIN SMALL LETTER O WITH STROKE AND ACUTE + 'A', // 512 Ȁ LATIN CAPITAL LETTER A WITH DOUBLE GRAVE + 'a', // 513 ȁ LATIN SMALL LETTER A WITH DOUBLE GRAVE + 'A', // 514 Ȃ LATIN CAPITAL LETTER A WITH INVERTED BREVE + 'a', // 515 ȃ LATIN SMALL LETTER A WITH INVERTED BREVE + 'E', // 516 Ȅ LATIN CAPITAL LETTER E WITH DOUBLE GRAVE + 'e', // 517 ȅ LATIN SMALL LETTER E WITH DOUBLE GRAVE + 'E', // 518 Ȇ LATIN CAPITAL LETTER E WITH INVERTED BREVE + 'e', // 519 ȇ LATIN SMALL LETTER E WITH INVERTED BREVE + 'I', // 520 Ȉ LATIN CAPITAL LETTER I WITH DOUBLE GRAVE + 'i', // 521 ȉ LATIN SMALL LETTER I WITH DOUBLE GRAVE + 'I', // 522 Ȋ LATIN CAPITAL LETTER I WITH INVERTED BREVE + 'i', // 523 ȋ LATIN SMALL LETTER I WITH INVERTED BREVE + 'O', // 524 Ȍ LATIN CAPITAL LETTER O WITH DOUBLE GRAVE + 'o', // 525 ȍ LATIN SMALL LETTER O WITH DOUBLE GRAVE + 'O', // 526 Ȏ LATIN CAPITAL LETTER O WITH INVERTED BREVE + 'o', // 527 ȏ LATIN SMALL LETTER O WITH INVERTED BREVE + 'R', // 528 Ȑ LATIN CAPITAL LETTER R WITH DOUBLE GRAVE + 'r', // 529 ȑ LATIN SMALL LETTER R WITH DOUBLE GRAVE + 'R', // 530 Ȓ LATIN CAPITAL LETTER R WITH INVERTED BREVE + 'r', // 531 ȓ LATIN SMALL LETTER R WITH INVERTED BREVE + 'U', // 532 Ȕ LATIN CAPITAL LETTER U WITH DOUBLE GRAVE + 'u', // 533 ȕ LATIN SMALL LETTER U WITH DOUBLE GRAVE + 'U', // 534 Ȗ LATIN CAPITAL LETTER U WITH INVERTED BREVE + 'u', // 535 ȗ LATIN SMALL LETTER U WITH INVERTED BREVE + 'S', // 536 Ș LATIN CAPITAL LETTER S WITH COMMA BELOW + 's', // 537 ș LATIN SMALL LETTER S WITH COMMA BELOW + 'T', // 538 Ț LATIN CAPITAL LETTER T WITH COMMA BELOW + 't', // 539 ț LATIN SMALL LETTER T WITH COMMA BELOW + '3', // 540 Ȝ LATIN CAPITAL LETTER YOGH + '3', // 541 ȝ LATIN SMALL LETTER YOGH + 'H', // 542 Ȟ LATIN CAPITAL LETTER H WITH CARON + 'h', // 543 ȟ LATIN SMALL LETTER H WITH CARON + 'n', // 544 Ƞ LATIN CAPITAL LETTER N WITH LONG RIGHT LEG + 'd', // 545 ȡ LATIN SMALL LETTER D WITH CURL + 'O', // 546 Ȣ LATIN CAPITAL LETTER OU + 'o', // 547 ȣ LATIN SMALL LETTER OU + 'Z', // 548 Ȥ LATIN CAPITAL LETTER Z WITH HOOK + 'z', // 549 ȥ LATIN SMALL LETTER Z WITH HOOK + 'A', // 550 Ȧ LATIN CAPITAL LETTER A WITH DOT ABOVE + 'a', // 551 ȧ LATIN SMALL LETTER A WITH DOT ABOVE + 'E', // 552 Ȩ LATIN CAPITAL LETTER E WITH CEDILLA + 'e', // 553 ȩ LATIN SMALL LETTER E WITH CEDILLA + 'O', // 554 Ȫ LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON + 'o', // 555 ȫ LATIN SMALL LETTER O WITH DIAERESIS AND MACRON + 'O', // 556 Ȭ LATIN CAPITAL LETTER O WITH TILDE AND MACRON + 'o', // 557 ȭ LATIN SMALL LETTER O WITH TILDE AND MACRON + 'O', // 558 Ȯ LATIN CAPITAL LETTER O WITH DOT ABOVE + 'o', // 559 ȯ LATIN SMALL LETTER O WITH DOT ABOVE + 'O', // 560 Ȱ LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON + 'o', // 561 ȱ LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON + 'Y', // 562 Ȳ LATIN CAPITAL LETTER Y WITH MACRON + 'y', // 563 ȳ LATIN SMALL LETTER Y WITH MACRON + 'l', // 564 ȴ LATIN SMALL LETTER L WITH CURL + 'n', // 565 ȵ LATIN SMALL LETTER N WITH CURL + 't', // 566 ȶ LATIN SMALL LETTER T WITH CURL + 'j', // 567 ȷ LATIN SMALL LETTER DOTLESS J + 'db', // 568 ȸ LATIN SMALL LETTER DB DIGRAPH + 'qp', // 569 ȹ LATIN SMALL LETTER QP DIGRAPH + 'A', // 570 Ⱥ LATIN CAPITAL LETTER A WITH STROKE + 'C', // 571 Ȼ LATIN CAPITAL LETTER C WITH STROKE + 'c', // 572 ȼ LATIN SMALL LETTER C WITH STROKE + 'L', // 573 Ƚ LATIN CAPITAL LETTER L WITH BAR + 'T', // 574 Ⱦ LATIN CAPITAL LETTER T WITH DIAGONAL STROKE + 's', // 575 ȿ LATIN SMALL LETTER S WITH SWASH TAIL + 'z', // 576 ɀ LATIN SMALL LETTER Z WITH SWASH TAIL + '?', // 577 Ɂ LATIN CAPITAL LETTER GLOTTAL STOP + '?', // 578 ɂ LATIN SMALL LETTER GLOTTAL STOP + 'B', // 579 Ƀ LATIN CAPITAL LETTER B WITH STROKE + 'U', // 580 Ʉ LATIN CAPITAL LETTER U BAR + 'V', // 581 Ʌ LATIN CAPITAL LETTER TURNED V + 'E', // 582 Ɇ LATIN CAPITAL LETTER E WITH STROKE + 'e', // 583 ɇ LATIN SMALL LETTER E WITH STROKE + 'J', // 584 Ɉ LATIN CAPITAL LETTER J WITH STROKE + 'j', // 585 ɉ LATIN SMALL LETTER J WITH STROKE + 'Q', // 586 Ɋ LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL + 'q', // 587 ɋ LATIN SMALL LETTER Q WITH HOOK TAIL + 'R', // 588 Ɍ LATIN CAPITAL LETTER R WITH STROKE + 'r', // 589 ɍ LATIN SMALL LETTER R WITH STROKE + 'Y', // 590 Ɏ LATIN CAPITAL LETTER Y WITH STROKE + 'y', // 591 ɏ LATIN SMALL LETTER Y WITH STROKE + 'a', // 592 ɐ LATIN SMALL LETTER TURNED A + 'a', // 593 ɑ LATIN SMALL LETTER ALPHA + 'a', // 594 ɒ LATIN SMALL LETTER TURNED ALPHA + 'b', // 595 ɓ LATIN SMALL LETTER B WITH HOOK + 'o', // 596 ɔ LATIN SMALL LETTER OPEN O + 'c', // 597 ɕ LATIN SMALL LETTER C WITH CURL + 'd', // 598 ɖ LATIN SMALL LETTER D WITH TAIL + 'd', // 599 ɗ LATIN SMALL LETTER D WITH HOOK + 'e', // 600 ɘ LATIN SMALL LETTER REVERSED E + 'e', // 601 ə LATIN SMALL LETTER SCHWA + 'e', // 602 ɚ LATIN SMALL LETTER SCHWA WITH HOOK + 'e', // 603 ɛ LATIN SMALL LETTER OPEN E + '3', // 604 ɜ LATIN SMALL LETTER REVERSED OPEN E + '3', // 605 ɝ LATIN SMALL LETTER REVERSED OPEN E WITH HOOK + 'e', // 606 ɞ LATIN SMALL LETTER CLOSED REVERSED OPEN E + 'j', // 607 ɟ LATIN SMALL LETTER DOTLESS J WITH STROKE + 'g', // 608 ɠ LATIN SMALL LETTER G WITH HOOK + 'g', // 609 ɡ LATIN SMALL LETTER SCRIPT G + 'G', // 610 ɢ LATIN LETTER SMALL CAPITAL G + 'y', // 611 ɣ LATIN SMALL LETTER GAMMA + 'o', // 612 ɤ LATIN SMALL LETTER RAMS HORN + 'u', // 613 ɥ LATIN SMALL LETTER TURNED H + 'h', // 614 ɦ LATIN SMALL LETTER H WITH HOOK + 'h', // 615 ɧ LATIN SMALL LETTER HENG WITH HOOK + 'i', // 616 ɨ LATIN SMALL LETTER I WITH STROKE + 'i', // 617 ɩ LATIN SMALL LETTER IOTA + 'I', // 618 ɪ LATIN LETTER SMALL CAPITAL I + 'l', // 619 ɫ LATIN SMALL LETTER L WITH MIDDLE TILDE + 'l', // 620 ɬ LATIN SMALL LETTER L WITH BELT + 'l', // 621 ɭ LATIN SMALL LETTER L WITH RETROFLEX HOOK + 'lz', // 622 ɮ LATIN SMALL LETTER LEZH + 'w', // 623 ɯ LATIN SMALL LETTER TURNED M + 'w', // 624 ɰ LATIN SMALL LETTER TURNED M WITH LONG LEG + 'm', // 625 ɱ LATIN SMALL LETTER M WITH HOOK + 'n', // 626 ɲ LATIN SMALL LETTER N WITH LEFT HOOK + 'n', // 627 ɳ LATIN SMALL LETTER N WITH RETROFLEX HOOK + 'N', // 628 ɴ LATIN LETTER SMALL CAPITAL N + 'o', // 629 ɵ LATIN SMALL LETTER BARRED O + 'OE', // 630 ɶ LATIN LETTER SMALL CAPITAL OE + 'w', // 631 ɷ LATIN SMALL LETTER CLOSED OMEGA + 'o', // 632 ɸ LATIN SMALL LETTER PHI + 'r', // 633 ɹ LATIN SMALL LETTER TURNED R + 'r', // 634 ɺ LATIN SMALL LETTER TURNED R WITH LONG LEG + 'r', // 635 ɻ LATIN SMALL LETTER TURNED R WITH HOOK + 'r', // 636 ɼ LATIN SMALL LETTER R WITH LONG LEG + 'r', // 637 ɽ LATIN SMALL LETTER R WITH TAIL + 'r', // 638 ɾ LATIN SMALL LETTER R WITH FISHHOOK + 'r', // 639 ɿ LATIN SMALL LETTER REVERSED R WITH FISHHOOK + 'R', // 640 ʀ LATIN LETTER SMALL CAPITAL R + 'R', // 641 ʁ LATIN LETTER SMALL CAPITAL INVERTED R + 's', // 642 ʂ LATIN SMALL LETTER S WITH HOOK + 'S', // 643 ʃ LATIN SMALL LETTER ESH + 'f', // 644 ʄ LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK + 'S', // 645 ʅ LATIN SMALL LETTER SQUAT REVERSED ESH + 'f', // 646 ʆ LATIN SMALL LETTER ESH WITH CURL + 't', // 647 ʇ LATIN SMALL LETTER TURNED T + 't', // 648 ʈ LATIN SMALL LETTER T WITH RETROFLEX HOOK + 'u', // 649 ʉ LATIN SMALL LETTER U BAR + 'u', // 650 ʊ LATIN SMALL LETTER UPSILON + 'v', // 651 ʋ LATIN SMALL LETTER V WITH HOOK + 'v', // 652 ʌ LATIN SMALL LETTER TURNED V + 'm', // 653 ʍ LATIN SMALL LETTER TURNED W + 'y', // 654 ʎ LATIN SMALL LETTER TURNED Y + 'Y', // 655 ʏ LATIN LETTER SMALL CAPITAL Y + 'z', // 656 ʐ LATIN SMALL LETTER Z WITH RETROFLEX HOOK + 'z', // 657 ʑ LATIN SMALL LETTER Z WITH CURL + '3', // 658 ʒ LATIN SMALL LETTER EZH + '3', // 659 ʓ LATIN SMALL LETTER EZH WITH CURL + '?', // 660 ʔ LATIN LETTER GLOTTAL STOP + '?', // 661 ʕ LATIN LETTER PHARYNGEAL VOICED FRICATIVE + '?', // 662 ʖ LATIN LETTER INVERTED GLOTTAL STOP + 'C', // 663 ʗ LATIN LETTER STRETCHED C + 'O', // 664 ʘ LATIN LETTER BILABIAL CLICK + 'B', // 665 ʙ LATIN LETTER SMALL CAPITAL B + 'e', // 666 ʚ LATIN SMALL LETTER CLOSED OPEN E + 'G', // 667 ʛ LATIN LETTER SMALL CAPITAL G WITH HOOK + 'H', // 668 ʜ LATIN LETTER SMALL CAPITAL H + 'j', // 669 ʝ LATIN SMALL LETTER J WITH CROSSED-TAIL + 'k', // 670 ʞ LATIN SMALL LETTER TURNED K + 'L', // 671 ʟ LATIN LETTER SMALL CAPITAL L + 'q', // 672 ʠ LATIN SMALL LETTER Q WITH HOOK + 't', // 673 ʡ LATIN LETTER GLOTTAL STOP WITH STROKE + 't', // 674 ʢ LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE + 'dz', // 675 ʣ LATIN SMALL LETTER DZ DIGRAPH + 'dz', // 676 ʤ LATIN SMALL LETTER DEZH DIGRAPH + 'dz', // 677 ʥ LATIN SMALL LETTER DZ DIGRAPH WITH CURL + 'ts', // 678 ʦ LATIN SMALL LETTER TS DIGRAPH + 'tS', // 679 ʧ LATIN SMALL LETTER TESH DIGRAPH + 'tc', // 680 ʨ LATIN SMALL LETTER TC DIGRAPH WITH CURL + 'fn', // 681 ʩ LATIN SMALL LETTER FENG DIGRAPH + 'ls', // 682 ʪ LATIN SMALL LETTER LS DIGRAPH + 'lz', // 683 ʫ LATIN SMALL LETTER LZ DIGRAPH + 'w', // 684 ʬ LATIN LETTER BILABIAL PERCUSSIVE + 'n', // 685 ʭ LATIN LETTER BIDENTAL PERCUSSIVE + 'u', // 686 ʮ LATIN SMALL LETTER TURNED H WITH FISHHOOK + 'u' // 687 ʯ LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL + ] + + function toAscii(text) { + var result = '' + var start = 0 + for (var i = 0, len = text.length; i < len; ++i) { + var code = text.charCodeAt(i) + var replacement = null + if (code > 159 + replacements.length) { + replacement = '?' + } else if (code > 159) { + replacement = replacements[code - 160] + } else if (code > 127) { + replacement = '' + } + if (replacement !== null) { + result += text.substring(start, i) + replacement + start = i + 1 + } + } + result += text.substring(start) + return result + } + + function doWork() { + if (app.selectionInfo.tag(Frame.Tag_1).tagFormat) { + var frameNames = ["title", "artist", "album", "comment"] + for (var fi = 0; fi < frameNames.length; ++fi) { + var name = frameNames[fi]; + var oldTxt = app.getFrame(tagv1, name) + var newTxt = toAscii(oldTxt) + if (newTxt !== oldTxt) { + app.setFrame(tagv1, name, newTxt) + } + } + } + if (!nextFile()) { + if (isStandalone()) { + // Save the changes if the script is started stand-alone, not from Kid3. + app.saveDirectory() + } + Qt.quit() + } else { + setTimeout(doWork, 1) + } + } + + firstFile() + doWork() + } +}
