Sayonara Player
Language.h
1 /* Language.h */
2 
3 /* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4  *
5  * This file is part of sayonara player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef LANGUAGE_H
22 #define LANGUAGE_H
23 
24 #include <QObject>
25 #include <QList>
26 #include <QMap>
27 #include <QLocale>
28 
33 class LanguageString : public QString
34 {
35 public:
36  LanguageString(const QString& str);
37 
42 
46  LanguageString space() const;
47 
51  LanguageString question() const;
52 
56  LanguageString triplePt() const;
57 
58  LanguageString& operator=(const LanguageString& other);
59 };
60 
65 class Lang :
66  public QObject
67 {
68  Q_OBJECT
69 
70 public:
71 
76  enum Term
77  {
78  About=0,
79  Action,
80  Actions,
81  Activate,
82  Active,
83  Add,
84  AddTab,
85  Album,
86  AlbumArtist,
87  AlbumArtists,
88  Albums,
89  All,
90  Append,
92  Apply,
93  Artist,
94  Artists,
95  Ascending,
96  Automatic,
97  Bitrate,
98  Bookmarks,
99  Broadcast,
100  By,
101  Cancel,
102  CannotFindLame,
103  Comment,
104  Continue,
105  Covers,
106  Clear,
107  ClearSelection,
108  Close,
109  CloseOthers,
110  CloseTab,
111  CreateDirectory,
112  Created,
113  CreateNewLibrary,
114  DarkMode,
115  Date,
116  Days,
117  DaysShort,
118  Default,
119  Delete,
120  Descending,
121  Directory,
122  Directories,
123  Disc,
124  Duration,
125  DurationShort,
126  DynamicPlayback,
127  Edit,
128  EmptyInput,
129  EnterName,
130  EnterNewName,
131  EnterUrl,
132  Entries,
133  Entry,
134  Error,
135  Fast,
136  File,
137  Filename,
138  Files,
139  Filesize,
140  Filetype,
141  Filter,
142  First,
143  Font,
144  Fonts,
145  Fulltext,
146  GaplessPlayback,
147  Genre,
148  Genres,
149  Hide,
150  Hours,
151  HoursShort,
152  ImportDir,
153  ImportFiles,
154  Inactive,
155  Info,
156  InvalidChars,
157  Key_Find,
158  Key_Delete,
159  Key_Escape,
160  Key_Control,
161  Key_Alt,
162  Key_Shift,
163  Key_Backspace,
164  Key_Tab,
165  Library,
166  LibraryPath,
167  LibraryView,
168  Listen,
169  LiveSearch,
170  Loading,
171  LoadingArg,
172  Logger,
173  Lyrics,
174  Menu,
175  Minimize,
176  Minutes,
177  MinutesShort,
178  Missing,
179  Modified,
180  Months,
181  MoveDown,
182  MoveUp,
183  MuteOn,
184  MuteOff,
185  Name,
186  New,
187  NextPage,
188  NextTrack,
189  No,
190  NoAlbums,
191  NumTracks,
192  OK,
193  On,
194  Open,
195  OpenDir,
196  OpenFile,
197  Or,
198  Overwrite,
199  Pause,
200  Play,
201  PlayingTime,
202  PlayInNewTab,
203  Playlist,
204  Playlists,
205  PlayNext,
206  PlayPause,
207  Plugin,
208  Podcasts,
209  Preferences,
210  PreviousPage,
211  PreviousTrack,
212  PurchaseUrl,
213  Quit,
214  Radio,
215  RadioStation,
216  Rating,
217  Really,
218  Refresh,
219  ReloadLibrary,
220  Remove,
221  Rename,
222  Repeat1,
223  RepeatAll,
224  Replace,
225  Reset,
226  Retry,
227  ReverseOrder,
228  Sampler,
229  Save,
230  SaveAs,
231  SaveToFile,
232  ScanForFiles,
233  SearchNoun,
234  SearchVerb,
235  SearchNext,
236  SearchPrev,
237  Second,
238  Seconds,
239  SecondsShort,
240  SeekForward,
241  SeekBackward,
242  Show,
243  ShowAlbumArtists,
244  ShowCovers,
245  ShowLibrary,
246  Shuffle,
247  Shutdown,
248  SimilarArtists,
249  SortBy,
250  Stop,
251  Streams,
252  StreamUrl,
253  Success,
254  Th,
255  Third,
256  Title,
257  Track,
258  TrackOn,
259  TrackNo,
260  Tracks,
261  Tree,
262  Undo,
263  UnknownAlbum,
264  UnknownArtist,
265  UnknownTitle,
266  UnknownGenre,
267  UnknownYear,
268  UnknownPlaceholder,
269  Various,
270  VariousAlbums,
271  VariousArtists,
272  VariousTracks,
273  Version,
274  VolumeDown,
275  VolumeUp,
276  Warning,
277  Weeks,
278  Year,
279  Years,
280  Yes,
281  Zoom,
282  NUMBER_OF_LANGUAGE_KEYS
283  };
284 
285  enum TermNr
286  {
287  NrDirectories=0,
288  NrFiles,
289  NrPlaylists,
290  NrTracks,
291  NrTracksFound,
292  NUMBER_OF_LANGUAGE_PARAM_KEYS
293  };
294 
295 
296 public:
297  Lang();
298  ~Lang();
299 
306  static LanguageString get(Lang::Term term, bool* ok=nullptr);
307 
308  static LanguageString getWithNumber(Lang::TermNr term, int param, bool* ok=nullptr);
309 
315  static QString convertOldLanguage(const QString& oldLang);
316 
317 
324 
330  static QString twoLetter(const QString& languageName);
331 
337  static QString fourLetter(const QString& languageName);
338 };
339 
340 #endif // LANGUAGE_H
The Logger class.
Definition: Logger.h:60
The LanguageString class.
Definition: Language.h:33
static QString fourLetter(const QString &languageName)
Returns the four letter representation of a language.
static QString twoLetter(const QString &languageName)
Returns the two letter representation of a language.
static QMap< QString, QLocale > availableLanguages()
Returns all languages located in user path and all languages in sayonara path.
LanguageString space() const
appends a space
static QString convertOldLanguage(const QString &oldLang)
Converts two letter into four letter.
LanguageString triplePt() const
Appends triple points.
Definition: Application.h:30
Definition: RadioStation.h:35
Term
An enum for the most common translation files. use with Lang::get()
Definition: Language.h:76
The Lang class.
Definition: Language.h:65
Definition: Genre.h:30
The Album class.
Definition: Album.h:39
An interface class needed when implementing a library plugin.
Definition: LocalLibraryWatcher.h:30
The Artist class.
Definition: Artist.h:36
LanguageString question() const
appends question mark
static LanguageString get(Lang::Term term, bool *ok=nullptr)
Fetch translation by enum.
LanguageString toFirstUpper() const
Convert first character to upper case and rest to lower case.
The Bookmarks logic class.
Definition: Bookmarks.h:36
Definition: org_mpris_media_player2_adaptor.h:21