Krita Source Code Documentation
Loading...
Searching...
No Matches
KoWritingSystemUtils::Bcp47Locale Struct Reference

The Bcp47Locale class This holds a parsed BCP47 locale. QLocale is primarily made for POSIX locale format, and even there ignores the @modifier tag. On top of that, many minority languages are not handled by QLocale. To keep track of that extra data we use this BCP Locale struct. More...

#include <KoWritingSystemUtils.h>

Public Member Functions

bool isValid () const
 
QString toPosixLocaleFormat () const
 
QString toString () const
 

Public Attributes

QStringList extensionTags
 
QStringList languageTags
 
QStringList privateUseTags
 
QString regionTag
 
QString scriptTag
 
QStringList variantTags
 

Detailed Description

The Bcp47Locale class This holds a parsed BCP47 locale. QLocale is primarily made for POSIX locale format, and even there ignores the @modifier tag. On top of that, many minority languages are not handled by QLocale. To keep track of that extra data we use this BCP Locale struct.

See also
ietf rfc5646

Definition at line 50 of file KoWritingSystemUtils.h.

Member Function Documentation

◆ isValid()

bool KoWritingSystemUtils::Bcp47Locale::isValid ( ) const

Definition at line 540 of file KoWritingSystemUtils.cpp.

541{
542 return !languageTags.isEmpty() && !languageTags.first().isEmpty();
543}

References languageTags.

◆ toPosixLocaleFormat()

QString KoWritingSystemUtils::Bcp47Locale::toPosixLocaleFormat ( ) const

Definition at line 545 of file KoWritingSystemUtils.cpp.

546{
547 // A Posix locale format is "language[_script][_territory][.codeset][@modifier]".
548
549 if (!isValid()) return QString();
550
551 QString posix;
552
553 posix = languageTags.first();
554
555 if (!scriptTag.isEmpty() && scriptTag.size() == 4) {
556 posix.append("_");
557 // Title case.
558 posix.append(scriptTag);
559 }
560
561 if (!regionTag.isEmpty()) {
562 posix.append("_");
563 posix.append(regionTag.toUpper());
564 }
565
566 // Not writing @modifier for now...
567
568 return posix;
569}

◆ toString()

QString KoWritingSystemUtils::Bcp47Locale::toString ( ) const

Definition at line 571 of file KoWritingSystemUtils.cpp.

572{
573 QStringList total;
574
575 total.append(languageTags);
576 if (!scriptTag.isEmpty()) {
577 total.append(scriptTag);
578 }
579 if (!regionTag.isEmpty()) {
580 total.append(regionTag);
581 }
582 total.append(variantTags);
583 total.append(extensionTags);
584 total.append(privateUseTags);
585
586 return total.join("-");
587}

Member Data Documentation

◆ extensionTags

QStringList KoWritingSystemUtils::Bcp47Locale::extensionTags

Definition at line 55 of file KoWritingSystemUtils.h.

◆ languageTags

QStringList KoWritingSystemUtils::Bcp47Locale::languageTags

Definition at line 51 of file KoWritingSystemUtils.h.

◆ privateUseTags

QStringList KoWritingSystemUtils::Bcp47Locale::privateUseTags

Definition at line 56 of file KoWritingSystemUtils.h.

◆ regionTag

QString KoWritingSystemUtils::Bcp47Locale::regionTag

Definition at line 53 of file KoWritingSystemUtils.h.

◆ scriptTag

QString KoWritingSystemUtils::Bcp47Locale::scriptTag

Definition at line 52 of file KoWritingSystemUtils.h.

◆ variantTags

QStringList KoWritingSystemUtils::Bcp47Locale::variantTags

Definition at line 54 of file KoWritingSystemUtils.h.


The documentation for this struct was generated from the following files: