File indexing completed on 2024-05-12 04:42:18
0001 /* 0002 SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #ifndef OSM_LANGUAGES_H 0007 #define OSM_LANGUAGES_H 0008 0009 #include "kosm_export.h" 0010 0011 #include <string> 0012 #include <vector> 0013 0014 class QLocale; 0015 0016 namespace OSM { 0017 0018 /** Languages in preference order to consider when looking up 0019 * translated tag values. 0020 * @see https://wiki.openstreetmap.org/wiki/Multilingual_names 0021 * @see https://wiki.openstreetmap.org/wiki/Key:name#Variants 0022 * @see https://wiki.openstreetmap.org/wiki/Names#Localization 0023 */ 0024 class Languages 0025 { 0026 public: 0027 explicit Languages() = default; 0028 Languages(Languages&&) noexcept = default; 0029 Languages(const Languages&) = delete; 0030 ~Languages() = default; 0031 Languages& operator=(Languages&&) = default; 0032 Languages& operator=(const Languages&) = delete; 0033 0034 /** Convert QLocale::uiLanguages() into an OSM::Languages set. 0035 * The result should be cached in case of repeated use, 0036 * QLocale::uiLanguages() is relatively expensive. 0037 */ 0038 [[nodiscard]] KOSM_EXPORT static Languages fromQLocale(const QLocale &locale); 0039 0040 std::vector<std::string> languages; 0041 }; 0042 0043 } 0044 0045 #endif