Warn about USB clusters larger than 64 KB

This commit is contained in:
Roman Tarasov committed 2026-08-28 23:25:57 +03:00
1 parent 5b9816dd08
commit ff0bc74468
33 files changed
+103 -36

No files matched your search

+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_ar_sa[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "درجة الحرارة المستهدفة %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "تم توصيل محرك الأقراص الخارجي %s.\nالمتاح %llu.%llu من %llu.%llu غيغابايت (حجم الكتلة %llu كيلوبايت)\nالألعاب على القرص: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "تم توصيل محرك الأقراص الخارجي %s.\nالمتاح %llu.%llu من %llu.%llu غيغابايت (حجم الكتلة %llu كيلوبايت)\nالألعاب على القرص: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nللحصول على أقصى أداء، استخدم حجم عنقود لا يزيد عن 64 كيلوبايت",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "تم فصل محرك الأقراص الخارجي %s",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_cs_cz[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Cílová teplota %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Externí disk %s připojen.\nVolné místo: %llu.%llu z %llu.%llu GB (blok %llu KB)\nHer na disku: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Externí disk %s připojen.\nVolné místo: %llu.%llu z %llu.%llu GB (blok %llu KB)\nHer na disku: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPro maximální výkon použijte velikost clusteru nejvýše 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Externí disk %s odpojen",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_da_dk[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Måltemperatur %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Eksternt drev %s tilsluttet.\nLedig plads: %llu.%llu af %llu.%llu GB (blok %llu KB)\nSpil på drevet: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Eksternt drev %s tilsluttet.\nLedig plads: %llu.%llu af %llu.%llu GB (blok %llu KB)\nSpil på drevet: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nBrug en klyngestørrelse på højst 64 KB for maksimal ydeevne",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Eksternt drev %s frakoblet",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_de_de[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Zieltemperatur %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Externes Laufwerk %s verbunden.\nFrei: %llu.%llu von %llu.%llu GB (Blockgröße %llu KB)\nSpiele auf dem Laufwerk: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Externes Laufwerk %s verbunden.\nFrei: %llu.%llu von %llu.%llu GB (Blockgröße %llu KB)\nSpiele auf dem Laufwerk: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nVerwenden Sie für maximale Leistung eine Clustergröße von höchstens 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Externes Laufwerk %s getrennt",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_el_gr[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Θερμοκρασία-στόχος %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Ο εξωτερικός δίσκος %s συνδέθηκε.\nΕλεύθερα: %llu.%llu από %llu.%llu GB (μέγεθος μπλοκ %llu KB)\nΠαιχνίδια στον δίσκο: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Ο εξωτερικός δίσκος %s συνδέθηκε.\nΕλεύθερα: %llu.%llu από %llu.%llu GB (μέγεθος μπλοκ %llu KB)\nΠαιχνίδια στον δίσκο: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nΓια μέγιστη απόδοση, χρησιμοποιήστε μέγεθος συμπλέγματος έως 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Ο εξωτερικός δίσκος %s αποσυνδέθηκε",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_en_gb[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Target temperature %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nFor maximum performance, use a cluster size of no more than 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "External drive %s disconnected",
};
+3 -1
View File
@@ -79,6 +79,8 @@ static const char *const g_en_us[SM_L10N_COUNT] = {
[SM_L10N_USB_CONNECTED_SCANNING] =
"External drive %s connected\n"
"Free %llu.%llu GB of %llu.%llu (Block size %llu KB)\n"
"Games on drive: %d",
"Games on drive: %d%s",
[SM_L10N_USB_CLUSTER_RECOMMENDATION] =
"\nFor maximum performance, use a cluster size of no more than 64 KB",
[SM_L10N_USB_DISCONNECTED] = "External drive %s disconnected",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_es_es[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura objetivo %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidad externa %s conectada.\nLibres: %llu.%llu de %llu.%llu GB (bloque %llu KB)\nJuegos en la unidad: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidad externa %s conectada.\nLibres: %llu.%llu de %llu.%llu GB (bloque %llu KB)\nJuegos en la unidad: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPara obtener el máximo rendimiento, use un tamaño de clúster no superior a 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Unidad externa %s desconectada",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_es_mx[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura objetivo %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidad externa %s conectada.\nLibres: %llu.%llu de %llu.%llu GB (bloque %llu KB)\nJuegos en la unidad: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidad externa %s conectada.\nLibres: %llu.%llu de %llu.%llu GB (bloque %llu KB)\nJuegos en la unidad: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPara obtener el máximo rendimiento, use un tamaño de clúster no superior a 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Unidad externa %s desconectada",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_fi_fi[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Tavoitelämpötila %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Ulkoinen asema %s yhdistetty.\nVapaana: %llu.%llu / %llu.%llu Gt (lohko %llu kt)\nPelejä asemalla: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Ulkoinen asema %s yhdistetty.\nVapaana: %llu.%llu / %llu.%llu Gt (lohko %llu kt)\nPelejä asemalla: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nSaat parhaan suorituskyvyn käyttämällä enintään 64 kt:n klusterikokoa",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Ulkoinen asema %s irrotettu",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_fr_ca[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Température cible %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Lecteur externe %s connecté.\nLibre : %llu.%llu sur %llu.%llu Go (bloc %llu Ko)\nJeux sur le lecteur : %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Lecteur externe %s connecté.\nLibre : %llu.%llu sur %llu.%llu Go (bloc %llu Ko)\nJeux sur le lecteur : %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPour des performances maximales, utilisez une taille de cluster ne dépassant pas 64 Ko",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Lecteur externe %s déconnecté",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_fr_fr[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Température cible %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Lecteur externe %s connecté.\nLibre : %llu.%llu sur %llu.%llu Go (bloc %llu Ko)\nJeux sur le lecteur : %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Lecteur externe %s connecté.\nLibre : %llu.%llu sur %llu.%llu Go (bloc %llu Ko)\nJeux sur le lecteur : %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPour des performances maximales, utilisez une taille de cluster ne dépassant pas 64 Ko",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Lecteur externe %s déconnecté",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_hu_hu[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Célhőmérséklet %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Külső meghajtó csatlakoztatva: %s.\nSzabad: %llu.%llu / %llu.%llu GB (blokkméret %llu KB)\nJátékok a meghajtón: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Külső meghajtó csatlakoztatva: %s.\nSzabad: %llu.%llu / %llu.%llu GB (blokkméret %llu KB)\nJátékok a meghajtón: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nA maximális teljesítményhez használjon legfeljebb 64 KB-os klaszterméretet",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Külső meghajtó leválasztva: %s",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_id_id[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Suhu target %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Drive eksternal %s tersambung.\nKosong: %llu.%llu dari %llu.%llu GB (ukuran blok %llu KB)\nGame di drive: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Drive eksternal %s tersambung.\nKosong: %llu.%llu dari %llu.%llu GB (ukuran blok %llu KB)\nGame di drive: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nUntuk performa maksimal, gunakan ukuran klaster tidak lebih dari 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Drive eksternal %s terputus",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_it_it[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura obiettivo %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Unità esterna %s collegata.\nLiberi: %llu.%llu di %llu.%llu GB (blocco %llu KB)\nGiochi sull'unità: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Unità esterna %s collegata.\nLiberi: %llu.%llu di %llu.%llu GB (blocco %llu KB)\nGiochi sull'unità: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPer prestazioni ottimali, usa una dimensione cluster non superiore a 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Unità esterna %s scollegata",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_ja_jp[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "目標温度 %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "外付けドライブ %s が接続されました。\n空き容量: %llu.%llu / %llu.%llu GB(ブロックサイズ: %llu KB)\nドライブ上のゲーム: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "外付けドライブ %s が接続されました。\n空き容量: %llu.%llu / %llu.%llu GB(ブロックサイズ: %llu KB)\nドライブ上のゲーム: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\n最大限のパフォーマンスを得るには、クラスターサイズを 64 KB 以下にしてください",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "外付けドライブ %s が切断されました",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_ko_kr[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "목표 온도 %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "외장 드라이브 %s 연결됨.\n여유 공간: %llu.%llu / %llu.%llu GB (블록 크기: %llu KB)\n드라이브의 게임: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "외장 드라이브 %s 연결됨.\n여유 공간: %llu.%llu / %llu.%llu GB (블록 크기: %llu KB)\n드라이브의 게임: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\n최대 성능을 위해 64 KB 이하의 클러스터 크기를 사용하세요",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "외장 드라이브 %s 연결 해제됨",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_nl_nl[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Doeltemperatuur %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Externe schijf %s aangesloten.\nVrij: %llu.%llu van %llu.%llu GB (blokgrootte %llu KB)\nGames op de schijf: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Externe schijf %s aangesloten.\nVrij: %llu.%llu van %llu.%llu GB (blokgrootte %llu KB)\nGames op de schijf: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nGebruik voor maximale prestaties een clustergrootte van maximaal 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Externe schijf %s losgekoppeld",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_no_no[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Måltemperatur %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Ekstern disk %s tilkoblet.\nLedig: %llu.%llu av %llu.%llu GB (blokkstørrelse %llu KB)\nSpill på disken: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Ekstern disk %s tilkoblet.\nLedig: %llu.%llu av %llu.%llu GB (blokkstørrelse %llu KB)\nSpill på disken: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nBruk en klyngestørrelse på maksimalt 64 KB for maksimal ytelse",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Ekstern disk %s frakoblet",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_pl_pl[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura docelowa %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Dysk zewnętrzny %s podłączony.\nWolne: %llu.%llu z %llu.%llu GB (rozmiar bloku %llu KB)\nGry na dysku: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Dysk zewnętrzny %s podłączony.\nWolne: %llu.%llu z %llu.%llu GB (rozmiar bloku %llu KB)\nGry na dysku: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nAby uzyskać maksymalną wydajność, użyj rozmiaru klastra nie większego niż 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Dysk zewnętrzny %s odłączony",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_pt_br[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura-alvo %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidade externa %s conectada.\nLivre: %llu.%llu de %llu.%llu GB (bloco %llu KB)\nJogos na unidade: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidade externa %s conectada.\nLivre: %llu.%llu de %llu.%llu GB (bloco %llu KB)\nJogos na unidade: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPara obter o máximo desempenho, use clusters de no máximo 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Unidade externa %s desconectada",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_pt_pt[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura-alvo %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidade externa %s ligada.\nLivre: %llu.%llu de %llu.%llu GB (bloco %llu KB)\nJogos na unidade: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Unidade externa %s ligada.\nLivre: %llu.%llu de %llu.%llu GB (bloco %llu KB)\nJogos na unidade: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPara obter o máximo desempenho, utilize clusters de no máximo 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Unidade externa %s desligada",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_ro_ro[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Temperatura țintă %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Unitatea externă %s a fost conectată.\nLiber: %llu.%llu din %llu.%llu GB (dimensiunea blocului %llu KB)\nJocuri pe unitate: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Unitatea externă %s a fost conectată.\nLiber: %llu.%llu din %llu.%llu GB (dimensiunea blocului %llu KB)\nJocuri pe unitate: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nPentru performanță maximă, utilizați o dimensiune a clusterului de cel mult 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Unitatea externă %s a fost deconectată",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_ru_ru[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Целевая температура %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Внешний диск %s подключён.\nСвободно %llu.%llu из %llu.%llu ГБ (блок %llu КБ)\nИгр на диске: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Внешний диск %s подключён.\nСвободно %llu.%llu из %llu.%llu ГБ (блок %llu КБ)\nИгр на диске: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nДля максимальной производительности используйте кластер не более 64 КБ",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Внешний диск %s отключён.",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_sv_se[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Måltemperatur %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Extern enhet %s ansluten.\nLedigt: %llu.%llu av %llu.%llu GB (blockstorlek %llu KB)\nSpel på enheten: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Extern enhet %s ansluten.\nLedigt: %llu.%llu av %llu.%llu GB (blockstorlek %llu KB)\nSpel på enheten: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nAnvänd en klusterstorlek på högst 64 KB för maximal prestanda",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Extern enhet %s frånkopplad",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_th_th[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "อุณหภูมิเป้าหมาย %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "เชื่อมต่อไดรฟ์ภายนอก %s แล้ว\nว่าง: %llu.%llu จาก %llu.%llu GB (ขนาดบล็อก %llu KB)\nเกมในไดรฟ์: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "เชื่อมต่อไดรฟ์ภายนอก %s แล้ว\nว่าง: %llu.%llu จาก %llu.%llu GB (ขนาดบล็อก %llu KB)\nเกมในไดรฟ์: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nเพื่อประสิทธิภาพสูงสุด ให้ใช้ขนาดคลัสเตอร์ไม่เกิน 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "ตัดการเชื่อมต่อไดรฟ์ภายนอก %s แล้ว",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_tr_tr[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Hedef sıcaklık %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Harici sürücü %s bağlandı.\nBoş: %llu.%llu / %llu.%llu GB (blok boyutu %llu KB)\nSürücüdeki oyunlar: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Harici sürücü %s bağlandı.\nBoş: %llu.%llu / %llu.%llu GB (blok boyutu %llu KB)\nSürücüdeki oyunlar: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nMaksimum performans için en fazla 64 KB küme boyutu kullanın",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Harici sürücü %s çıkarıldı",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_uk_ua[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Цільова температура %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Зовнішній диск %s підключено.\nВільно %llu.%llu із %llu.%llu ГБ (блок %llu КБ)\nІгор на диску: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Зовнішній диск %s підключено.\nВільно %llu.%llu із %llu.%llu ГБ (блок %llu КБ)\nІгор на диску: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nДля максимальної продуктивності використовуйте кластер не більше 64 КБ",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Зовнішній диск %s відключено",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_vi_vn[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "Nhiệt độ mục tiêu %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "Đã kết nối ổ đĩa ngoài %s.\nTrống: %llu.%llu / %llu.%llu GB (kích thước khối %llu KB)\nTrò chơi trên ổ đĩa: %d",
[SM_L10N_USB_CONNECTED_SCANNING] = "Đã kết nối ổ đĩa ngoài %s.\nTrống: %llu.%llu / %llu.%llu GB (kích thước khối %llu KB)\nTrò chơi trên ổ đĩa: %d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\nĐể đạt hiệu suất tối đa, hãy sử dụng kích thước cụm không quá 64 KB",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "Đã ngắt kết nối ổ đĩa ngoài %s",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_zh_cn[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "目标温度 %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "外部驱动器 %s 已连接。\n可用:%llu.%llu / %llu.%llu GB(块大小 %llu KB)\n驱动器上的游戏:%d",
[SM_L10N_USB_CONNECTED_SCANNING] = "外部驱动器 %s 已连接。\n可用:%llu.%llu / %llu.%llu GB(块大小 %llu KB)\n驱动器上的游戏:%d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\n为获得最佳性能,请使用不超过 64 KB 的簇大小",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "外部驱动器 %s 已断开",
};
+3 -1
View File
@@ -90,7 +90,9 @@ static const char *const g_zh_tw[SM_L10N_COUNT] = {
/* English: Target temperature %u °C → %u °C */
[SM_L10N_TEMPERATURE_TRANSITION] = "目標溫度 %u °C → %u °C",
/* English: External drive %s connected\nFree %llu.%llu GB of %llu.%llu (Block size %llu KB)\nGames on drive: %d */
[SM_L10N_USB_CONNECTED_SCANNING] = "外接磁碟機 %s 已連接。\n可用:%llu.%llu / %llu.%llu GB(區塊大小 %llu KB)\n磁碟機上的遊戲:%d",
[SM_L10N_USB_CONNECTED_SCANNING] = "外接磁碟機 %s 已連接。\n可用:%llu.%llu / %llu.%llu GB(區塊大小 %llu KB)\n磁碟機上的遊戲:%d%s",
/* English: For maximum performance, use a cluster size of no more than 64 KB */
[SM_L10N_USB_CLUSTER_RECOMMENDATION] = "\n為獲得最佳效能,請使用不超過 64 KB 的叢集大小",
/* English: External drive %s disconnected */
[SM_L10N_USB_DISCONNECTED] = "外接磁碟機 %s 已中斷連接",
};
+1
View File
@@ -52,6 +52,7 @@ typedef enum {
SM_L10N_SHELLCORE_HOOKS_FAILED,
SM_L10N_TEMPERATURE_TRANSITION,
SM_L10N_USB_CONNECTED_SCANNING,
SM_L10N_USB_CLUSTER_RECOMMENDATION,
SM_L10N_USB_DISCONNECTED,
SM_L10N_COUNT
} sm_l10n_key_t;
+9 -5
View File
@@ -41,6 +41,7 @@
#define SCANNER_MANUAL_PROBE_INTERVAL_US 10000000ull
#define SCANNER_USB_SLOT_COUNT 8
#define SCANNER_USB_MOUNT_PROBE_DELAY_US 1000000ull
#define SCANNER_MAX_RECOMMENDED_CLUSTER_SIZE_BYTES (64ull * 1024ull)
#define SCANNER_GIB_BYTES (1024ull * 1024ull * 1024ull)
#define SCANNER_FAKELIB_CACHE_CLEANUP_INTERVAL_US \
(24ull * 60ull * 60ull * 1000000ull)
@@ -87,7 +88,7 @@ typedef struct {
typedef struct {
uint64_t available_tenths;
uint64_t capacity_tenths;
uint64_t block_size_kb;
uint64_t block_size_bytes;
} scanner_usb_info_t;
static int g_scanner_wake_pipe[2] = {-1, -1};
@@ -229,8 +230,6 @@ static bool notify_scanner_usb_mount_change(const char *path) {
uint64_t available_bytes = (uint64_t)sfs.f_bavail * block_size;
uint64_t capacity_tenths = bytes_to_gib_tenths(capacity_bytes);
uint64_t available_tenths = bytes_to_gib_tenths(available_bytes);
uint64_t block_size_kb = (block_size + 1023ull) / 1024ull;
g_scanner_usb_mounted_mask |= slot_mask;
if (scanner_usb_slot_has_scan_root(slot)) {
g_scanner_usb_scan_result_pending_mask |= slot_mask;
@@ -238,7 +237,7 @@ static bool notify_scanner_usb_mount_change(const char *path) {
}
g_scanner_usb_info[slot].available_tenths = available_tenths;
g_scanner_usb_info[slot].capacity_tenths = capacity_tenths;
g_scanner_usb_info[slot].block_size_kb = block_size_kb;
g_scanner_usb_info[slot].block_size_bytes = block_size;
log_debug("[SCAN] USB storage connected; scan scheduled: %s "
"capacity=%lluB available=%lluB block_size=%lluB",
usb_root, (unsigned long long)capacity_bytes,
@@ -976,13 +975,18 @@ static void notify_scanner_usb_scan_complete(int slot) {
log_debug("[SCAN] USB storage scan complete: %s games=%d", usb_root,
game_count);
const scanner_usb_info_t *info = &g_scanner_usb_info[slot];
const char *cluster_recommendation =
info->block_size_bytes <= SCANNER_MAX_RECOMMENDED_CLUSTER_SIZE_BYTES
? ""
: sm_l10n_get(SM_L10N_USB_CLUSTER_RECOMMENDATION);
notify_system_info_l10n(
SM_L10N_USB_CONNECTED_SCANNING, usb_root,
(unsigned long long)(info->available_tenths / 10ull),
(unsigned long long)(info->available_tenths % 10ull),
(unsigned long long)(info->capacity_tenths / 10ull),
(unsigned long long)(info->capacity_tenths % 10ull),
(unsigned long long)info->block_size_kb, game_count);
(unsigned long long)((info->block_size_bytes + 1023ull) / 1024ull),
game_count, cluster_recommendation);
}
static void schedule_pending_scanner_usb_scans(uint64_t now_us) {