Add removeDiacritics function to CalamaresUtils.
This commit is contained in:
parent
f21da0035d
commit
6295f48ab7
@ -157,4 +157,50 @@ installTranslator( QObject* parent )
|
||||
QCoreApplication::installTranslator( translator );
|
||||
}
|
||||
|
||||
|
||||
QString
|
||||
removeDiacritics( const QString& string )
|
||||
{
|
||||
const QString diacriticLetters = QString::fromUtf8(
|
||||
"ŠŒŽšœžŸ¥µÀ"
|
||||
"ÁÂÃÄÅÆÇÈÉÊ"
|
||||
"ËÌÍÎÏÐÑÒÓÔ"
|
||||
"ÕÖØÙÚÛÜÝßà"
|
||||
"áâãäåæçèéê"
|
||||
"ëìíîïðñòóô"
|
||||
"õöøùúûüýÿÞ"
|
||||
"þČčĆćĐ𩹮"
|
||||
"ž"
|
||||
);
|
||||
const QStringList noDiacriticLetters = {
|
||||
"S", "OE", "Z", "s", "oe", "z", "Y", "Y", "u", "A",
|
||||
"A", "A", "A", "A", "A", "AE", "C", "E", "E", "E",
|
||||
"E", "I", "I", "I", "I", "DH", "N", "O", "O", "O",
|
||||
"O", "O", "O", "U", "U", "U", "U", "Y", "s", "a",
|
||||
"a", "a", "a", "a", "a", "ae", "c", "e", "e", "e",
|
||||
"e", "i", "i", "i", "i", "dh", "n", "o", "o", "o",
|
||||
"o", "o", "o", "u", "u", "u", "u", "y", "y", "TH",
|
||||
"th", "C", "c", "C", "c", "DJ", "dj", "S", "s", "Z",
|
||||
"z"
|
||||
};
|
||||
|
||||
QString output;
|
||||
foreach ( QChar c, string )
|
||||
{
|
||||
int i = diacriticLetters.indexOf( c );
|
||||
if ( i < 0 )
|
||||
{
|
||||
output.append( c );
|
||||
}
|
||||
else
|
||||
{
|
||||
QString replacement = noDiacriticLetters[ i ];
|
||||
output.append( replacement );
|
||||
}
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -41,6 +41,8 @@ namespace CalamaresUtils
|
||||
*/
|
||||
DLLEXPORT void setAppDataDir( const QDir& dir );
|
||||
DLLEXPORT bool isAppDataDirOverridden();
|
||||
|
||||
DLLEXPORT QString removeDiacritics( const QString& string );
|
||||
}
|
||||
|
||||
#endif // CALAMARESUTILS_H
|
||||
|
Loading…
Reference in New Issue
Block a user