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 
47 
52 
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  AddArtist,
85  AddTab,
86  Album,
87  AlbumArtist,
88  AlbumArtists,
89  Albums,
90  All,
91  Append,
93  Apply,
94  Artist,
95  Artists,
96  Ascending,
97  Automatic,
98  Bitrate,
99  Bookmarks,
100  Broadcast,
101  By,
102  Cancel,
103  CannotFindLame,
104  Comment,
105  Continue,
106  Covers,
107  Clear,
108  ClearSelection,
109  Close,
110  CloseOthers,
111  CloseTab,
112  CreateDirectory,
113  Created,
114  CreateNewLibrary,
115  DarkMode,
116  Date,
117  Days,
118  DaysShort,
119  Default,
120  Delete,
121  Descending,
122  Directory,
123  Directories,
124  Disc,
125  Duration,
126  DurationShort,
127  DynamicPlayback,
128  Edit,
129  EmptyInput,
130  EnterName,
131  EnterNewName,
132  EnterUrl,
133  Entries,
134  Entry,
135  Error,
136  Fast,
137  File,
138  Filename,
139  Files,
140  Filesize,
141  Filetype,
142  Filter,
143  First,
144  Font,
145  Fonts,
146  Fulltext,
147  GaplessPlayback,
148  GB,
149  Genre,
150  Genres,
151  Hide,
152  Hours,
153  HoursShort,
154  ImportDir,
155  ImportFiles,
156  Inactive,
157  Info,
158  InvalidChars,
159  KB,
160  Key_Find,
161  Key_Delete,
162  Key_Escape,
163  Key_Control,
164  Key_Alt,
165  Key_Shift,
166  Key_Backspace,
167  Key_Tab,
168  Library,
169  LibraryPath,
170  LibraryView,
171  Listen,
172  LiveSearch,
173  Loading,
174  LoadingArg,
175  Logger,
176  LogLevel,
177  Lyrics,
178  MB,
179  Menu,
180  Minimize,
181  Minutes,
182  MinutesShort,
183  Missing,
184  Modified,
185  Months,
186  MoveDown,
187  MoveUp,
188  MuteOn,
189  MuteOff,
190  Name,
191  New,
192  NextPage,
193  NextTrack,
194  No,
195  NoAlbums,
196  NumTracks,
197  OK,
198  On,
199  Open,
200  OpenDir,
201  OpenFile,
202  Or,
203  Overwrite,
204  Pause,
205  Play,
206  PlayingTime,
207  PlayInNewTab,
208  Playlist,
209  Playlists,
210  PlayNext,
211  PlayPause,
212  Plugin,
213  Podcasts,
214  Preferences,
215  PreviousPage,
216  PreviousTrack,
217  PurchaseUrl,
218  Quit,
219  Radio,
220  RadioStation,
221  Rating,
222  Really,
223  Refresh,
224  ReloadLibrary,
225  Remove,
226  Rename,
227  Repeat1,
228  RepeatAll,
229  Replace,
230  Reset,
231  Retry,
232  ReverseOrder,
233  Sampler,
234  Save,
235  SaveAs,
236  SaveToFile,
237  ScanForFiles,
238  SearchNoun,
239  SearchVerb,
240  SearchNext,
241  SearchPrev,
242  Second,
243  Seconds,
244  SecondsShort,
245  SeekForward,
246  SeekBackward,
247  Show,
248  ShowAlbumArtists,
249  ShowCovers,
250  ShowLibrary,
251  Shuffle,
252  Shutdown,
253  SimilarArtists,
254  SortBy,
255  Stop,
256  Streams,
257  StreamUrl,
258  Success,
259  Th,
260  Third,
261  Title,
262  Track,
263  TrackOn,
264  TrackNo,
265  Tracks,
266  Tree,
267  Undo,
268  UnknownAlbum,
269  UnknownArtist,
270  UnknownTitle,
271  UnknownGenre,
272  UnknownYear,
273  UnknownPlaceholder,
274  Various,
275  VariousAlbums,
276  VariousArtists,
277  VariousTracks,
278  Version,
279  VolumeDown,
280  VolumeUp,
281  Warning,
282  Weeks,
283  Year,
284  Years,
285  Yes,
286  Zoom,
287  NUMBER_OF_LANGUAGE_KEYS
288  };
289 
290  enum TermNr
291  {
292  NrDirectories=0,
293  NrFiles,
294  NrPlaylists,
295  NrTracks,
296  NrTracksFound,
297  NUMBER_OF_LANGUAGE_PARAM_KEYS
298  };
299 
300 
301 public:
302  Lang();
303  ~Lang();
304 
311  static LanguageString get(Lang::Term term, bool* ok=nullptr);
312 
313  static LanguageString getWithNumber(Lang::TermNr term, int param, bool* ok=nullptr);
314 
320  static QString convertOldLanguage(const QString& oldLang);
321 
322 
329 
335  static QString twoLetter(const QString& languageName);
336 
342  static QString fourLetter(const QString& languageName);
343 };
344 
345 #endif // LANGUAGE_H
LanguageString::question
LanguageString question() const
appends question mark
LanguageString::triplePt
LanguageString triplePt() const
Appends triple points.
Lang
The Lang class.
Definition: Language.h:67
Genre
Definition: Genre.h:31
Album
The Album class.
Definition: Album.h:41
Application
Definition: Application.h:32
LanguageString::space
LanguageString space() const
appends a space
Lang::convertOldLanguage
static QString convertOldLanguage(const QString &oldLang)
Converts two letter into four letter.
QMap
Definition: org_mpris_media_player2_adaptor.h:21
Lang::Term
Term
An enum for the most common translation files. use with Lang::get()
Definition: Language.h:77
RadioStation
Definition: RadioStation.h:36
LanguageString
The LanguageString class.
Definition: Language.h:34
Library
An interface class needed when implementing a library plugin.
Definition: LocalLibraryWatcher.h:31
LanguageString::toFirstUpper
LanguageString toFirstUpper() const
Convert first character to upper case and rest to lower case.
Artist
The Artist class.
Definition: Artist.h:38
Lang::twoLetter
static QString twoLetter(const QString &languageName)
Returns the two letter representation of a language.
Bookmarks
The Bookmarks logic class.
Definition: Bookmarks.h:38
Lang::fourLetter
static QString fourLetter(const QString &languageName)
Returns the four letter representation of a language.
Lang::get
static LanguageString get(Lang::Term term, bool *ok=nullptr)
Fetch translation by enum.
Logger
The Logger class.
Definition: Logger.h:61
Lang::availableLanguages
static QMap< QString, QLocale > availableLanguages()
Returns all languages located in user path and all languages in sayonara path.