Remove abbreviation of “language” in function names

This commit is contained in:
schroda
2025-05-09 00:42:56 +02:00
parent d27c5c445f
commit dcd57aea8f
8 changed files with 28 additions and 22 deletions

View File

@@ -21,7 +21,7 @@ import { useTranslation } from 'react-i18next';
import { Virtuoso } from 'react-virtuoso'; import { Virtuoso } from 'react-virtuoso';
import { CustomTooltip } from '@/modules/core/components/CustomTooltip.tsx'; import { CustomTooltip } from '@/modules/core/components/CustomTooltip.tsx';
import { translateExtensionLanguage } from '@/modules/extension/Extensions.utils.ts'; import { translateExtensionLanguage } from '@/modules/extension/Extensions.utils.ts';
import { langSortCmp, toUniqueLanguageCodes } from '@/modules/core/utils/Languages.ts'; import { languageSortComparator, toUniqueLanguageCodes } from '@/modules/core/utils/Languages.ts';
interface IProps { interface IProps {
selectedLanguages: string[]; selectedLanguages: string[];
@@ -38,7 +38,10 @@ export function LanguageSelect(props: IProps) {
const languagesSortedBySelectState = useMemo( const languagesSortedBySelectState = useMemo(
() => () =>
toUniqueLanguageCodes([...tmpSelectedLanguages.toSorted(langSortCmp), ...languages.toSorted(langSortCmp)]), toUniqueLanguageCodes([
...tmpSelectedLanguages.toSorted(languageSortComparator),
...languages.toSorted(languageSortComparator),
]),
[languages, tmpSelectedLanguages], [languages, tmpSelectedLanguages],
); );

View File

@@ -62,7 +62,7 @@ export function getLanguage(code: string): LanguageObject {
}; };
} }
export function langCodeToName(code: string): string { export function languageCodeToName(code: string): string {
return getLanguage(code).nativeName; return getLanguage(code).nativeName;
} }
@@ -89,12 +89,13 @@ function defaultNativeLang(): readonly string[] {
return preferredLanguages; return preferredLanguages;
} }
export function extensionDefaultLangs(): string[] { export function extensionDefaultLanguages(): string[] {
return [...defaultNativeLang()]; return [...defaultNativeLang()];
} }
export function sourceDefualtLangs(): string[] { export function sourceDefaultLanguages(): string[] {
return [...defaultNativeLang()]; return [...defaultNativeLang()];
} }
export const langSortCmp = (a: string, b: string) => langCodeToName(a).localeCompare(langCodeToName(b)); export const languageSortComparator = (a: string, b: string) =>
languageCodeToName(a).localeCompare(languageCodeToName(b));

View File

@@ -17,8 +17,8 @@ import {
} from '@/modules/extension/Extensions.types.ts'; } from '@/modules/extension/Extensions.types.ts';
import { import {
DefaultLanguage, DefaultLanguage,
langCodeToName, languageCodeToName,
langSortCmp, languageSortComparator,
toComparableLanguage, toComparableLanguage,
toComparableLanguages, toComparableLanguages,
toUniqueLanguageCodes, toUniqueLanguageCodes,
@@ -56,7 +56,7 @@ export const isExtensionStateOrLanguage = (languageCode: string): boolean =>
export const translateExtensionLanguage = (languageCode: string): string => export const translateExtensionLanguage = (languageCode: string): string =>
isExtensionStateOrLanguage(languageCode) isExtensionStateOrLanguage(languageCode)
? t(extensionLanguageToTranslationKey[languageCode as ExtensionGroupState | DefaultLanguage]) ? t(extensionLanguageToTranslationKey[languageCode as ExtensionGroupState | DefaultLanguage])
: langCodeToName(languageCode); : languageCodeToName(languageCode);
export function groupExtensionsByLanguage(extensions: TExtension[]): GroupedExtensionsResult { export function groupExtensionsByLanguage(extensions: TExtension[]): GroupedExtensionsResult {
const extensionsByLanguage = Object.groupBy<ExtensionGroupState | string, TExtension>(extensions, (extension) => { const extensionsByLanguage = Object.groupBy<ExtensionGroupState | string, TExtension>(extensions, (extension) => {
@@ -86,7 +86,7 @@ export function groupExtensionsByLanguage(extensions: TExtension[]): GroupedExte
return 1; return 1;
} }
return langSortCmp(a, b); return languageSortComparator(a, b);
}); });
const groupedExtensionsSortedByLanguage = extensionsBySortedLanguage.map(([language, extensionsOfLanguage]) => [ const groupedExtensionsSortedByLanguage = extensionsBySortedLanguage.map(([language, extensionsOfLanguage]) => [
@@ -98,7 +98,7 @@ export function groupExtensionsByLanguage(extensions: TExtension[]): GroupedExte
} }
export const getLanguagesFromExtensions = (extensions: TExtension[]): string[] => export const getLanguagesFromExtensions = (extensions: TExtension[]): string[] =>
[...new Set(extensions.map((extension) => extension.lang))].toSorted(langSortCmp); [...new Set(extensions.map((extension) => extension.lang))].toSorted(languageSortComparator);
export const filterExtensions = ( export const filterExtensions = (
extensions: TExtension[], extensions: TExtension[],

View File

@@ -16,7 +16,7 @@ import { useTranslation } from 'react-i18next';
import Box from '@mui/material/Box'; import Box from '@mui/material/Box';
import { requestManager } from '@/lib/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { sourceDefualtLangs } from '@/modules/core/utils/Languages.ts'; import { sourceDefaultLanguages } from '@/modules/core/utils/Languages.ts';
import { AppbarSearch } from '@/modules/core/components/AppbarSearch.tsx'; import { AppbarSearch } from '@/modules/core/components/AppbarSearch.tsx';
import { LanguageSelect } from '@/modules/core/components/inputs/LanguageSelect.tsx'; import { LanguageSelect } from '@/modules/core/components/inputs/LanguageSelect.tsx';
import { useDebounce } from '@/modules/core/hooks/useDebounce.ts'; import { useDebounce } from '@/modules/core/hooks/useDebounce.ts';
@@ -194,7 +194,7 @@ export const SearchAll: React.FC = () => {
const [query] = useQueryParam('query', StringParam); const [query] = useQueryParam('query', StringParam);
const searchString = useDebounce(query, TRIGGER_SEARCH_THRESHOLD); const searchString = useDebounce(query, TRIGGER_SEARCH_THRESHOLD);
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs()); const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefaultLanguages());
const { const {
settings: { showNsfw }, settings: { showNsfw },
} = useMetadataServerSettings(); } = useMetadataServerSettings();

View File

@@ -10,7 +10,7 @@ import { DEFAULT_DEVICE } from '@/modules/device/services/Device.ts';
import { DEFAULT_SORT_SETTINGS } from '@/modules/migration/Migration.constants.ts'; import { DEFAULT_SORT_SETTINGS } from '@/modules/migration/Migration.constants.ts';
import { MetadataServerSettings } from '@/modules/settings/Settings.types.ts'; import { MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
import { GridLayout } from '@/modules/core/Core.types.ts'; import { GridLayout } from '@/modules/core/Core.types.ts';
import { extensionDefaultLangs } from '@/modules/core/utils/Languages.ts'; import { extensionDefaultLanguages } from '@/modules/core/utils/Languages.ts';
export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = { export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = {
// downloads // downloads
@@ -41,7 +41,7 @@ export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = {
// browse // browse
hideLibraryEntries: false, hideLibraryEntries: false,
extensionLanguages: extensionDefaultLangs(), extensionLanguages: extensionDefaultLanguages(),
showNsfw: true, showNsfw: true,
// history // history

View File

@@ -21,7 +21,7 @@ import { MediaQuery } from '@/modules/core/utils/MediaQuery.tsx';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { I18nResourceCode, i18nResources } from '@/i18n'; import { I18nResourceCode, i18nResources } from '@/i18n';
import { langCodeToName } from '@/modules/core/utils/Languages.ts'; import { languageCodeToName } from '@/modules/core/utils/Languages.ts';
import { ThemeList } from '@/modules/theme/components/ThemeList.tsx'; import { ThemeList } from '@/modules/theme/components/ThemeList.tsx';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
@@ -145,7 +145,7 @@ export const Appearance = () => {
> >
{i18nResources.map((language) => ( {i18nResources.map((language) => (
<MenuItem key={language} value={language}> <MenuItem key={language} value={language}>
{langCodeToName(language)} {languageCodeToName(language)}
</MenuItem> </MenuItem>
))} ))}
</Select> </Select>

View File

@@ -15,7 +15,7 @@ import { useTranslation } from 'react-i18next';
import { CustomTooltip } from '@/modules/core/components/CustomTooltip.tsx'; import { CustomTooltip } from '@/modules/core/components/CustomTooltip.tsx';
import { requestManager } from '@/lib/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { sourceDefualtLangs } from '@/modules/core/utils/Languages.ts'; import { sourceDefaultLanguages } from '@/modules/core/utils/Languages.ts';
import { LoadingPlaceholder } from '@/modules/core/components/feedback/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/feedback/LoadingPlaceholder.tsx';
import { SourceCard } from '@/modules/source/components/SourceCard.tsx'; import { SourceCard } from '@/modules/source/components/SourceCard.tsx';
import { LanguageSelect } from '@/modules/core/components/inputs/LanguageSelect.tsx'; import { LanguageSelect } from '@/modules/core/components/inputs/LanguageSelect.tsx';
@@ -31,7 +31,7 @@ import { useAppAction } from '@/modules/navigation-bar/hooks/useAppAction.ts';
export function Sources() { export function Sources() {
const { t } = useTranslation(); const { t } = useTranslation();
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs()); const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefaultLanguages());
const { const {
settings: { showNsfw }, settings: { showNsfw },
} = useMetadataServerSettings(); } = useMetadataServerSettings();

View File

@@ -15,7 +15,7 @@ import {
} from '@/modules/source/Source.types.ts'; } from '@/modules/source/Source.types.ts';
import { import {
DefaultLanguage, DefaultLanguage,
langSortCmp, languageSortComparator,
toComparableLanguage, toComparableLanguage,
toComparableLanguages, toComparableLanguages,
toUniqueLanguageCodes, toUniqueLanguageCodes,
@@ -37,14 +37,16 @@ export class Sources {
} }
static getLanguages(sources: (SourceIdInfo & SourceLanguageInfo)[]): string[] { static getLanguages(sources: (SourceIdInfo & SourceLanguageInfo)[]): string[] {
return [...new Set(sources.map((source) => Sources.getLanguage(source)))].toSorted(langSortCmp); return [...new Set(sources.map((source) => Sources.getLanguage(source)))].toSorted(languageSortComparator);
} }
static groupByLanguage<Source extends SourceIdInfo & SourceLanguageInfo & SourceDisplayNameInfo>( static groupByLanguage<Source extends SourceIdInfo & SourceLanguageInfo & SourceDisplayNameInfo>(
sources: Source[], sources: Source[],
): Record<string, Source[]> { ): Record<string, Source[]> {
const sourcesByLanguage = Object.groupBy(sources, (source) => Sources.getLanguage(source)); const sourcesByLanguage = Object.groupBy(sources, (source) => Sources.getLanguage(source));
const sourcesBySortedLanguage = Object.entries(sourcesByLanguage).toSorted(([a], [b]) => langSortCmp(a, b)); const sourcesBySortedLanguage = Object.entries(sourcesByLanguage).toSorted(([a], [b]) =>
languageSortComparator(a, b),
);
const sortedSourcesBySortedLanguage = sourcesBySortedLanguage.map(([language, sourcesOfLanguage]) => [ const sortedSourcesBySortedLanguage = sourcesBySortedLanguage.map(([language, sourcesOfLanguage]) => [
language, language,
(sourcesOfLanguage ?? []).toSorted((a, b) => a.displayName.localeCompare(b.displayName)), (sourcesOfLanguage ?? []).toSorted((a, b) => a.displayName.localeCompare(b.displayName)),