Add localisation support.
With translation in French.
This commit is contained in:
25
Resources/Lokalize/0_getstrings.sh
Executable file
25
Resources/Lokalize/0_getstrings.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [ ! -x 0_getstrings.sh ]
|
||||||
|
then
|
||||||
|
echo "Wrong working directory. Please cd to the directory containing this script."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $1 ];
|
||||||
|
then
|
||||||
|
echo "\$1: domain; example: fr"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
APPNAME=utf8util
|
||||||
|
SRC=../../
|
||||||
|
DOMAIN="$1"
|
||||||
|
DEST=$DOMAIN/$APPNAME.po
|
||||||
|
[ ! -d $DOMAIN ] && mkdir $DOMAIN
|
||||||
|
[ -f $DEST ] && JOIN="-j"
|
||||||
|
[ -f $DEST ] && cp $DEST $DEST.bak-$(date +%F-%T)
|
||||||
|
|
||||||
|
xgettext --keyword=_ -d $DOMAIN $JOIN -o $DEST --c++ --from-code=UTF-8 $(find $SRC -maxdepth 1 -type f -name "*.cpp")
|
||||||
|
#xgettext --keyword=_ -d $DOMAIN -j -o $DEST --c++ --from-code=UTF-8 $(find $SRC -maxdepth 1 -type f -name "*.h")
|
||||||
|
|
||||||
|
exit 0
|
||||||
22
Resources/Lokalize/2_makemo.sh
Executable file
22
Resources/Lokalize/2_makemo.sh
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [ ! -x 2_makemo.sh ]
|
||||||
|
then
|
||||||
|
echo "Wrong working directory. Please cd to the directory containing this script."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $1 ];
|
||||||
|
then
|
||||||
|
echo "\$1: domain; example: fr"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
APPNAME=utf8util
|
||||||
|
DOMAIN="$1"
|
||||||
|
|
||||||
|
msgfmt $DOMAIN/$APPNAME.po -o $DOMAIN/$APPNAME.mo
|
||||||
|
|
||||||
|
# cp $DOMAIN/$APPNAME.mo /usr/local/share/locale/$DOMAIN/LC_MESSAGES/
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
613
Resources/Lokalize/fr/utf8util.po
Normal file
613
Resources/Lokalize/fr/utf8util.po
Normal file
@@ -0,0 +1,613 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2023-10-02 21:06+0200\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: ../../main.cpp:57 ../../main.cpp:58 ../../main.cpp:59 ../../main.cpp:60
|
||||||
|
msgid "Unhandled base: "
|
||||||
|
msgstr "Base non pris en charge:"
|
||||||
|
|
||||||
|
#: ../../main.cpp:66 ../../main.cpp:67 ../../main.cpp:68 ../../main.cpp:69
|
||||||
|
msgid ""
|
||||||
|
"This operational mode removes character markings, control characters, "
|
||||||
|
"default ignorable characters and unassigned codepoints from an UTF-8 input."
|
||||||
|
"The utf8proc library, on which this utility is based, refers to character "
|
||||||
|
"markings as 'non-spacing, spacing and enclosing (accents)' marks, and to "
|
||||||
|
"default ignorable characters 'such as SOFT-HYPHEN or ZERO-WIDTH-SPACE'. "
|
||||||
|
"Control characters are stripped or converted to spaces.\n"
|
||||||
|
"\n"
|
||||||
|
"By default, every removable byte is stripped, the output characters are "
|
||||||
|
"decomposed and Unicode Versioning Stability is enforced.\n"
|
||||||
|
"\n"
|
||||||
|
" -i, --ignore: do not strip 'default ignorable characters'\n"
|
||||||
|
" -c, --control: do not handle 'control characters'\n"
|
||||||
|
" -m, --mark: do not strip 'character markings'\n"
|
||||||
|
" -n, --na: do not strip 'unassigned codepoints'\n"
|
||||||
|
" -r, --recompose: output recomposed characters\n"
|
||||||
|
" -h, --help: show this message\n"
|
||||||
|
"\n"
|
||||||
|
"The input can be piped in or read from stdin. It must be a single NULL "
|
||||||
|
"terminated line."
|
||||||
|
msgstr ""
|
||||||
|
"Ce mode opératoire supprime les marques de caractère, les caractères de "
|
||||||
|
"contrôle, les caractères pouvant être ignorés et les points de code non-"
|
||||||
|
"assignés d'une entrée en UTF-8. La bibliothèque utf8proc, à la base de cet "
|
||||||
|
"utilitaire, décrit les marques de caractères comme 'non-espaçant, espaçant "
|
||||||
|
"et encadrant (accents) ', et les caractères pouvant être ignorés 'tels que "
|
||||||
|
"SOFT-HYPHEN ou ZERO-SPACE-WIDTH'. Les caractères de contrôle sont supprimés "
|
||||||
|
"ou convertis en espaces.\n"
|
||||||
|
"\n"
|
||||||
|
"Par défaut, chaque octet pouvant être supprimé est supprimé, les caractères "
|
||||||
|
"en sortie sont décomposés et la 'Unicode Versioning Stability' est "
|
||||||
|
"appliquée.\n"
|
||||||
|
"\n"
|
||||||
|
" -i, --ignore: ne pas supprimer les 'caractères pouvant être ignorés'\n"
|
||||||
|
" -c, --control: ignorer les 'caractères de contrôle'\n"
|
||||||
|
" -m, --mark: ne pas supprimer les 'marques de caractères'\n"
|
||||||
|
" -n, --na: ne pas supprimer les 'points de code non-assignés'\n"
|
||||||
|
" -r, --recompose: recomposer les caractères en sortie\n"
|
||||||
|
" -h, --help: afficher ce message\n"
|
||||||
|
"\n"
|
||||||
|
"L'entrée peut être effectué via in tuyau (pipe) ou via l'entrée standard "
|
||||||
|
"(stdin). Elle doit être une ligne unique, terminée par un caractère NULL."
|
||||||
|
|
||||||
|
#: ../../main.cpp:82 ../../main.cpp:83 ../../main.cpp:84 ../../main.cpp:85
|
||||||
|
msgid ""
|
||||||
|
"This operational mode normalizes the input string according to the specified "
|
||||||
|
"type, the default being NFC.\n"
|
||||||
|
"\n"
|
||||||
|
" -t, --type: one of NFC, NFD, NFKC, NFKD, NFKC_Casefold\n"
|
||||||
|
" -h, --help: show this message\n"
|
||||||
|
"\n"
|
||||||
|
"The input can be piped in or read from stdin. It must be a single NULL "
|
||||||
|
"terminated line."
|
||||||
|
msgstr ""
|
||||||
|
"Ce mode opératoire normalise l'entrée selon le type spécifié, NFC par "
|
||||||
|
"défaut.\n"
|
||||||
|
"\n"
|
||||||
|
" -t, --type: peut être NFC, NFD, NFKC, NFKD, NFKC_Casefold\n"
|
||||||
|
" -h, --help: afficher ce message\n"
|
||||||
|
"\n"
|
||||||
|
"L'entrée peut être effectué via in tuyau (pipe) ou via l'entrée standard "
|
||||||
|
"(stdin). Elle doit être une ligne unique, terminée par un caractère NULL."
|
||||||
|
|
||||||
|
#: ../../main.cpp:92 ../../main.cpp:93 ../../main.cpp:94 ../../main.cpp:95
|
||||||
|
msgid ""
|
||||||
|
"This operational mode displays representations of the first identified "
|
||||||
|
"codepoint.\n"
|
||||||
|
"\n"
|
||||||
|
" -p, --codepoint: hexadecimal representation of the codepoint\n"
|
||||||
|
" -e, --utf8: hexadecimal representation of each byte\n"
|
||||||
|
" -s, --utf16: hexadecimal representation of each surrogate\n"
|
||||||
|
" -b, --binary: binary representation of each byte\n"
|
||||||
|
" -o, --octal: octal representation of each byte\n"
|
||||||
|
" -d, --decimal: decimal representation of each byte\n"
|
||||||
|
" -x, --xml: XML decimal representation of each byte\n"
|
||||||
|
" -L, --tolower: displays the codepoint as a lower-case character if "
|
||||||
|
"existent\n"
|
||||||
|
" -U, --toupper: displays the codepoint as an upper-case character if "
|
||||||
|
"existent\n"
|
||||||
|
" -T, --totitle: displays the codepoint as a title-case character if "
|
||||||
|
"existent\n"
|
||||||
|
" -h, --help: show this message\n"
|
||||||
|
"\n"
|
||||||
|
"The input can be piped in or read from stdin. Pass in a single character for "
|
||||||
|
"simplicity."
|
||||||
|
msgstr ""
|
||||||
|
"Ce mode opératoire affiche des représentations du premier point de code "
|
||||||
|
"identifié.\n"
|
||||||
|
"\n"
|
||||||
|
" -p, --codepoint: représentation hexadécimale du point de code\n"
|
||||||
|
" -e, --utf8: représentation hexadécimale de chaque octet\n"
|
||||||
|
" -s, --utf16: représentation hexadécimale de chaque codet (surrogate)\n"
|
||||||
|
" -b, --binary: représentation binaire de chaque octet\n"
|
||||||
|
" -o, --octal: représentation octale de chaque octet\n"
|
||||||
|
" -d, --decimal: représentation décimale de chaque octet\n"
|
||||||
|
" -x, --xml: entité décimale XML de chaque octet\n"
|
||||||
|
" -L, --tolower: affiche le point de code en casse minuscule si le caractère "
|
||||||
|
"existe\n"
|
||||||
|
" -U, --toupper: affiche le point de code en casse majuscule si le caractère "
|
||||||
|
"existe\n"
|
||||||
|
" -T, --totitle: affiche le point de code en casse de titre si le caractère "
|
||||||
|
"existe\n"
|
||||||
|
" -h, --help: afficher ce message\n"
|
||||||
|
"\n"
|
||||||
|
"L'entrée peut être effectué via in tuyau (pipe) ou via l'entrée standard "
|
||||||
|
"(stdin). Passez un caractère unique par souci de simplicité."
|
||||||
|
|
||||||
|
#: ../../main.cpp:112 ../../main.cpp:113 ../../main.cpp:114
|
||||||
|
msgid ""
|
||||||
|
"This operational mode displays properties of the first identified "
|
||||||
|
"codepoint.\n"
|
||||||
|
"\n"
|
||||||
|
" -l, --islower: displays 1 if the codepoint refers to a lower-case "
|
||||||
|
"character, 0 otherwise\n"
|
||||||
|
" -u, --isupper: displays 1 if the codepoint refers to an upper-case "
|
||||||
|
"character, 0 otherwise\n"
|
||||||
|
" -c, --category: determines the category of a codepoint (Letter, Number, "
|
||||||
|
"Symbol...)\n"
|
||||||
|
" -n, --direction: determines the bidirectional class of a codepoint; see "
|
||||||
|
"utf8proc.h\n"
|
||||||
|
" -i, --decompositiontype: determines the decomposition type of a codepoint; "
|
||||||
|
"see utf8proc.h\n"
|
||||||
|
" -k, --boundclass: determines the boundclass property of a codepoint; see "
|
||||||
|
"utf8proc.h\n"
|
||||||
|
" -h, --help: show this message\n"
|
||||||
|
"\n"
|
||||||
|
"The input can be piped in or read from stdin. Pass in a single character for "
|
||||||
|
"simplicity."
|
||||||
|
msgstr ""
|
||||||
|
"Ce mode opératoire affiche des propriétés du premier point de code "
|
||||||
|
"identifié.\n"
|
||||||
|
"\n"
|
||||||
|
" -l, --islower: affiche 1 si le point de code se réfère à la casse "
|
||||||
|
"minuscule d'un caractère, sinon 0\n"
|
||||||
|
" -u, --isupper: affiche 1 si le point de code se réfère à la casse "
|
||||||
|
"majuscule d'un caractère, sinon 0\n"
|
||||||
|
" -c, --category: détermine la catégorie d'un point de code (Lettre, Nombre, "
|
||||||
|
"Symbole...)\n"
|
||||||
|
" -n, --direction: détermine la bidirection d'un point de code; voir "
|
||||||
|
"utf8proc.h\n"
|
||||||
|
" -i, --decompositiontype: détermine le type de décomposition d'un point de "
|
||||||
|
"code; voir utf8proc.h\n"
|
||||||
|
" -k, --boundclass: détermine la propriété 'boundclass' d'un point de code; "
|
||||||
|
"voir utf8proc.h\n"
|
||||||
|
" -h, --help: afficher ce message\n"
|
||||||
|
"\n"
|
||||||
|
"L'entrée peut être effectué via in tuyau (pipe) ou via l'entrée standard "
|
||||||
|
"(stdin). Passez un caractère unique par souci de simplicité."
|
||||||
|
|
||||||
|
#: ../../main.cpp:258 ../../main.cpp:259 ../../main.cpp:260 ../../main.cpp:261
|
||||||
|
msgid "Unknown type; valid types are NFC, NFD, NFKC, NFKD and NFKC_Casefold."
|
||||||
|
msgstr ""
|
||||||
|
"Type inconnu; les types connus sont NFC, NFD, NFKC, NFKD et NFKC_Casefold."
|
||||||
|
|
||||||
|
#: ../../main.cpp:298 ../../main.cpp:449 ../../main.cpp:299 ../../main.cpp:450
|
||||||
|
#: ../../main.cpp:300 ../../main.cpp:451 ../../main.cpp:301 ../../main.cpp:452
|
||||||
|
msgid "No valid bytes at start of input."
|
||||||
|
msgstr "Pas d'octet valide au début de l'entrée."
|
||||||
|
|
||||||
|
#: ../../main.cpp:325 ../../main.cpp:326 ../../main.cpp:327 ../../main.cpp:328
|
||||||
|
msgid "Codepoint: "
|
||||||
|
msgstr "Point de code: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:355 ../../main.cpp:356 ../../main.cpp:357 ../../main.cpp:358
|
||||||
|
msgid "Binary: "
|
||||||
|
msgstr "Binaire: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:363 ../../main.cpp:364 ../../main.cpp:365 ../../main.cpp:366
|
||||||
|
msgid "Octal: "
|
||||||
|
msgstr "Octal: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:371 ../../main.cpp:372 ../../main.cpp:373 ../../main.cpp:374
|
||||||
|
msgid "Decimal: "
|
||||||
|
msgstr "Décimal: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:379 ../../main.cpp:380 ../../main.cpp:381 ../../main.cpp:382
|
||||||
|
msgid "XML decimal: "
|
||||||
|
msgstr "XML décimal: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:387 ../../main.cpp:388 ../../main.cpp:389 ../../main.cpp:390
|
||||||
|
msgid "To lower: "
|
||||||
|
msgstr "En minuscule: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:396 ../../main.cpp:397 ../../main.cpp:398 ../../main.cpp:399
|
||||||
|
msgid "To upper: "
|
||||||
|
msgstr "En majuscule: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:405 ../../main.cpp:406 ../../main.cpp:407 ../../main.cpp:408
|
||||||
|
msgid "To title: "
|
||||||
|
msgstr "En titre: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:418 ../../main.cpp:513 ../../main.cpp:419 ../../main.cpp:514
|
||||||
|
#: ../../main.cpp:420 ../../main.cpp:515 ../../main.cpp:421 ../../main.cpp:516
|
||||||
|
msgid "Character: "
|
||||||
|
msgstr "Caractère: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:472 ../../main.cpp:473 ../../main.cpp:474 ../../main.cpp:475
|
||||||
|
msgid "Is lower: "
|
||||||
|
msgstr "Est minuscule: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:475 ../../main.cpp:476 ../../main.cpp:477 ../../main.cpp:478
|
||||||
|
msgid "Is upper: "
|
||||||
|
msgstr "Est majuscule: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:480 ../../main.cpp:481 ../../main.cpp:482 ../../main.cpp:483
|
||||||
|
msgid "Category: ["
|
||||||
|
msgstr "Catégorie: ["
|
||||||
|
|
||||||
|
#: ../../main.cpp:487 ../../main.cpp:488 ../../main.cpp:489 ../../main.cpp:490
|
||||||
|
msgid "Direction: "
|
||||||
|
msgstr "Direction: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:493 ../../main.cpp:494 ../../main.cpp:495 ../../main.cpp:496
|
||||||
|
msgid "Decomposition type: "
|
||||||
|
msgstr "Type de décomposition: "
|
||||||
|
|
||||||
|
#: ../../main.cpp:500 ../../main.cpp:501 ../../main.cpp:502 ../../main.cpp:503
|
||||||
|
msgid "Bound class: "
|
||||||
|
msgstr "Classe 'bound': "
|
||||||
|
|
||||||
|
#: ../../main.cpp:520 ../../main.cpp:526 ../../main.cpp:527 ../../main.cpp:528
|
||||||
|
msgid "Other, not assigned"
|
||||||
|
msgstr "Autre, non assigné"
|
||||||
|
|
||||||
|
#: ../../main.cpp:521 ../../main.cpp:527 ../../main.cpp:528 ../../main.cpp:529
|
||||||
|
msgid "Letter, uppercase"
|
||||||
|
msgstr "Lettre, majuscule"
|
||||||
|
|
||||||
|
#: ../../main.cpp:522 ../../main.cpp:528 ../../main.cpp:529 ../../main.cpp:530
|
||||||
|
msgid "Letter, lowercase"
|
||||||
|
msgstr "Lettre, minuscule"
|
||||||
|
|
||||||
|
#: ../../main.cpp:523 ../../main.cpp:529 ../../main.cpp:530 ../../main.cpp:531
|
||||||
|
msgid "Letter, titlecase"
|
||||||
|
msgstr "Lettre, titre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:524 ../../main.cpp:530 ../../main.cpp:531 ../../main.cpp:532
|
||||||
|
msgid "Letter, modifier"
|
||||||
|
msgstr "Lettre, modificateur"
|
||||||
|
|
||||||
|
#: ../../main.cpp:525 ../../main.cpp:531 ../../main.cpp:532 ../../main.cpp:533
|
||||||
|
msgid "Letter, other"
|
||||||
|
msgstr "Lettre, autre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:526 ../../main.cpp:532 ../../main.cpp:533 ../../main.cpp:534
|
||||||
|
msgid "Mark, nonspacing"
|
||||||
|
msgstr "Marque, non-espaçant"
|
||||||
|
|
||||||
|
#: ../../main.cpp:527 ../../main.cpp:533 ../../main.cpp:534 ../../main.cpp:535
|
||||||
|
msgid "Mark, spacing combining"
|
||||||
|
msgstr "Marque, espaçant et combinant"
|
||||||
|
|
||||||
|
#: ../../main.cpp:528 ../../main.cpp:534 ../../main.cpp:535 ../../main.cpp:536
|
||||||
|
msgid "Mark, enclosing"
|
||||||
|
msgstr "Marque, encadrant"
|
||||||
|
|
||||||
|
#: ../../main.cpp:529 ../../main.cpp:535 ../../main.cpp:536 ../../main.cpp:537
|
||||||
|
msgid "Number, letter"
|
||||||
|
msgstr "Nombre, lettre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:530 ../../main.cpp:536 ../../main.cpp:537 ../../main.cpp:538
|
||||||
|
msgid "Number, other"
|
||||||
|
msgstr "Nombre, autre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:531 ../../main.cpp:537 ../../main.cpp:538 ../../main.cpp:539
|
||||||
|
msgid "Punctuation, connector"
|
||||||
|
msgstr "Ponctuation, connecteur"
|
||||||
|
|
||||||
|
#: ../../main.cpp:532 ../../main.cpp:538 ../../main.cpp:539 ../../main.cpp:540
|
||||||
|
msgid "Punctuation, dash"
|
||||||
|
msgstr "Ponctuation, tiret"
|
||||||
|
|
||||||
|
#: ../../main.cpp:533 ../../main.cpp:539 ../../main.cpp:540 ../../main.cpp:541
|
||||||
|
msgid "Punctuation, open"
|
||||||
|
msgstr "Ponctuation, ouverture"
|
||||||
|
|
||||||
|
#: ../../main.cpp:534 ../../main.cpp:540 ../../main.cpp:541 ../../main.cpp:542
|
||||||
|
msgid "Punctuation, close"
|
||||||
|
msgstr "Ponctuation, fermeture"
|
||||||
|
|
||||||
|
#: ../../main.cpp:535 ../../main.cpp:541 ../../main.cpp:542 ../../main.cpp:543
|
||||||
|
msgid "Punctuation, initial quote"
|
||||||
|
msgstr "Ponctuation, guillemet initial"
|
||||||
|
|
||||||
|
#: ../../main.cpp:536 ../../main.cpp:542 ../../main.cpp:543 ../../main.cpp:544
|
||||||
|
msgid "Punctuation, final quote"
|
||||||
|
msgstr "Ponctuation, guillemet final"
|
||||||
|
|
||||||
|
#: ../../main.cpp:537 ../../main.cpp:543 ../../main.cpp:544 ../../main.cpp:545
|
||||||
|
msgid "Punctuation, other"
|
||||||
|
msgstr "Ponctuation, autre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:538 ../../main.cpp:544 ../../main.cpp:545 ../../main.cpp:546
|
||||||
|
msgid "Symbol, math"
|
||||||
|
msgstr "Symbole, math"
|
||||||
|
|
||||||
|
#: ../../main.cpp:539 ../../main.cpp:545 ../../main.cpp:546 ../../main.cpp:547
|
||||||
|
msgid "Symbol, currency"
|
||||||
|
msgstr "Symbole, monnaie"
|
||||||
|
|
||||||
|
#: ../../main.cpp:540 ../../main.cpp:546 ../../main.cpp:547 ../../main.cpp:548
|
||||||
|
msgid "Symbol, modifier"
|
||||||
|
msgstr "Symbole, modificateur"
|
||||||
|
|
||||||
|
#: ../../main.cpp:541 ../../main.cpp:547 ../../main.cpp:548 ../../main.cpp:549
|
||||||
|
msgid "Symbol, other"
|
||||||
|
msgstr "Symbole, autre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:542 ../../main.cpp:548 ../../main.cpp:549 ../../main.cpp:550
|
||||||
|
msgid "Separator, space"
|
||||||
|
msgstr "Séparateur, espace"
|
||||||
|
|
||||||
|
#: ../../main.cpp:543 ../../main.cpp:549 ../../main.cpp:550 ../../main.cpp:551
|
||||||
|
msgid "Separator, line"
|
||||||
|
msgstr "Séparateur, ligne"
|
||||||
|
|
||||||
|
#: ../../main.cpp:544 ../../main.cpp:550 ../../main.cpp:551 ../../main.cpp:552
|
||||||
|
msgid "Separator, paragraph"
|
||||||
|
msgstr "Séparateur, paragraphe"
|
||||||
|
|
||||||
|
#: ../../main.cpp:545 ../../main.cpp:551 ../../main.cpp:552 ../../main.cpp:553
|
||||||
|
msgid "Other, control"
|
||||||
|
msgstr "Autre, contrôle"
|
||||||
|
|
||||||
|
#: ../../main.cpp:546 ../../main.cpp:552 ../../main.cpp:553 ../../main.cpp:554
|
||||||
|
msgid "Other, format"
|
||||||
|
msgstr "Autre, format"
|
||||||
|
|
||||||
|
#: ../../main.cpp:547 ../../main.cpp:553 ../../main.cpp:554 ../../main.cpp:555
|
||||||
|
msgid "Other, surrogate"
|
||||||
|
msgstr "Autre, codet"
|
||||||
|
|
||||||
|
#: ../../main.cpp:548 ../../main.cpp:554 ../../main.cpp:555 ../../main.cpp:556
|
||||||
|
msgid "Other, private use"
|
||||||
|
msgstr "Autre, usage privé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:550 ../../main.cpp:556 ../../main.cpp:557 ../../main.cpp:558
|
||||||
|
msgid "Left-to-Right"
|
||||||
|
msgstr "Gauche-Droit"
|
||||||
|
|
||||||
|
#: ../../main.cpp:551 ../../main.cpp:557 ../../main.cpp:558 ../../main.cpp:559
|
||||||
|
msgid "Left-to-Right Embedding"
|
||||||
|
msgstr "Gauche-Droit incorporé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:552 ../../main.cpp:558 ../../main.cpp:559 ../../main.cpp:560
|
||||||
|
msgid "Left-to-Right Override"
|
||||||
|
msgstr "Gauche-Droit outrepassé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:553 ../../main.cpp:559 ../../main.cpp:560 ../../main.cpp:561
|
||||||
|
msgid "Right-to-Left"
|
||||||
|
msgstr "Droit-Gauche"
|
||||||
|
|
||||||
|
#: ../../main.cpp:554 ../../main.cpp:560 ../../main.cpp:561 ../../main.cpp:562
|
||||||
|
msgid "Right-to-Left Arabic"
|
||||||
|
msgstr "Droit-Gauche Arabe"
|
||||||
|
|
||||||
|
#: ../../main.cpp:555 ../../main.cpp:561 ../../main.cpp:562 ../../main.cpp:563
|
||||||
|
msgid "Right-to-Left Embedding"
|
||||||
|
msgstr "Droit-Gauche incorporé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:556 ../../main.cpp:562 ../../main.cpp:563 ../../main.cpp:564
|
||||||
|
msgid "Right-to-Left Override"
|
||||||
|
msgstr "Droit-Gauche outrepassé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:557 ../../main.cpp:563 ../../main.cpp:564 ../../main.cpp:565
|
||||||
|
msgid "Pop Directional Format"
|
||||||
|
msgstr "Pop Directional Format"
|
||||||
|
|
||||||
|
#: ../../main.cpp:558 ../../main.cpp:564 ../../main.cpp:565 ../../main.cpp:566
|
||||||
|
msgid "European Number"
|
||||||
|
msgstr "Nombre Européen"
|
||||||
|
|
||||||
|
#: ../../main.cpp:559 ../../main.cpp:565 ../../main.cpp:566 ../../main.cpp:567
|
||||||
|
msgid "European Separator"
|
||||||
|
msgstr "Séparateur Européen"
|
||||||
|
|
||||||
|
#: ../../main.cpp:560 ../../main.cpp:566 ../../main.cpp:567 ../../main.cpp:568
|
||||||
|
msgid "European Number Terminator"
|
||||||
|
msgstr "Terminaison de Nombre Européen"
|
||||||
|
|
||||||
|
#: ../../main.cpp:561 ../../main.cpp:567 ../../main.cpp:568 ../../main.cpp:569
|
||||||
|
msgid "Arabic Number"
|
||||||
|
msgstr "Nombre Arabe"
|
||||||
|
|
||||||
|
#: ../../main.cpp:562 ../../main.cpp:568 ../../main.cpp:569 ../../main.cpp:570
|
||||||
|
msgid "Common Number Separator"
|
||||||
|
msgstr "Séparateur de Nombre Commun"
|
||||||
|
|
||||||
|
#: ../../main.cpp:563 ../../main.cpp:569 ../../main.cpp:570 ../../main.cpp:571
|
||||||
|
msgid "Nonspacing Mark"
|
||||||
|
msgstr "Marque Non-Espaçant"
|
||||||
|
|
||||||
|
#: ../../main.cpp:564 ../../main.cpp:570 ../../main.cpp:571 ../../main.cpp:572
|
||||||
|
msgid "Boundary Neutral"
|
||||||
|
msgstr "Périmètre Neutre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:565 ../../main.cpp:571 ../../main.cpp:572 ../../main.cpp:573
|
||||||
|
msgid "Paragraph Separator"
|
||||||
|
msgstr "Séparateur de Paragraphe"
|
||||||
|
|
||||||
|
#: ../../main.cpp:566 ../../main.cpp:572 ../../main.cpp:573 ../../main.cpp:574
|
||||||
|
msgid "Segment Separator"
|
||||||
|
msgstr "Séparateur de Segment"
|
||||||
|
|
||||||
|
#: ../../main.cpp:567 ../../main.cpp:573 ../../main.cpp:574 ../../main.cpp:575
|
||||||
|
msgid "Whitespace"
|
||||||
|
msgstr "Espace"
|
||||||
|
|
||||||
|
#: ../../main.cpp:568 ../../main.cpp:574 ../../main.cpp:575 ../../main.cpp:576
|
||||||
|
msgid "Other Neutrals"
|
||||||
|
msgstr "Neutre : Autres"
|
||||||
|
|
||||||
|
#: ../../main.cpp:569 ../../main.cpp:575 ../../main.cpp:576 ../../main.cpp:577
|
||||||
|
msgid "Left-to-Right Isolate"
|
||||||
|
msgstr "Gauche-Droit Isoler"
|
||||||
|
|
||||||
|
#: ../../main.cpp:570 ../../main.cpp:576 ../../main.cpp:577 ../../main.cpp:578
|
||||||
|
msgid "Right-to-Left Isolate"
|
||||||
|
msgstr "Droit-Gauche Isoler"
|
||||||
|
|
||||||
|
#: ../../main.cpp:571 ../../main.cpp:577 ../../main.cpp:578 ../../main.cpp:579
|
||||||
|
msgid "First Strong Isolate"
|
||||||
|
msgstr "Premier Fortement Isolé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:572 ../../main.cpp:578 ../../main.cpp:579 ../../main.cpp:580
|
||||||
|
msgid "Pop Directional Isolate"
|
||||||
|
msgstr "Pop Directional Isolate"
|
||||||
|
|
||||||
|
#: ../../main.cpp:575 ../../main.cpp:581 ../../main.cpp:582 ../../main.cpp:583
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr "Inconnu"
|
||||||
|
|
||||||
|
#: ../../main.cpp:576 ../../main.cpp:582 ../../main.cpp:583 ../../main.cpp:584
|
||||||
|
msgid "Font"
|
||||||
|
msgstr "Police"
|
||||||
|
|
||||||
|
#: ../../main.cpp:577 ../../main.cpp:583 ../../main.cpp:584 ../../main.cpp:585
|
||||||
|
msgid "Nobreak"
|
||||||
|
msgstr "Non-cassant"
|
||||||
|
|
||||||
|
#: ../../main.cpp:578 ../../main.cpp:584 ../../main.cpp:585 ../../main.cpp:586
|
||||||
|
msgid "Initial"
|
||||||
|
msgstr "Initial"
|
||||||
|
|
||||||
|
#: ../../main.cpp:579 ../../main.cpp:585 ../../main.cpp:586 ../../main.cpp:587
|
||||||
|
msgid "Medial"
|
||||||
|
msgstr "Médial"
|
||||||
|
|
||||||
|
#: ../../main.cpp:580 ../../main.cpp:586 ../../main.cpp:587 ../../main.cpp:588
|
||||||
|
msgid "Final"
|
||||||
|
msgstr "Final"
|
||||||
|
|
||||||
|
#: ../../main.cpp:581 ../../main.cpp:587 ../../main.cpp:588 ../../main.cpp:589
|
||||||
|
msgid "Isolated"
|
||||||
|
msgstr "Isolé"
|
||||||
|
|
||||||
|
#: ../../main.cpp:582 ../../main.cpp:588 ../../main.cpp:589 ../../main.cpp:590
|
||||||
|
msgid "Circle"
|
||||||
|
msgstr "Cercle"
|
||||||
|
|
||||||
|
#: ../../main.cpp:583 ../../main.cpp:589 ../../main.cpp:590 ../../main.cpp:591
|
||||||
|
msgid "Super"
|
||||||
|
msgstr "Super"
|
||||||
|
|
||||||
|
#: ../../main.cpp:584 ../../main.cpp:590 ../../main.cpp:591 ../../main.cpp:592
|
||||||
|
msgid "Sub"
|
||||||
|
msgstr "Sub"
|
||||||
|
|
||||||
|
#: ../../main.cpp:585 ../../main.cpp:591 ../../main.cpp:592 ../../main.cpp:593
|
||||||
|
msgid "Vertical"
|
||||||
|
msgstr "Vertical"
|
||||||
|
|
||||||
|
#: ../../main.cpp:586 ../../main.cpp:592 ../../main.cpp:593 ../../main.cpp:594
|
||||||
|
msgid "Wide"
|
||||||
|
msgstr "Large"
|
||||||
|
|
||||||
|
#: ../../main.cpp:587 ../../main.cpp:593 ../../main.cpp:594 ../../main.cpp:595
|
||||||
|
msgid "Narrow"
|
||||||
|
msgstr "Étroit"
|
||||||
|
|
||||||
|
#: ../../main.cpp:588 ../../main.cpp:594 ../../main.cpp:595 ../../main.cpp:596
|
||||||
|
msgid "Small"
|
||||||
|
msgstr "Petit"
|
||||||
|
|
||||||
|
#: ../../main.cpp:589 ../../main.cpp:595 ../../main.cpp:596 ../../main.cpp:597
|
||||||
|
msgid "Square"
|
||||||
|
msgstr "Carré"
|
||||||
|
|
||||||
|
#: ../../main.cpp:590 ../../main.cpp:596 ../../main.cpp:597 ../../main.cpp:598
|
||||||
|
msgid "Fraction"
|
||||||
|
msgstr "Fraction"
|
||||||
|
|
||||||
|
#: ../../main.cpp:591 ../../main.cpp:597 ../../main.cpp:598 ../../main.cpp:599
|
||||||
|
msgid "Compat"
|
||||||
|
msgstr "Compat"
|
||||||
|
|
||||||
|
#: ../../main.cpp:594 ../../main.cpp:600 ../../main.cpp:601 ../../main.cpp:602
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Début"
|
||||||
|
|
||||||
|
#: ../../main.cpp:595 ../../main.cpp:601 ../../main.cpp:602 ../../main.cpp:603
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Autre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:596 ../../main.cpp:602 ../../main.cpp:603 ../../main.cpp:604
|
||||||
|
msgid "Cr"
|
||||||
|
msgstr "Cr"
|
||||||
|
|
||||||
|
#: ../../main.cpp:597 ../../main.cpp:603 ../../main.cpp:604 ../../main.cpp:605
|
||||||
|
msgid "Lf"
|
||||||
|
msgstr "Lf"
|
||||||
|
|
||||||
|
#: ../../main.cpp:598 ../../main.cpp:604 ../../main.cpp:605 ../../main.cpp:606
|
||||||
|
msgid "Control"
|
||||||
|
msgstr "Contrôler"
|
||||||
|
|
||||||
|
#: ../../main.cpp:599 ../../main.cpp:605 ../../main.cpp:606 ../../main.cpp:607
|
||||||
|
msgid "Extend"
|
||||||
|
msgstr "Étendre"
|
||||||
|
|
||||||
|
#: ../../main.cpp:600 ../../main.cpp:606 ../../main.cpp:607 ../../main.cpp:608
|
||||||
|
msgid "L"
|
||||||
|
msgstr "L"
|
||||||
|
|
||||||
|
#: ../../main.cpp:601 ../../main.cpp:607 ../../main.cpp:608 ../../main.cpp:609
|
||||||
|
msgid "V"
|
||||||
|
msgstr "V"
|
||||||
|
|
||||||
|
#: ../../main.cpp:602 ../../main.cpp:608 ../../main.cpp:609 ../../main.cpp:610
|
||||||
|
msgid "T"
|
||||||
|
msgstr "T"
|
||||||
|
|
||||||
|
#: ../../main.cpp:603 ../../main.cpp:609 ../../main.cpp:610 ../../main.cpp:611
|
||||||
|
msgid "Lv"
|
||||||
|
msgstr "Lv"
|
||||||
|
|
||||||
|
#: ../../main.cpp:604 ../../main.cpp:610 ../../main.cpp:611 ../../main.cpp:612
|
||||||
|
msgid "Lvt"
|
||||||
|
msgstr "Lvt"
|
||||||
|
|
||||||
|
#: ../../main.cpp:605 ../../main.cpp:611 ../../main.cpp:612 ../../main.cpp:613
|
||||||
|
msgid "Regional indicator"
|
||||||
|
msgstr "Indicateur Régional"
|
||||||
|
|
||||||
|
#: ../../main.cpp:606 ../../main.cpp:612 ../../main.cpp:613 ../../main.cpp:614
|
||||||
|
msgid "Spacingmark"
|
||||||
|
msgstr "Marque d'espacement"
|
||||||
|
|
||||||
|
#: ../../main.cpp:607 ../../main.cpp:613 ../../main.cpp:614 ../../main.cpp:615
|
||||||
|
msgid "Prepend"
|
||||||
|
msgstr "Préfixer"
|
||||||
|
|
||||||
|
#: ../../main.cpp:608 ../../main.cpp:614 ../../main.cpp:615 ../../main.cpp:616
|
||||||
|
msgid "Zero Width Joiner"
|
||||||
|
msgstr "Accoler"
|
||||||
|
|
||||||
|
#: ../../main.cpp:609 ../../main.cpp:615 ../../main.cpp:616 ../../main.cpp:617
|
||||||
|
msgid "Emoji Base"
|
||||||
|
msgstr "Base Emoji"
|
||||||
|
|
||||||
|
#: ../../main.cpp:610 ../../main.cpp:616 ../../main.cpp:617 ../../main.cpp:618
|
||||||
|
msgid "Emoji Modifier"
|
||||||
|
msgstr "Modificateur Emoji"
|
||||||
|
|
||||||
|
#: ../../main.cpp:611 ../../main.cpp:617 ../../main.cpp:618 ../../main.cpp:619
|
||||||
|
msgid "Glue_After_ZWJ"
|
||||||
|
msgstr "Glue_After_ZWJ"
|
||||||
|
|
||||||
|
#: ../../main.cpp:612 ../../main.cpp:618 ../../main.cpp:619 ../../main.cpp:620
|
||||||
|
msgid "E_BASE + GLUE_AFTER_ZJW"
|
||||||
|
msgstr "E_BASE + GLUE_AFTER_ZJW"
|
||||||
|
|
||||||
|
#: ../../main.cpp:613 ../../main.cpp:619 ../../main.cpp:620 ../../main.cpp:621
|
||||||
|
msgid "Extended_Pictographic"
|
||||||
|
msgstr "Extended_Pictographic"
|
||||||
|
|
||||||
|
#: ../../main.cpp:614 ../../main.cpp:620 ../../main.cpp:621 ../../main.cpp:622
|
||||||
|
msgid "UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC + ZWJ"
|
||||||
|
msgstr "UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC + ZWJ"
|
||||||
|
|
||||||
|
#: ../../main.cpp:623
|
||||||
|
msgid ""
|
||||||
|
"A mode of operation is required: unaccent, normalize, representation, "
|
||||||
|
"properties, about.\n"
|
||||||
|
"Pass '--help' for more information in each mode."
|
||||||
|
msgstr ""
|
||||||
|
"Un mode opératoire est requis: unaccent, normalize, representation, "
|
||||||
|
"properties, about.\n"
|
||||||
|
"Utilisez '--help' pour plus d'information à propos de chaque mode."
|
||||||
241
main.cpp
241
main.cpp
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* File: main.cpp
|
* File: main.cpp
|
||||||
* Author: Saleem Edah-Tally - nmset@yandex.com
|
* Author: Saleem Edah-Tally - nmset@yandex.com
|
||||||
* License: CeCILL-C
|
* License: CeCILL
|
||||||
* Copyright: Saleem Edah-Tally - © 2023
|
* Copyright: Saleem Edah-Tally - © 2023
|
||||||
*
|
*
|
||||||
* Created on 20 september 2023, 18:31
|
* Created on 20 september 2023, 18:31
|
||||||
@@ -12,10 +12,15 @@
|
|||||||
#include <utf8proc.h>
|
#include <utf8proc.h>
|
||||||
#include <format>
|
#include <format>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <libintl.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
#define STRIP_OPTIONS_DEFAULT (UTF8PROC_IGNORE | UTF8PROC_STRIPCC | UTF8PROC_STRIPMARK | UTF8PROC_STRIPNA | UTF8PROC_DECOMPOSE | UTF8PROC_STABLE | UTF8PROC_NULLTERM)
|
#define STRIP_OPTIONS_DEFAULT (UTF8PROC_IGNORE | UTF8PROC_STRIPCC | UTF8PROC_STRIPMARK | UTF8PROC_STRIPNA | UTF8PROC_DECOMPOSE | UTF8PROC_STABLE | UTF8PROC_NULLTERM)
|
||||||
|
//https://www.labri.fr/perso/fleury/posts/programming/a-quick-gettext-tutorial.html
|
||||||
|
#define _(STRING) gettext(STRING)
|
||||||
|
#define _APPNAME_ "utf8util"
|
||||||
|
#define _APPVERSION_ 1
|
||||||
|
|
||||||
typedef map<int, string> KeyValuePair;
|
typedef map<int, string> KeyValuePair;
|
||||||
// Described in utf8proc.h.
|
// Described in utf8proc.h.
|
||||||
@@ -51,7 +56,7 @@ string valueRepresentation(long nb, int baseHint) {
|
|||||||
formatted = std::format("{}{:d}{}","&#", nb, ";");
|
formatted = std::format("{}{:d}{}","&#", nb, ";");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
cout << "Unhandled base: " << baseHint << endl;
|
cout << _("Unhandled base: ") << baseHint << endl;
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +65,7 @@ string valueRepresentation(long nb, int baseHint) {
|
|||||||
|
|
||||||
void unaccentShowHelp()
|
void unaccentShowHelp()
|
||||||
{
|
{
|
||||||
string message("This operational mode removes character markings, control characters, default ignorable characters and unassigned codepoints from an UTF-8 input."
|
string message = _("This operational mode removes character markings, control characters, default ignorable characters and unassigned codepoints from an UTF-8 input."
|
||||||
"The utf8proc library, on which this utility is based, refers to character markings as 'non-spacing, spacing and enclosing (accents)' marks, and to default ignorable characters 'such as SOFT-HYPHEN or ZERO-WIDTH-SPACE'. Control characters are stripped or converted to spaces."
|
"The utf8proc library, on which this utility is based, refers to character markings as 'non-spacing, spacing and enclosing (accents)' marks, and to default ignorable characters 'such as SOFT-HYPHEN or ZERO-WIDTH-SPACE'. Control characters are stripped or converted to spaces."
|
||||||
"\n\nBy default, every removable byte is stripped, the output characters are decomposed and Unicode Versioning Stability is enforced."
|
"\n\nBy default, every removable byte is stripped, the output characters are decomposed and Unicode Versioning Stability is enforced."
|
||||||
"\n\n -i, --ignore: do not strip 'default ignorable characters'"
|
"\n\n -i, --ignore: do not strip 'default ignorable characters'"
|
||||||
@@ -76,7 +81,7 @@ void unaccentShowHelp()
|
|||||||
|
|
||||||
void normalizeShowHelp()
|
void normalizeShowHelp()
|
||||||
{
|
{
|
||||||
string message("This operational mode normalizes the input string according to the specified type, the default being NFC."
|
string message = _("This operational mode normalizes the input string according to the specified type, the default being NFC."
|
||||||
"\n\n -t, --type: one of NFC, NFD, NFKC, NFKD, NFKC_Casefold"
|
"\n\n -t, --type: one of NFC, NFD, NFKC, NFKD, NFKC_Casefold"
|
||||||
"\n -h, --help: show this message"
|
"\n -h, --help: show this message"
|
||||||
"\n\nThe input can be piped in or read from stdin. It must be a single NULL terminated line.");
|
"\n\nThe input can be piped in or read from stdin. It must be a single NULL terminated line.");
|
||||||
@@ -86,7 +91,7 @@ void normalizeShowHelp()
|
|||||||
|
|
||||||
void representationShowHelp()
|
void representationShowHelp()
|
||||||
{
|
{
|
||||||
string message("This operational mode displays representations of the first identified codepoint."
|
string message = _("This operational mode displays representations of the first identified codepoint."
|
||||||
"\n\n -p, --codepoint: hexadecimal representation of the codepoint"
|
"\n\n -p, --codepoint: hexadecimal representation of the codepoint"
|
||||||
"\n -e, --utf8: hexadecimal representation of each byte"
|
"\n -e, --utf8: hexadecimal representation of each byte"
|
||||||
"\n -s, --utf16: hexadecimal representation of each surrogate"
|
"\n -s, --utf16: hexadecimal representation of each surrogate"
|
||||||
@@ -105,7 +110,7 @@ void representationShowHelp()
|
|||||||
|
|
||||||
void propertiesShowHelp()
|
void propertiesShowHelp()
|
||||||
{
|
{
|
||||||
string message("This operational mode displays properties of the first identified codepoint."
|
string message = _("This operational mode displays properties of the first identified codepoint."
|
||||||
"\n\n -l, --islower: displays 1 if the codepoint refers to a lower-case character, 0 otherwise"
|
"\n\n -l, --islower: displays 1 if the codepoint refers to a lower-case character, 0 otherwise"
|
||||||
"\n -u, --isupper: displays 1 if the codepoint refers to an upper-case character, 0 otherwise"
|
"\n -u, --isupper: displays 1 if the codepoint refers to an upper-case character, 0 otherwise"
|
||||||
"\n -c, --category: determines the category of a codepoint (Letter, Number, Symbol...)"
|
"\n -c, --category: determines the category of a codepoint (Letter, Number, Symbol...)"
|
||||||
@@ -252,7 +257,7 @@ int normalize(int argc, char ** argv)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cout << "Unknown type; valid types are NFC, NFD, NFKC, NFKD and NFKC_Casefold." << endl;
|
cout << _("Unknown type; valid types are NFC, NFD, NFKC, NFKD and NFKC_Casefold.") << endl;
|
||||||
return 41;
|
return 41;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,7 +297,7 @@ int representation(int argc, char ** argv)
|
|||||||
utf8proc_ssize_t nbOfBytesInFirstChar = utf8proc_encode_char(codepoint, firstCharArray);
|
utf8proc_ssize_t nbOfBytesInFirstChar = utf8proc_encode_char(codepoint, firstCharArray);
|
||||||
if (nbOfBytesInFirstChar == 0)
|
if (nbOfBytesInFirstChar == 0)
|
||||||
{
|
{
|
||||||
cout << "No valid bytes at start of input." << endl;
|
cout << _("No valid bytes at start of input.") << endl;
|
||||||
return 51;
|
return 51;
|
||||||
}
|
}
|
||||||
firstCharArray[nbOfBytesInFirstChar] = '\0';
|
firstCharArray[nbOfBytesInFirstChar] = '\0';
|
||||||
@@ -319,7 +324,7 @@ int representation(int argc, char ** argv)
|
|||||||
|
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'p':
|
case 'p':
|
||||||
cout << "Codepoint: " << valueRepresentation(codepoint, 'U') << endl;
|
cout << _("Codepoint: ") << valueRepresentation(codepoint, 'U') << endl;
|
||||||
break;
|
break;
|
||||||
case 'e':
|
case 'e':
|
||||||
cout << "UTF-8: ";
|
cout << "UTF-8: ";
|
||||||
@@ -349,7 +354,7 @@ int representation(int argc, char ** argv)
|
|||||||
cout << endl;
|
cout << endl;
|
||||||
break;
|
break;
|
||||||
case 'b':
|
case 'b':
|
||||||
cout << "Binary: ";
|
cout << _("Binary: ");
|
||||||
for (uint i = 0; i < nbOfBytesInFirstChar; i++)
|
for (uint i = 0; i < nbOfBytesInFirstChar; i++)
|
||||||
{
|
{
|
||||||
cout << valueRepresentation(firstCharArray[i], 2) << " ";
|
cout << valueRepresentation(firstCharArray[i], 2) << " ";
|
||||||
@@ -357,7 +362,7 @@ int representation(int argc, char ** argv)
|
|||||||
cout << endl;
|
cout << endl;
|
||||||
break;
|
break;
|
||||||
case 'o':
|
case 'o':
|
||||||
cout << "Octal: ";
|
cout << _("Octal: ");
|
||||||
for (uint i = 0; i < nbOfBytesInFirstChar; i++)
|
for (uint i = 0; i < nbOfBytesInFirstChar; i++)
|
||||||
{
|
{
|
||||||
cout << valueRepresentation(firstCharArray[i], 8) << " ";
|
cout << valueRepresentation(firstCharArray[i], 8) << " ";
|
||||||
@@ -365,7 +370,7 @@ int representation(int argc, char ** argv)
|
|||||||
cout << endl;
|
cout << endl;
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
cout << "Decimal: ";
|
cout << _("Decimal: ");
|
||||||
for (uint i = 0; i < nbOfBytesInFirstChar; i++)
|
for (uint i = 0; i < nbOfBytesInFirstChar; i++)
|
||||||
{
|
{
|
||||||
cout << valueRepresentation(firstCharArray[i], 10) << " ";
|
cout << valueRepresentation(firstCharArray[i], 10) << " ";
|
||||||
@@ -373,7 +378,7 @@ int representation(int argc, char ** argv)
|
|||||||
cout << endl;
|
cout << endl;
|
||||||
break;
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
cout << "XML decimal: " << valueRepresentation(codepoint, 'x') << endl;
|
cout << _("XML decimal: ") << valueRepresentation(codepoint, 'x') << endl;
|
||||||
break;
|
break;
|
||||||
case 'L':
|
case 'L':
|
||||||
{
|
{
|
||||||
@@ -381,7 +386,7 @@ int representation(int argc, char ** argv)
|
|||||||
utf8proc_uint8_t dst[5];
|
utf8proc_uint8_t dst[5];
|
||||||
utf8proc_ssize_t bytesWritten = utf8proc_encode_char(lowerCodepoint, &dst[0]);
|
utf8proc_ssize_t bytesWritten = utf8proc_encode_char(lowerCodepoint, &dst[0]);
|
||||||
dst[bytesWritten] = '\0';
|
dst[bytesWritten] = '\0';
|
||||||
cout << "To lower: " << (const char*) dst << endl;
|
cout << _("To lower: ") << (const char*) dst << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'U':
|
case 'U':
|
||||||
@@ -390,7 +395,7 @@ int representation(int argc, char ** argv)
|
|||||||
utf8proc_uint8_t dst[5];
|
utf8proc_uint8_t dst[5];
|
||||||
utf8proc_ssize_t bytesWritten = utf8proc_encode_char( upperCodepoint, &dst[0]);
|
utf8proc_ssize_t bytesWritten = utf8proc_encode_char( upperCodepoint, &dst[0]);
|
||||||
dst[bytesWritten] = '\0';
|
dst[bytesWritten] = '\0';
|
||||||
cout << "To upper: " << (const char*) dst << endl;
|
cout << _("To upper: ") << (const char*) dst << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'T':
|
case 'T':
|
||||||
@@ -399,7 +404,7 @@ int representation(int argc, char ** argv)
|
|||||||
utf8proc_uint8_t dst[5];
|
utf8proc_uint8_t dst[5];
|
||||||
utf8proc_ssize_t bytesWritten = utf8proc_encode_char( upperCodepoint, &dst[0]);
|
utf8proc_ssize_t bytesWritten = utf8proc_encode_char( upperCodepoint, &dst[0]);
|
||||||
dst[bytesWritten] = '\0';
|
dst[bytesWritten] = '\0';
|
||||||
cout << "To title: " << (const char*) dst << endl;
|
cout << _("To title: ") << (const char*) dst << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
@@ -412,7 +417,7 @@ int representation(int argc, char ** argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Show the processed character.
|
// Show the processed character.
|
||||||
cout << "Character: " << (const char*) firstCharArray << endl;
|
cout << _("Character: ") << (const char*) firstCharArray << endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,7 +448,7 @@ int properties(int argc, char ** argv)
|
|||||||
utf8proc_ssize_t nbOfBytesInFirstChar = utf8proc_encode_char(codepoint, firstCharArray);
|
utf8proc_ssize_t nbOfBytesInFirstChar = utf8proc_encode_char(codepoint, firstCharArray);
|
||||||
if (nbOfBytesInFirstChar == 0)
|
if (nbOfBytesInFirstChar == 0)
|
||||||
{
|
{
|
||||||
cout << "No valid bytes at start of input." << endl;
|
cout << _("No valid bytes at start of input.") << endl;
|
||||||
return 51;
|
return 51;
|
||||||
}
|
}
|
||||||
firstCharArray[nbOfBytesInFirstChar] = '\0';
|
firstCharArray[nbOfBytesInFirstChar] = '\0';
|
||||||
@@ -466,35 +471,35 @@ int properties(int argc, char ** argv)
|
|||||||
|
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'l':
|
case 'l':
|
||||||
cout << "Is lower: " << utf8proc_islower(codepoint) << endl;
|
cout << _("Is lower: ") << utf8proc_islower(codepoint) << endl;
|
||||||
break;
|
break;
|
||||||
case 'u':
|
case 'u':
|
||||||
cout << "Is upper: " << utf8proc_isupper(codepoint) << endl;
|
cout << _("Is upper: ") << utf8proc_isupper(codepoint) << endl;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
{
|
{
|
||||||
utf8proc_category_t category = utf8proc_category(codepoint);
|
utf8proc_category_t category = utf8proc_category(codepoint);
|
||||||
cout << "Category: [" << utf8proc_category_string(codepoint) << "] ";
|
cout << _("Category: [") << utf8proc_category_string(codepoint) << "] ";
|
||||||
cout << categoryDescription[category] << endl;
|
cout << categoryDescription[category] << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
{
|
{
|
||||||
const utf8proc_property_t * property = utf8proc_get_property(codepoint);
|
const utf8proc_property_t * property = utf8proc_get_property(codepoint);
|
||||||
cout << "Direction: " << bidirectional[property->bidi_class] << endl;
|
cout << _("Direction: ") << bidirectional[property->bidi_class] << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
{
|
{
|
||||||
const utf8proc_property_t * property = utf8proc_get_property(codepoint);
|
const utf8proc_property_t * property = utf8proc_get_property(codepoint);
|
||||||
cout << "Decomposition type: " << decompositionType[property->decomp_type] << endl;
|
cout << _("Decomposition type: ") << decompositionType[property->decomp_type] << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'b':
|
case 'b':
|
||||||
{
|
{
|
||||||
// property->boundclass is 1 (other) on all tested characters.
|
// property->boundclass is 1 (other) on all tested characters.
|
||||||
const utf8proc_property_t * property = utf8proc_get_property(codepoint);
|
const utf8proc_property_t * property = utf8proc_get_property(codepoint);
|
||||||
cout << "Bound class: " << boundClass[property->boundclass] << endl;
|
cout << _("Bound class: ") << boundClass[property->boundclass] << endl;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
@@ -507,107 +512,113 @@ int properties(int argc, char ** argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Show the processed character.
|
// Show the processed character.
|
||||||
cout << "Character: " << (const char*) firstCharArray << endl;
|
cout << _("Character: ") << (const char*) firstCharArray << endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char ** argv)
|
int main(int argc, char ** argv)
|
||||||
{
|
{
|
||||||
categoryDescription[UTF8PROC_CATEGORY_CN] = "Other, not assigned";
|
setlocale (LC_ALL, "");
|
||||||
categoryDescription[UTF8PROC_CATEGORY_LU] = "Letter, uppercase";
|
// TODO: Avoid hardcoding the path
|
||||||
categoryDescription[UTF8PROC_CATEGORY_LL] = "Letter, lowercase";
|
bindtextdomain (_APPNAME_, "/usr/local/share/locale"); // containing <language_code>/LC_MESSAGES/
|
||||||
categoryDescription[UTF8PROC_CATEGORY_LT] = "Letter, titlecase";
|
textdomain (_APPNAME_);
|
||||||
categoryDescription[UTF8PROC_CATEGORY_LM] = "Letter, modifier";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_LO] = "Letter, other";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_MN] = "Mark, nonspacing";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_MC] = "Mark, spacing combining";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_ME] = "Mark, enclosing";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_NL] = "Number, letter";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_NO] = "Number, other";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PC] = "Punctuation, connector";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PD] = "Punctuation, dash";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PS] = "Punctuation, open";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PE] = "Punctuation, close";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PI] = "Punctuation, initial quote";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PF] = "Punctuation, final quote";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_PO] = "Punctuation, other";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_SM] = "Symbol, math";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_SC] = "Symbol, currency";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_SK] = "Symbol, modifier";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_SO] = "Symbol, other";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_ZS] = "Separator, space";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_ZL] = "Separator, line";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_ZP] = "Separator, paragraph";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_CC] = "Other, control";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_CF] = "Other, format";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_CS] = "Other, surrogate";
|
|
||||||
categoryDescription[UTF8PROC_CATEGORY_CO] = "Other, private use";
|
|
||||||
|
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_L] = "Left-to-Right";
|
// Translatable, but we won't do it on our own.
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_LRE] = "Left-to-Right Embedding";
|
categoryDescription[UTF8PROC_CATEGORY_CN] = _("Other, not assigned");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_LRO] = "Left-to-Right Override";
|
categoryDescription[UTF8PROC_CATEGORY_LU] = _("Letter, uppercase");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_R] = "Right-to-Left";
|
categoryDescription[UTF8PROC_CATEGORY_LL] = _("Letter, lowercase");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_AL] = "Right-to-Left Arabic";
|
categoryDescription[UTF8PROC_CATEGORY_LT] = _("Letter, titlecase");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_RLE] = "Right-to-Left Embedding";
|
categoryDescription[UTF8PROC_CATEGORY_LM] = _("Letter, modifier");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_RLO] = "Right-to-Left Override";
|
categoryDescription[UTF8PROC_CATEGORY_LO] = _("Letter, other");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_PDF] = "Pop Directional Format";
|
categoryDescription[UTF8PROC_CATEGORY_MN] = _("Mark, nonspacing");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_EN] = "European Number";
|
categoryDescription[UTF8PROC_CATEGORY_MC] = _("Mark, spacing combining");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_ES] = "European Separator";
|
categoryDescription[UTF8PROC_CATEGORY_ME] = _("Mark, enclosing");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_ET] = "European Number Terminator";
|
categoryDescription[UTF8PROC_CATEGORY_NL] = _("Number, letter");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_AN] = "Arabic Number";
|
categoryDescription[UTF8PROC_CATEGORY_NO] = _("Number, other");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_CS] = "Common Number Separator";
|
categoryDescription[UTF8PROC_CATEGORY_PC] = _("Punctuation, connector");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_NSM] = "Nonspacing Mark";
|
categoryDescription[UTF8PROC_CATEGORY_PD] = _("Punctuation, dash");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_BN] = "Boundary Neutral";
|
categoryDescription[UTF8PROC_CATEGORY_PS] = _("Punctuation, open");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_B] = "Paragraph Separator";
|
categoryDescription[UTF8PROC_CATEGORY_PE] = _("Punctuation, close");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_S] = "Segment Separator";
|
categoryDescription[UTF8PROC_CATEGORY_PI] = _("Punctuation, initial quote");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_WS] = "Whitespace";
|
categoryDescription[UTF8PROC_CATEGORY_PF] = _("Punctuation, final quote");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_ON] = "Other Neutrals";
|
categoryDescription[UTF8PROC_CATEGORY_PO] = _("Punctuation, other");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_LRI] = "Left-to-Right Isolate";
|
categoryDescription[UTF8PROC_CATEGORY_SM] = _("Symbol, math");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_RLI] = "Right-to-Left Isolate";
|
categoryDescription[UTF8PROC_CATEGORY_SC] = _("Symbol, currency");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_FSI] = "First Strong Isolate";
|
categoryDescription[UTF8PROC_CATEGORY_SK] = _("Symbol, modifier");
|
||||||
bidirectional[UTF8PROC_BIDI_CLASS_PDI] = "Pop Directional Isolate";
|
categoryDescription[UTF8PROC_CATEGORY_SO] = _("Symbol, other");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_ZS] = _("Separator, space");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_ZL] = _("Separator, line");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_ZP] = _("Separator, paragraph");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_CC] = _("Other, control");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_CF] = _("Other, format");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_CS] = _("Other, surrogate");
|
||||||
|
categoryDescription[UTF8PROC_CATEGORY_CO] = _("Other, private use");
|
||||||
|
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_L] = _("Left-to-Right");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_LRE] = _("Left-to-Right Embedding");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_LRO] = _("Left-to-Right Override");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_R] = _("Right-to-Left");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_AL] = _("Right-to-Left Arabic");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_RLE] = _("Right-to-Left Embedding");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_RLO] = _("Right-to-Left Override");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_PDF] = _("Pop Directional Format");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_EN] = _("European Number");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_ES] = _("European Separator");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_ET] = _("European Number Terminator");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_AN] = _("Arabic Number");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_CS] = _("Common Number Separator");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_NSM] = _("Nonspacing Mark");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_BN] = _("Boundary Neutral");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_B] = _("Paragraph Separator");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_S] = _("Segment Separator");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_WS] = _("Whitespace");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_ON] = _("Other Neutrals");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_LRI] = _("Left-to-Right Isolate");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_RLI] = _("Right-to-Left Isolate");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_FSI] = _("First Strong Isolate");
|
||||||
|
bidirectional[UTF8PROC_BIDI_CLASS_PDI] = _("Pop Directional Isolate");
|
||||||
|
|
||||||
// Whatever it means! But does it concern decomposed form only?
|
// Whatever it means! But does it concern decomposed form only?
|
||||||
decompositionType[0] = "Unknown"; // property->decomp_type is 0 on all tested characters, decomposed or not.
|
decompositionType[0] = _("Unknown"); // property->decomp_type is 0 on all tested characters, decomposed or not.
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_FONT] = "Font"; // Starts at 1.
|
decompositionType[UTF8PROC_DECOMP_TYPE_FONT] = _("Font"); // Starts at 1.
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_NOBREAK] = "Nobreak";
|
decompositionType[UTF8PROC_DECOMP_TYPE_NOBREAK] = _("Nobreak");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_INITIAL] = "Initial";
|
decompositionType[UTF8PROC_DECOMP_TYPE_INITIAL] = _("Initial");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_MEDIAL] = "Medial";
|
decompositionType[UTF8PROC_DECOMP_TYPE_MEDIAL] = _("Medial");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_FINAL] = "Final";
|
decompositionType[UTF8PROC_DECOMP_TYPE_FINAL] = _("Final");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_ISOLATED] = "Isolated";
|
decompositionType[UTF8PROC_DECOMP_TYPE_ISOLATED] = _("Isolated");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_CIRCLE] = "Circle";
|
decompositionType[UTF8PROC_DECOMP_TYPE_CIRCLE] = _("Circle");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_SUPER] = "Super";
|
decompositionType[UTF8PROC_DECOMP_TYPE_SUPER] = _("Super");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_SUB] = "Sub";
|
decompositionType[UTF8PROC_DECOMP_TYPE_SUB] = _("Sub");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_VERTICAL] = "Vertical";
|
decompositionType[UTF8PROC_DECOMP_TYPE_VERTICAL] = _("Vertical");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_WIDE] = "Wide";
|
decompositionType[UTF8PROC_DECOMP_TYPE_WIDE] = _("Wide");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_NARROW] = "Narrow";
|
decompositionType[UTF8PROC_DECOMP_TYPE_NARROW] = _("Narrow");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_SMALL] = "Small";
|
decompositionType[UTF8PROC_DECOMP_TYPE_SMALL] = _("Small");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_SQUARE] = "Square";
|
decompositionType[UTF8PROC_DECOMP_TYPE_SQUARE] = _("Square");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_FRACTION] = "Fraction";
|
decompositionType[UTF8PROC_DECOMP_TYPE_FRACTION] = _("Fraction");
|
||||||
decompositionType[UTF8PROC_DECOMP_TYPE_COMPAT] = "Compat";
|
decompositionType[UTF8PROC_DECOMP_TYPE_COMPAT] = _("Compat");
|
||||||
|
|
||||||
// Whatever most values mean!
|
// Whatever most values mean!
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_START] = "Start";
|
boundClass[UTF8PROC_BOUNDCLASS_START] = _("Start");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_OTHER] = "Other";
|
boundClass[UTF8PROC_BOUNDCLASS_OTHER] = _("Other");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_CR] = "Cr";
|
boundClass[UTF8PROC_BOUNDCLASS_CR] = _("Cr");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_LF] = "Lf";
|
boundClass[UTF8PROC_BOUNDCLASS_LF] = _("Lf");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_CONTROL] = "Control";
|
boundClass[UTF8PROC_BOUNDCLASS_CONTROL] = _("Control");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_EXTEND] = "Extend";
|
boundClass[UTF8PROC_BOUNDCLASS_EXTEND] = _("Extend");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_L] = "L";
|
boundClass[UTF8PROC_BOUNDCLASS_L] = _("L");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_V] = "V";
|
boundClass[UTF8PROC_BOUNDCLASS_V] = _("V");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_T] = "T";
|
boundClass[UTF8PROC_BOUNDCLASS_T] = _("T");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_LV] = "Lv";
|
boundClass[UTF8PROC_BOUNDCLASS_LV] = _("Lv");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_LVT] = "Lvt";
|
boundClass[UTF8PROC_BOUNDCLASS_LVT] = _("Lvt");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR] = "Regional indicator";
|
boundClass[UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR] = _("Regional indicator");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_SPACINGMARK] = "Spacingmark";
|
boundClass[UTF8PROC_BOUNDCLASS_SPACINGMARK] = _("Spacingmark");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_PREPEND] = "Prepend";
|
boundClass[UTF8PROC_BOUNDCLASS_PREPEND] = _("Prepend");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_ZWJ] = "Zero Width Joiner";
|
boundClass[UTF8PROC_BOUNDCLASS_ZWJ] = _("Zero Width Joiner");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_E_BASE] = "Emoji Base";
|
boundClass[UTF8PROC_BOUNDCLASS_E_BASE] = _("Emoji Base");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_E_MODIFIER] = "Emoji Modifier";
|
boundClass[UTF8PROC_BOUNDCLASS_E_MODIFIER] = _("Emoji Modifier");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ] = "Glue_After_ZWJ";
|
boundClass[UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ] = _("Glue_After_ZWJ");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_E_BASE_GAZ] = "E_BASE + GLUE_AFTER_ZJW";
|
boundClass[UTF8PROC_BOUNDCLASS_E_BASE_GAZ] = _("E_BASE + GLUE_AFTER_ZJW");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC] = "Extended_Pictographic";
|
boundClass[UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC] = _("Extended_Pictographic");
|
||||||
boundClass[UTF8PROC_BOUNDCLASS_E_ZWG] = "UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC + ZWJ";
|
boundClass[UTF8PROC_BOUNDCLASS_E_ZWG] = _("UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC + ZWJ");
|
||||||
|
|
||||||
const char * modeInfo = "A mode of operation is required: unaccent, normalize, representation, properties."
|
const char * modeInfo = "A mode of operation is required: unaccent, normalize, representation, properties."
|
||||||
"\nPass '--help' for more information in each mode.";
|
"\nPass '--help' for more information in each mode.";
|
||||||
|
|||||||
Reference in New Issue
Block a user