Merge branch 'development' of github.com:jeffvli/feishin into development
This commit is contained in:
commit
73c6ddd116
4 changed files with 48 additions and 27 deletions
|
@ -1,4 +1,4 @@
|
||||||
import { PostProcessorModule } from 'i18next';
|
import { PostProcessorModule, TOptions, StringMap } from 'i18next';
|
||||||
import i18n from 'i18next';
|
import i18n from 'i18next';
|
||||||
import { initReactI18next } from 'react-i18next';
|
import { initReactI18next } from 'react-i18next';
|
||||||
import en from './locales/en.json';
|
import en from './locales/en.json';
|
||||||
|
@ -125,16 +125,18 @@ const titleCasePostProcessor: PostProcessorModule = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const ignoreSentenceCaseLanguages = ['de']
|
||||||
|
|
||||||
const sentenceCasePostProcessor: PostProcessorModule = {
|
const sentenceCasePostProcessor: PostProcessorModule = {
|
||||||
type: 'postProcessor',
|
type: 'postProcessor',
|
||||||
name: 'sentenceCase',
|
name: 'sentenceCase',
|
||||||
process: (value: string) => {
|
process: (value: string, _key: string, _options: TOptions<StringMap>, translator: any) => {
|
||||||
const sentences = value.split('. ');
|
const sentences = value.split('. ');
|
||||||
|
|
||||||
return sentences
|
return sentences
|
||||||
.map((sentence) => {
|
.map((sentence) => {
|
||||||
return (
|
return (
|
||||||
sentence.charAt(0).toLocaleUpperCase() + sentence.slice(1).toLocaleLowerCase()
|
sentence.charAt(0).toLocaleUpperCase() + (!ignoreSentenceCaseLanguages.includes(translator.language) ? sentence.slice(1).toLocaleLowerCase() : sentence.slice(1))
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.join('. ');
|
.join('. ');
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
"deletePlaylist": "löschen $t(entity.playlist_one)",
|
"deletePlaylist": "löschen $t(entity.playlist_one)",
|
||||||
"deselectAll": "Alle abwählen",
|
"deselectAll": "Alle abwählen",
|
||||||
"goToPage": "Gehe zur Seite",
|
"goToPage": "Gehe zur Seite",
|
||||||
"moveToTop": "Nach Oben",
|
"moveToTop": "Nach oben",
|
||||||
"moveToBottom": "Nach Unten",
|
"moveToBottom": "Nach unten",
|
||||||
"removeFromPlaylist": "Entfernen von $t(entity.playlist_one)",
|
"removeFromPlaylist": "Entfernen von $t(entity.playlist_one)",
|
||||||
"viewPlaylists": "Ansicht $t(entity.playlist_other)",
|
"viewPlaylists": "Ansicht $t(entity.playlist_other)",
|
||||||
"refresh": "$t(common.refresh)",
|
"refresh": "$t(common.refresh)",
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
"increase": "erhöhen",
|
"increase": "erhöhen",
|
||||||
"rating": "Wertung",
|
"rating": "Wertung",
|
||||||
"bpm": "bpm",
|
"bpm": "bpm",
|
||||||
"refresh": "erneuern",
|
"refresh": "Aktualisieren",
|
||||||
"unknown": "Unbekannt",
|
"unknown": "Unbekannt",
|
||||||
"areYouSure": "Bist Du sicher?",
|
"areYouSure": "Bist Du sicher?",
|
||||||
"edit": "Bearbeiten",
|
"edit": "Bearbeiten",
|
||||||
|
@ -61,7 +61,8 @@
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"forceRestartRequired": "Neustarten um die Änderungen zu übernehmen... Schließe die Benachrichtigung zum Neustarten",
|
"forceRestartRequired": "Neustarten um die Änderungen zu übernehmen... Schließe die Benachrichtigung zum Neustarten",
|
||||||
"setting": "Einstellung",
|
"setting": "Einstellungen",
|
||||||
|
"setting_other": "Einstellungen",
|
||||||
"version": "Version",
|
"version": "Version",
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"filter_one": "Filter",
|
"filter_one": "Filter",
|
||||||
|
@ -84,7 +85,7 @@
|
||||||
"sortOrder": "Reihenfolge",
|
"sortOrder": "Reihenfolge",
|
||||||
"none": "keine",
|
"none": "keine",
|
||||||
"menu": "Menü",
|
"menu": "Menü",
|
||||||
"restartRequired": "Neustart benötigt",
|
"restartRequired": "(Neustart benötigt)",
|
||||||
"previousSong": "vorheriger $t(entity.track_one)",
|
"previousSong": "vorheriger $t(entity.track_one)",
|
||||||
"noResultsFromQuery": "Die Abfrage brachte keine Ergebnisse",
|
"noResultsFromQuery": "Die Abfrage brachte keine Ergebnisse",
|
||||||
"quit": "Verlassen",
|
"quit": "Verlassen",
|
||||||
|
@ -224,12 +225,12 @@
|
||||||
"artist_other": "Interpreten",
|
"artist_other": "Interpreten",
|
||||||
"folderWithCount_one": "{{count}} Verzeichnis",
|
"folderWithCount_one": "{{count}} Verzeichnis",
|
||||||
"folderWithCount_other": "{{count}} Verzeichnisse",
|
"folderWithCount_other": "{{count}} Verzeichnisse",
|
||||||
"albumArtist_one": "Album Interpret",
|
"albumArtist_one": "Albuminterpret",
|
||||||
"albumArtist_other": "Album Interpreten",
|
"albumArtist_other": "Albuminterpreten",
|
||||||
"track_one": "Track",
|
"track_one": "Track",
|
||||||
"track_other": "Tracks",
|
"track_other": "Tracks",
|
||||||
"albumArtistCount_one": "{{count}} Album Interpret",
|
"albumArtistCount_one": "{{count}} Albuminterpret",
|
||||||
"albumArtistCount_other": "{{count}} Album Interpreten",
|
"albumArtistCount_other": "{{count}} Albuminterpreten",
|
||||||
"albumWithCount_one": "{{count}} Album",
|
"albumWithCount_one": "{{count}} Album",
|
||||||
"albumWithCount_other": "{{count}} Alben",
|
"albumWithCount_other": "{{count}} Alben",
|
||||||
"favorite_one": "Favorit",
|
"favorite_one": "Favorit",
|
||||||
|
@ -272,12 +273,12 @@
|
||||||
"synchronized": "synchronisiert",
|
"synchronized": "synchronisiert",
|
||||||
"followCurrentLyric": "dem Songtext folgen",
|
"followCurrentLyric": "dem Songtext folgen",
|
||||||
"opacity": "Deckkraft",
|
"opacity": "Deckkraft",
|
||||||
"lyricSize": "Songtext Größe",
|
"lyricSize": "Songtext-Größe",
|
||||||
"showLyricProvider": "Songtext-Anbieter anzeigen",
|
"showLyricProvider": "Songtext-Anbieter anzeigen",
|
||||||
"unsynchronized": "nicht synchronisiert",
|
"unsynchronized": "nicht synchronisiert",
|
||||||
"lyricAlignment": "Songtext Ausrichtung",
|
"lyricAlignment": "Songtext-Ausrichtung",
|
||||||
"useImageAspectRatio": "Bildseitenverhältnis verwenden",
|
"useImageAspectRatio": "Bildseitenverhältnis verwenden",
|
||||||
"lyricGap": "Songtext Lücke"
|
"lyricGap": "Songtext-Lücke"
|
||||||
},
|
},
|
||||||
"upNext": "als nächstes",
|
"upNext": "als nächstes",
|
||||||
"lyrics": "Songtexte",
|
"lyrics": "Songtexte",
|
||||||
|
@ -289,7 +290,7 @@
|
||||||
"manageServers": "Server verwalten",
|
"manageServers": "Server verwalten",
|
||||||
"expandSidebar": "Seitenleiste erweitern",
|
"expandSidebar": "Seitenleiste erweitern",
|
||||||
"collapseSidebar": "Seitenleiste einklappen",
|
"collapseSidebar": "Seitenleiste einklappen",
|
||||||
"openBrowserDevtools": "Browser Entwicklungswerkzeuge öffnen",
|
"openBrowserDevtools": "Browser-Entwicklungswerkzeuge öffnen",
|
||||||
"goBack": "Gehe zurück",
|
"goBack": "Gehe zurück",
|
||||||
"goForward": "Gehe vorwärts",
|
"goForward": "Gehe vorwärts",
|
||||||
"settings": "$t(common.setting_other)",
|
"settings": "$t(common.setting_other)",
|
||||||
|
@ -298,7 +299,7 @@
|
||||||
"home": {
|
"home": {
|
||||||
"mostPlayed": "Meistgespielt",
|
"mostPlayed": "Meistgespielt",
|
||||||
"newlyAdded": "Neu hinzugefügte Veröffentlichungen",
|
"newlyAdded": "Neu hinzugefügte Veröffentlichungen",
|
||||||
"explore": "Entdecken Sie Ihre Bibliothek",
|
"explore": "Entdecke deine Bibliothek",
|
||||||
"recentlyPlayed": "Kürzlich gespielt",
|
"recentlyPlayed": "Kürzlich gespielt",
|
||||||
"title": "$t(common.home)"
|
"title": "$t(common.home)"
|
||||||
},
|
},
|
||||||
|
@ -431,7 +432,7 @@
|
||||||
"sidebarCollapsedNavigation_description": "Zeigt die Navigation in der minimierten Seitenleiste an oder verbirgt sie",
|
"sidebarCollapsedNavigation_description": "Zeigt die Navigation in der minimierten Seitenleiste an oder verbirgt sie",
|
||||||
"mpvExecutablePath_help": "eine pro Zeile",
|
"mpvExecutablePath_help": "eine pro Zeile",
|
||||||
"hotkey_volumeUp": "Lauter",
|
"hotkey_volumeUp": "Lauter",
|
||||||
"skipDuration": "Sprung Dauer",
|
"skipDuration": "Sprungdauer",
|
||||||
"showSkipButtons": "Schaltflächen zum Überspringen anzeigen",
|
"showSkipButtons": "Schaltflächen zum Überspringen anzeigen",
|
||||||
"playButtonBehavior_optionPlay": "$t(player.play)",
|
"playButtonBehavior_optionPlay": "$t(player.play)",
|
||||||
"minimumScrobblePercentage": "minimale Scrobble-Dauer (Prozentsatz)",
|
"minimumScrobblePercentage": "minimale Scrobble-Dauer (Prozentsatz)",
|
||||||
|
@ -495,7 +496,7 @@
|
||||||
"savePlayQueue": "Wiedergabe-Warteschlange speichern",
|
"savePlayQueue": "Wiedergabe-Warteschlange speichern",
|
||||||
"minimumScrobbleSeconds_description": "die Mindestdauer in Sekunden, die das Lied abspielen muss, bevor es gescrobbelt wird",
|
"minimumScrobbleSeconds_description": "die Mindestdauer in Sekunden, die das Lied abspielen muss, bevor es gescrobbelt wird",
|
||||||
"skipPlaylistPage_description": "Gehen Sie beim Navigieren zu einer Wiedergabeliste zur Titelseite der Wiedergabeliste und nicht zur Standardseite",
|
"skipPlaylistPage_description": "Gehen Sie beim Navigieren zu einer Wiedergabeliste zur Titelseite der Wiedergabeliste und nicht zur Standardseite",
|
||||||
"fontType_description": "Die integrierte Schriftart wählt eine der von Feishin bereitgestellten Schriftarten aus. Mit der Systemschriftart können Sie jede von Ihrem Betriebssystem bereitgestellte Schriftart auswählen. Benutzerdefiniert erlaubt es eine eigene Schriftart bereitstellen",
|
"fontType_description": "Die integrierte Schriftart wählt eine der von Feishin bereitgestellten Schriftarten aus. Mit der Systemschriftart können Sie jede von Ihrem Betriebssystem bereitgestellte Schriftart auswählen. Benutzerdefiniert erlaubt es eine eigene Schriftart bereitzustellen",
|
||||||
"playButtonBehavior": "Verhalten der Wiedergabetaste",
|
"playButtonBehavior": "Verhalten der Wiedergabetaste",
|
||||||
"volumeWheelStep": "Lautstärkeregler Stufe",
|
"volumeWheelStep": "Lautstärkeregler Stufe",
|
||||||
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Playlisten-Liste in der Seitenleiste",
|
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Playlisten-Liste in der Seitenleiste",
|
||||||
|
@ -510,7 +511,7 @@
|
||||||
"sidebarConfiguration_description": "Wählen Sie die Elemente und die Reihenfolge aus, in der sie in der Seitenleiste angezeigt werden",
|
"sidebarConfiguration_description": "Wählen Sie die Elemente und die Reihenfolge aus, in der sie in der Seitenleiste angezeigt werden",
|
||||||
"remotePort": "Port des Fernsteuerungsserver",
|
"remotePort": "Port des Fernsteuerungsserver",
|
||||||
"hotkey_playbackNext": "Nächster Track",
|
"hotkey_playbackNext": "Nächster Track",
|
||||||
"useSystemTheme_description": "der systemdefinierten Hell oder Dunkel Präferenz folgen",
|
"useSystemTheme_description": "der systemdefinierten Hell- oder Dunkelpräferenz folgen",
|
||||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||||
"lyricFetch_description": "Songtexte aus verschiedenen Internetquellen abrufen",
|
"lyricFetch_description": "Songtexte aus verschiedenen Internetquellen abrufen",
|
||||||
"lyricFetchProvider_description": "Wählen Sie die Anbieter aus, von denen Sie Liedtexte abrufen möchten. Die Reihenfolge der Anbieter ist die Reihenfolge, in der sie abgefragt werden",
|
"lyricFetchProvider_description": "Wählen Sie die Anbieter aus, von denen Sie Liedtexte abrufen möchten. Die Reihenfolge der Anbieter ist die Reihenfolge, in der sie abgefragt werden",
|
||||||
|
|
|
@ -317,9 +317,9 @@ const createWindow = async () => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const globalMediaKeysEnabled = store.get('global_media_hotkeys') as boolean;
|
const globalMediaKeysEnabled = store.get('global_media_hotkeys', true) as boolean;
|
||||||
|
|
||||||
if (globalMediaKeysEnabled !== false) {
|
if (globalMediaKeysEnabled) {
|
||||||
enableMediaKeys(mainWindow);
|
enableMediaKeys(mainWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -633,7 +633,7 @@ ipcMain.on(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const globalMediaKeysEnabled = store.get('global_media_hotkeys') as boolean;
|
const globalMediaKeysEnabled = store.get('global_media_hotkeys', true) as boolean;
|
||||||
|
|
||||||
if (globalMediaKeysEnabled) {
|
if (globalMediaKeysEnabled) {
|
||||||
enableMediaKeys(mainWindow);
|
enableMediaKeys(mainWindow);
|
||||||
|
|
|
@ -251,7 +251,16 @@ const HomeRoute = () => {
|
||||||
property: 'name',
|
property: 'name',
|
||||||
route: {
|
route: {
|
||||||
route: AppRoute.LIBRARY_ALBUMS_DETAIL,
|
route: AppRoute.LIBRARY_ALBUMS_DETAIL,
|
||||||
slugs: [{ idProperty: 'id', slugProperty: 'albumId' }],
|
slugs: [
|
||||||
|
{
|
||||||
|
idProperty:
|
||||||
|
server?.type === ServerType.JELLYFIN &&
|
||||||
|
carousel.itemType === LibraryItem.SONG
|
||||||
|
? 'albumId'
|
||||||
|
: 'id',
|
||||||
|
slugProperty: 'albumId',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -272,7 +281,16 @@ const HomeRoute = () => {
|
||||||
itemType={carousel.itemType}
|
itemType={carousel.itemType}
|
||||||
route={{
|
route={{
|
||||||
route: AppRoute.LIBRARY_ALBUMS_DETAIL,
|
route: AppRoute.LIBRARY_ALBUMS_DETAIL,
|
||||||
slugs: [{ idProperty: 'id', slugProperty: 'albumId' }],
|
slugs: [
|
||||||
|
{
|
||||||
|
idProperty:
|
||||||
|
server?.type === ServerType.JELLYFIN &&
|
||||||
|
carousel.itemType === LibraryItem.SONG
|
||||||
|
? 'albumId'
|
||||||
|
: 'id',
|
||||||
|
slugProperty: 'albumId',
|
||||||
|
},
|
||||||
|
],
|
||||||
}}
|
}}
|
||||||
title={{
|
title={{
|
||||||
label: (
|
label: (
|
||||||
|
|
Reference in a new issue