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 559 of file KoWritingSystemUtils.cpp.

560{
561 return !languageTags.isEmpty() && !languageTags.first().isEmpty();
562}

References languageTags.

◆ toPosixLocaleFormat()

QString KoWritingSystemUtils::Bcp47Locale::toPosixLocaleFormat ( ) const

Definition at line 564 of file KoWritingSystemUtils.cpp.

565{
566 // A Posix locale format is "language[_script][_territory][.codeset][@modifier]".
567
568 if (!isValid()) return QString();
569
570 QString posix;
571
572 posix = languageTags.first();
573
574 if (!scriptTag.isEmpty() && scriptTag.size() == 4) {
575 posix.append("_");
576 // Title case.
577 posix.append(scriptTag);
578 }
579
580 if (!regionTag.isEmpty()) {
581 posix.append("_");
582 posix.append(regionTag.toUpper());
583 }
584
585 // Not writing @modifier for now...
586
587 return posix;
588}

◆ toString()

QString KoWritingSystemUtils::Bcp47Locale::toString ( ) const

Definition at line 590 of file KoWritingSystemUtils.cpp.

591{
592 QStringList total;
593
594 total.append(languageTags);
595 if (!scriptTag.isEmpty()) {
596 total.append(scriptTag);
597 }
598 if (!regionTag.isEmpty()) {
599 total.append(regionTag);
600 }
601 total.append(variantTags);
602 total.append(extensionTags);
603 total.append(privateUseTags);
604
605 return total.join("-");
606}

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: