diff --git a/README.ar.md b/README.ar.md index 4158e80a0..66354ed43 100644 --- a/README.ar.md +++ b/README.ar.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -79,7 +79,7 @@ - **مراقبة المجلدات**: يُحوَّل كل ملف يصل إلى المجلد المراقَب. - **التحويلات الأخيرة** في الصفحة الرئيسية، لكل نتيجة صورة مصغّرة: افتح الملف، أو افتحه باستخدام تطبيق آخر. - **طرق أخرى**: قائمة النقر بالزر الأيمن، واختصار لوحة المفاتيح، ومنطقة الإفلات، و[الأمر `filee`](#سطر-الأوامر). -- مظهر فاتح وداكن، باللون المميّز وشفافية الشريط الدائري اللذين تختارهما، وباللغات: English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية (من اليمين إلى اليسار) · Português (Brasil) · Français · नेपाली. +- مظهر فاتح وداكن، باللون المميّز وشفافية الشريط الدائري اللذين تختارهما، وباللغات: English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية (من اليمين إلى اليسار) · Português (Brasil) · Français · नेपाली · ไทย. ## لقطات الشاشة diff --git a/README.es.md b/README.es.md index c73089331..4f7ba901c 100644 --- a/README.es.md +++ b/README.es.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ actualización, unas pocas diapositivas muestran las novedades. - **Carpetas supervisadas** que convierten cada archivo que llega a ellas. - **Conversiones recientes** en Inicio, cada una con su miniatura: abre el resultado o ábrelo con otra aplicación. - **Otras formas de usarlo**: el menú contextual, un atajo de teclado, la zona de suelta y el [comando `filee`](#línea-de-comandos). -- Temas claro y oscuro con tu propio color de acento y la opacidad del menú circular, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de derecha a izquierda), Português (Brasil), Français y नेपाली. +- Temas claro y oscuro con tu propio color de acento y la opacidad del menú circular, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de derecha a izquierda), Português (Brasil), Français, नेपाली y ไทย. ## Capturas de pantalla diff --git a/README.fr.md b/README.fr.md index e00c9ce50..02ccc7065 100644 --- a/README.fr.md +++ b/README.fr.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ mise à jour, quelques diapositives présentent les nouveautés. - **Des dossiers surveillés** convertissent chaque fichier qui y arrive. - **Conversions récentes** dans l'Accueil, chacune avec sa miniature : ouvrez le résultat, ou ouvrez-le avec une autre application. - **D'autres points d'entrée** : le menu contextuel, un raccourci clavier, la zone de dépôt et la [commande `filee`](#ligne-de-commande). -- Thèmes clair et sombre avec votre propre couleur d'accentuation et l'opacité du menu circulaire, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de droite à gauche), Português (Brasil), Français et नेपाली. +- Thèmes clair et sombre avec votre propre couleur d'accentuation et l'opacité du menu circulaire, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de droite à gauche), Português (Brasil), Français, नेपाली et ไทย. ## Captures d'écran diff --git a/README.hi.md b/README.hi.md index fa0038d3d..aac1891be 100644 --- a/README.hi.md +++ b/README.hi.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ - **वॉच फ़ोल्डर** में आने वाली हर फ़ाइल अपने-आप कन्वर्ट हो जाती है। - **हाल के कन्वर्ज़न** होम पर, हर एक के थंबनेल के साथ: नतीजे को "फ़ाइल खोलें" से खोलें, या "इसके साथ खोलें" से किसी दूसरे ऐप में। - **दूसरे तरीके**: राइट-क्लिक मेनू, कीबोर्ड शॉर्टकट, ड्रॉप ज़ोन और [`filee` कमांड](#कमांड-लाइन)। -- लाइट और डार्क थीम, अपने एक्सेंट रंग और डोनट की अपारदर्शिता के साथ, English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (दाएँ से बाएँ), Português (Brasil), Français और नेपाली में। +- लाइट और डार्क थीम, अपने एक्सेंट रंग और डोनट की अपारदर्शिता के साथ, English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (दाएँ से बाएँ), Português (Brasil), Français, नेपाली और ไทย में। ## स्क्रीनशॉट diff --git a/README.ja.md b/README.ja.md index fb12dff2b..d69edc4b6 100644 --- a/README.ja.md +++ b/README.ja.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -78,7 +78,7 @@ - **最近の変換**はホームにサムネイル付きで表示され、変換結果を開いたり、別のアプリで開いたりできます。 - **ほかの使い方**:右クリックメニュー、キーボードショートカット、ドロップ領域、[`filee`コマンド](#コマンドライン)。 - ライトテーマとダークテーマ。アクセントカラーとドーナツメニューの不透明度も選べます。English、Español、日本語、한국어、 - 简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(右から左へ表示)、Português (Brasil)、Français、नेपालीに対応。 + 简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(右から左へ表示)、Português (Brasil)、Français、नेपाली、ไทยに対応。 ## スクリーンショット diff --git a/README.ko.md b/README.ko.md index 8aabf9359..f30468381 100644 --- a/README.ko.md +++ b/README.ko.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -76,7 +76,7 @@ - **자동 변환 폴더**에 들어온 파일을 바로 변환해요. - **최근 변환**: 홈에서 결과를 썸네일과 함께 보여 주고, 바로 열거나 연결 프로그램으로 열 수 있어요. - **다른 방법**: 우클릭 메뉴, 키보드 단축키, 드롭 영역, [`filee` 명령](#명령줄) -- 밝은·어두운 테마, 원하는 강조색과 원형 툴바 불투명도, English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية(오른쪽에서 왼쪽으로) · Português (Brasil) · Français · नेपाली +- 밝은·어두운 테마, 원하는 강조색과 원형 툴바 불투명도, English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية(오른쪽에서 왼쪽으로) · Português (Brasil) · Français · नेपाली · ไทย ## 스크린샷 diff --git a/README.md b/README.md index 54ac0313d..d0a10fd54 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ slides show what's new. - **Watch folders** convert every file that lands in them. - **Recent conversions** on Home, each with a thumbnail: open the result, or open it with another app. - **Other ways in**: the right-click menu, a keyboard shortcut, the drop zone and the [`filee` command](#command-line). -- Light and dark themes with your own accent colour and donut opacity, in English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (right to left), Português (Brasil), Français and नेपाली. +- Light and dark themes with your own accent colour and donut opacity, in English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (right to left), Português (Brasil), Français, नेपाली and ไทย. ## Screenshots diff --git a/README.pl.md b/README.pl.md index 826056140..93502998f 100644 --- a/README.pl.md +++ b/README.pl.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ kilka slajdów pokazuje, co nowego. - **Obserwowane foldery** konwertują każdy plik, który do nich trafi. - **Ostatnie konwersje** na ekranie Start, każda z miniaturą: otwórz wynik albo otwórz go za pomocą innej aplikacji. - **Inne sposoby**: menu kontekstowe, skrót klawiszowy, strefa upuszczania i [polecenie `filee`](#wiersz-poleceń). -- Jasny i ciemny motyw z własnym kolorem akcentu i kryciem pierścienia, w językach English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (od prawej do lewej), Português (Brasil), Français i नेपाली. +- Jasny i ciemny motyw z własnym kolorem akcentu i kryciem pierścienia, w językach English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (od prawej do lewej), Português (Brasil), Français, नेपाली i ไทย. ## Zrzuty ekranu diff --git a/README.pt-BR.md b/README.pt-BR.md index 7351c608d..79b042ae7 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ slides mostram o que há de novo. - **Pastas monitoradas** convertem cada arquivo que chega nelas. - **Conversões recentes** no Início, cada uma com uma miniatura: abra o resultado, ou abra com outro aplicativo. - **Outras entradas**: o menu do botão direito, um atalho de teclado, a área de soltar e o [comando `filee`](#linha-de-comando). -- Temas claro e escuro, com sua cor de destaque e a opacidade do menu circular, em English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (da direita para a esquerda), Português (Brasil), Français e नेपाली. +- Temas claro e escuro, com sua cor de destaque e a opacidade do menu circular, em English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (da direita para a esquerda), Português (Brasil), Français, नेपाली e ไทย. ## Capturas de tela diff --git a/README.ru.md b/README.ru.md index 1564ec743..216e0e489 100644 --- a/README.ru.md +++ b/README.ru.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -77,7 +77,7 @@ Filee сообщает о новых версиях в своём меню и о - **Папки наблюдения** конвертируют каждый файл, который в них попадает. - **Недавние конвертации** на главной, у каждой миниатюра: результат можно открыть («Открыть файл») или открыть в другой программе («Открыть с помощью»). - **Другие способы**: контекстное меню, горячая клавиша, зона перетаскивания и [команда `filee`](#командная-строка). -- Светлая и тёмная темы со своим акцентным цветом и непрозрачностью кругового меню, интерфейс на языках English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (справа налево), Português (Brasil), Français и नेपाली. +- Светлая и тёмная темы со своим акцентным цветом и непрозрачностью кругового меню, интерфейс на языках English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (справа налево), Português (Brasil), Français, नेपाली и ไทย. ## Скриншоты diff --git a/README.th.md b/README.th.md new file mode 100644 index 000000000..25598745b --- /dev/null +++ b/README.th.md @@ -0,0 +1,183 @@ +

+ Filee: ลาก วาง แปลงไฟล์ทันที +

+ +

+ โปรแกรมแปลงไฟล์ฟรีและโอเพนซอร์ส ใช้งานง่ายเพียงแค่ลากแล้ววาง
+ กดปุ่มค้างไว้ (Ctrl, บน macOS กด Option) ลากไฟล์ แล้วปล่อยลงบนฟอร์แมตที่ต้องการในวงล้อโดนัทที่ปรากฏขึ้นตรงตำแหน่งเคอร์เซอร์ของคุณ +

+ +

+ เว็บไซต์ · + ดาวน์โหลด · + การติดตั้ง · + บรรทัดคำสั่ง · + การพัฒนา +

+ +

+ CI + เวอร์ชันล่าสุด + ยอดดาวน์โหลด + Windows 10 | 11 + Linux x64 | ARM64 + macOS รุ่นพรีวิว + สัญญาอนุญาต MIT +

+ +

+ Filee: คลัง C# อันดับ 1 ประจำสัปดาห์บน Trendshift + Filee: คลัง C# อันดับ 1 ประจำวันบน Trendshift +

+ +

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

+ +
+ + + + + +
ปรากฏตรงตำแหน่งเคอร์เซอร์
ไม่ต้องเปิดหน้าต่างแอป ฟอร์แมตที่เหมาะสมจะแสดงขึ้นตรงจุดที่คุณทำงานอยู่ โดยแสดงเฉพาะฟอร์แมตที่ใช้ได้กับไฟล์ที่คุณลากเท่านั้น
255 ฟอร์แมต โดยไม่ต้องลงโปรแกรมอื่นเพิ่ม
รูปภาพ, PDF, Word, Excel, PowerPoint, HWP, อีบุ๊ก, ไฟล์บีบอัด, ฟอนต์, CAD, โมเดล 3D และข้อมูลเชิงพื้นที่ ทำงานได้โดยไม่ต้องมี Microsoft Office, Hancom Office หรือ LibreOffice
ประมวลผลในเครื่องของคุณอย่างปลอดภัย
ไม่มีการอัปโหลดไฟล์ขึ้นเซิร์ฟเวอร์ Filee ทำงานแบบออฟไลน์ และบันทึกผลลัพธ์ไว้ข้างไฟล์ต้นฉบับในเครื่องของคุณ
+ +## ตัวอย่างการใช้งาน + +

+ ลากไฟล์ trip.jpg พร้อมกด Ctrl: แถบโดนัทจะเปิดขึ้นตรงเคอร์เซอร์ วางไฟล์ลงบน PNG วงแหวนแสดงความคืบหน้าจะหมุนจนเสร็จ และได้ไฟล์ trip.png ทันที
+ รับชมวิดีโอสาธิตความยาว 27 วินาที และทดลองเดโมแบบอินเทอร์แอคทีฟได้ที่ filee.sh +

+ +## การติดตั้ง + +ดาวน์โหลดจากหน้า [Releases](https://github.com/KnifeLemon/Filee/releases/latest) + +- **Windows 10/11**: รัน `Filee--win-Setup.exe` หรือแตกไฟล์ `win-Portable.zip` แล้วเปิด `Filee.exe`
+ ตัวติดตั้ง Setup เป็นของ Filee เอง มีเมนูภาษาไทย และไม่ต้องติดตั้งโปรแกรมเสริมใดๆ สามารถเพิ่มลงในเมนูคลิกขวาของ Explorer, ตั้งให้เปิดพร้อมระบบ, เพิ่มคำสั่ง `filee` และดาวน์โหลดเครื่องมือแปลงไฟล์เพิ่มเติมได้ รองรับการติดตั้งแบบเงียบด้วยพารามิเตอร์ของ Inno Setup (`/VERYSILENT /SUPPRESSMSGBOXES`) +- **macOS 13+** (รุ่นพรีวิว): แตกแพ็กเกจ `osx-arm64` หรือ `osx-x64` แล้วรัน `./install.sh` หรือเปิดไฟล์ `.dmg` แล้วลาก Filee ไปไว้ใน Applications (คำสั่ง `filee` มาพร้อมกับ `install.sh`)
+ เนื่องจากบิลด์ยังไม่ได้รับการรับรอง (notarized) ให้เปิดครั้งแรกผ่าน การตั้งค่าระบบ → ความเป็นส่วนตัวและความปลอดภัย → **Open Anyway** +- **Linux x64/ARM64** (Ubuntu 22.04+): แตกแพ็กเกจแล้วรัน `./install.sh` (ไม่ต้องใช้ root, ต้องการเพียง Python 3)
+ ท่าทางการลากต้องใช้ X11 ส่วนบน Wayland สามารถใช้งานผ่านพื้นที่วางไฟล์และเมนูคลิกขวาของโปรแกรมจัดการไฟล์ + +Filee จะแจ้งเตือนเมื่อมีเวอร์ชันใหม่และสามารถอัปเดตตัวเองได้ โดยยังคงการตั้งค่าและเครื่องมือแปลงไฟล์ทั้งหมดไว้ หลังการอัปเดตจะมีสไลด์สรุปฟีเจอร์ใหม่สั้นๆ ให้ดู + +## ฟีเจอร์เด่น + +- **แถบโดนัทตรงเคอร์เซอร์**: กดปุ่มค้างไว้ ลากไฟล์ และปล่อยลงบนฟอร์แมตที่ต้องการ โดยจะแสดงเฉพาะฟอร์แมตที่เข้ากับไฟล์ของคุณ +- **ลากไฟล์จากเบราว์เซอร์ได้ทันที**: ลากรูปภาพ ลิงก์ไฟล์ หรือรายการดาวน์โหลดออกจาก Chrome, Edge, Firefox หรือ Safari ในรูปแบบเดียวกัน Filee จะบันทึกไฟล์ไว้ในโฟลเดอร์ดาวน์โหลด (หรือเก็บไว้เฉพาะไฟล์ที่แปลงแล้ว) และแปลงให้ทันที ลิงก์จะถูกดาวน์โหลดโดยไม่ใช้การลงชื่อเข้าใช้ของเบราว์เซอร์ +- **แยกแถบเครื่องมือตามประเภทไฟล์**: จัดเรียงได้อิสระด้วยการลากวาง พร้อมพรีเซ็ตสำหรับคุณภาพ, ขนาด, DPI, การแยกหน้าและบีบอัด PDF, วิดีโอและเสียง, โฟลเดอร์ปลายทาง และการตั้งชื่อไฟล์ +- **โดนัทมีสองด้าน**: กด Tab หรือหมุนล้อเมาส์ขณะโดนัทเปิดอยู่ เพื่อพลิกไปใช้ฟอร์แมตและเครื่องมืออื่นๆ ที่ด้านหลัง +- **ครอบตัดก่อนแปลง**: ชิ้นส่วน 'ครอบตัด' จะเปิดรูปภาพขึ้นมาทีละรูป ให้คุณลากกรอบ ปรับสัดส่วน แล้วบันทึกเฉพาะส่วนที่ต้องการ +- **แปลงหลายไฟล์พร้อมกันแบบขนาน**: เส้นทางการแปลงที่ต้องผ่านหลายขั้นตอน (เช่น HWP → HWPX → DOCX) จะทำงานโดยอัตโนมัติ +- **โฟลเดอร์เฝ้าติดตาม (Watch folders)**: แปลงไฟล์ทุกไฟล์ที่ถูกเพิ่มเข้ามาในโฟลเดอร์โดยอัตโนมัติ +- **ประวัติการแปลงล่าสุด**: แสดงในหน้าแรกพร้อมรูปตัวอย่าง เปิดดูผลลัพธ์หรือเปิดด้วยแอปอื่นได้ทันที +- **ช่องทางอื่นในการแปลง**: เมนูคลิกขวา, ปุ่มลัดแป้นพิมพ์, พื้นที่วางไฟล์ในหน้าแรก และคำสั่ง [`filee`](#การใช้งานผ่านบรรทัดคำสั่ง-command-line) +- รองรับธีมสว่างและมืด ปรับสีเน้น (accent colour) และความโปร่งใสของโดนัทได้ตามใจ รองรับภาษา English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (จากขวาไปซ้าย), Português (Brasil), Français, नेपाली และไทย + +## ภาพหน้าจอ + + + + + + + + + + +
หน้าแก้ไขแถบโดนัทพร้อมโปรไฟล์และพรีเซ็ตหน้าแรกพร้อมพื้นที่วางไฟล์และประวัติการแปลงล่าสุด
จัดเรียงโดนัทด้วยการลากวาง แยกโปรไฟล์ตามประเภทไฟล์หน้าแรก: พื้นที่วางไฟล์และประวัติการแปลงล่าสุด
+ +## ฟอร์แมตที่รองรับ + +| จาก | เป็น | +|---|---| +| **รูปภาพ**: JPG, PNG, WEBP, AVIF, TIFF, BMP, GIF, APNG, ICO, ICNS, JPEG XL, JPEG 2000, PSD/PSB, TGA, PPM, HEIC, QOI, DDS, PCX, MNG, CUR, …; อ่าน GIMP XCF, RAW จากกล้อง (CR2, CR3, NEF, ARW, DNG, …), DICOM, OpenEXR, HDR, JPEG XR (Windows), iPhone Live Photo (LIVP) | แปลงเป็นฟอร์แมตใดก็ได้ข้างต้น (HEIC⁵), PDF, SVG (แปลงลายเส้น), ปรับขนาด, เกรย์สเกล; Live/Motion Photos (iPhone, Android) → วิดีโอ (MP4, MOV⁵), และวิดีโอ → Live Photo (iPhone) หรือ Motion Photo (Android)⁵ (ทดลอง) | +| **เวกเตอร์**: SVG, SVGZ, EMF, WMF, AI · EPS, PS¹ · CDR, VSD, CGM, ODG, FODG² | PDF (เวกเตอร์), PNG และภาพอื่นๆ, SVG ↔ SVGZ, SVG → DXF/DWG, PDF → EPS/PS¹, SVG → EMF, WMF, ODG² | +| **PDF** | DOCX, HWPX, TXT, PNG, JPG, TIFF, CBZ, PPTX (ภาพของแต่ละหน้า), SVG²; รวมไฟล์ (เลือกลำดับได้), แยกหน้า, เลือกช่วงหน้า, บีบอัดลดขนาด | +| **เอกสาร**: DOCX, DOCM, DOTX, EML, Outlook MSG; อ่าน OFD (ใบกำกับภาษีอิเล็กทรอนิกส์) · DOC, ODT, FODT, OTT, RTF, WPS, WPD, Pages, ClarisWorks, MacWrite, T602, …² | PDF, DOCX, HWPX, EPUB, TXT, HTML; MSG → EML · ODT, FODT, OTT² | +| **สเปรดชีต**: XLSX, XLSM, XLS, XLT, ODS, CSV, TSV · OTS, FODS, Numbers, ET² | PDF, XLSX, ODS, CSV, TSV, JSON, HWPX, HTML · XLT, OTS² | +| **งานนำเสนอ**: PPTX, PPTM, POTX, POTM, PPSX · PPT, ODP, OTP, FODP, Keynote² | PDF, PNG, JPG, DOCX, HWPX · OTP² | +| **HWP**: HWP, HWPX | PDF, PNG, DOCX, HWPX ↔ HWP, TXT, Markdown, HTML | +| **ข้อความ**: TXT, LOG, โค้ดสคริปต์ (PY, PAC, BAT, COMMAND; อ่านอย่างเดียว ไม่มีการรันสคริปต์), Markdown, HTML; อ่าน MHTML · reStructuredText, LaTeX, Org, AsciiDoc, Typst, MediaWiki, DocBook, Jupyter, Textile, man, OPML³ | UTF-8 TXT, PDF, DOCX, HWPX, EPUB · แปลงสลับกันได้, สไลด์ PPTX³ | +| **อีบุ๊ก**: EPUB, KEPUB, MOBI, AZW3, AZW, AZW4, FB2, CBZ, CBR, CB7, HTMLZ, TXTZ · LIT, LRF, CHM, PDB, …⁴ | PDF, EPUB, KEPUB (Kobo), DOCX, TXT, HTML, HWPX · MOBI, AZW3⁴ | +| **วิดีโอ**⁵: MP4, MOV, MKV, WEBM, AVI, WMV, FLV, MPEG, Video CD (DAT), TS, M2TS, 3GP, OGV, VOB, … | MP4 (H.264, HEVC, AV1), WEBM, MOV, MKV, AVI, GIF, APNG, MP3, M4A, 720p, คำบรรยาย (SRT, ASS, WebVTT) | +| **เสียง**⁵: MP3, M4A, AAC, WAV, FLAC, OGG, OPUS, WMA, AIFF, AMR, APE, WavPack, TTA, DSD (DSF, DFF), DTS, AC3, E-AC3, … | MP3, M4A (AAC, ALAC), WAV, FLAC, OGG, OPUS, AAC, WavPack, TTA, W64, AC3, E-AC3 | +| **คำบรรยาย**: SRT, ASS/SSA, WebVTT, SAMI (SMI), LRC, TTML, MicroDVD, SCC | แปลงสลับกันเป็น UTF-8 (อ่านไฟล์ SMI/SRT เกาหลีรหัส CP949 ได้ถูกต้อง) | +| **ไฟล์บีบอัด**: ZIP, ANSYS Workbench (WBPZ), 7Z, RAR, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, GZ, ISO, CAB, DMG, ALZ, EGG, … | แตกไฟล์, บีบอัดเป็น ZIP, 7Z, TAR, TAR.GZ; รวมทุกไฟล์เป็นหนึ่ง ZIP | +| **CAD**: DWG, DXF | PDF, SVG, PNG, DWG ↔ DXF | +| **ฟอนต์**: TTF, OTF, WOFF, WOFF2, EOT | แปลงสลับกันได้ | +| **ข้อมูล**: JSON, JSON Lines, YAML, TOML, XML · vCard, iCalendar | แปลงสลับกันได้, CSV และ XLSX (ตาราง); vCard, iCalendar ↔ CSV | +| **โมเดล 3D**: GLB, glTF, STL, OBJ (+ MTL), 3MF, PLY; อ่าน FBX | แปลงสลับกันได้, แสดงภาพตัวอย่าง PNG | +| **ข้อมูลเวกเตอร์เชิงพื้นที่**: Shapefile, GeoJSON, KML, KMZ, GPX · CSV พร้อมพิกัด | แปลงสลับกันได้ และเป็น CSV / XLSX / JSON โดยพิกัดโปรเจกชัน (UTM, Web Mercator, Lambert, Albers) จะถูกแปลงเป็น WGS 84 ลองจิจูด/ละติจูด | + +ฟอร์แมตที่ไม่มีเครื่องหมายสามารถใช้งานได้ทันทีโดยไม่ต้องติดตั้งซอฟต์แวร์เสริม
+ฟอร์แมตที่มีเครื่องหมายกำกับต้องการเครื่องมือเสริม ซึ่งจะดาวน์โหลดเมื่อจำเป็นเท่านั้น: ¹ Ghostscript, ² LibreOffice, ³ Pandoc, ⁴ calibre, ⁵ FFmpeg (ดู [รายละเอียด](docs/ENGINES.md)) + +## การใช้งานผ่านบรรทัดคำสั่ง (Command line) + +คำสั่ง `filee` ใช้เครื่องมือและพรีเซ็ตชุดเดียวกับตัวแอป (ติดตั้งผ่านตัวติดตั้งหรือ `install.sh`) + +```bash +filee convert photo.heic --to jpg +filee convert *.png --to webp --quality 80 -o converted +filee watch D:\Inbox --to pdf --move-originals +``` + +ดูคำสั่งและตัวเลือกทั้งหมดได้ที่ [filee.sh/cli](https://filee.sh/cli/) หรือพิมพ์ `filee help` + +## การพัฒนา (Development) + +บิลด์ด้วย .NET 10 SDK บน Windows, macOS หรือ Linux: + +```bash +git clone https://github.com/KnifeLemon/Filee.git +cd Filee +pwsh build/fetch-engines.ps1 -Only rhwp,pandoc # ดาวน์โหลดเครื่องมือแปลงไฟล์เสริม +dotnet run --project src/Filee.App +dotnet test +``` + +ดูเพิ่มเติม: [สถาปัตยกรรม (Architecture)](docs/ARCHITECTURE.md) · [เครื่องมือแปลงไฟล์ (Engines)](docs/ENGINES.md) · [การเพิ่มตัวแปลงไฟล์ (Adding a converter)](docs/ADDING-A-CONVERTER.md) · [การเพิ่มภาษา (Adding a language)](docs/ADDING-A-LANGUAGE.md) · [การมีส่วนร่วม (Contributing)](CONTRIBUTING.md) + +ยินดีรับ Pull Request เสมอ! หาก Filee ช่วยประหยัดเวลาของคุณ การกด ⭐ ให้กับโครงการจะช่วยให้ผู้อื่นค้นพบได้ง่ายขึ้น + +## นโยบายการลงนามรหัส (Code signing) + +Filee พัฒนาและเผยแพร่โดย **Myeonggu Kim** ([KnifeLemon](https://github.com/KnifeLemon)) + +เวอร์ชัน Windows ได้รับการลงนามด้วยใบรับรอง Open Source Code Signing จาก [Certum](https://www.certum.eu/) ที่ออกให้แก่ Myeonggu Kim ("Open Source Developer MYEONGGU KIM") สำหรับเวอร์ชันก่อนหน้านั้น (จนถึง 2.0.0) จะไม่มีการลงนาม SmartScreen อาจแจ้งเตือนในเวอร์ชันใหม่จนกว่าจะมียอดดาวน์โหลดเพียงพอ (เลือก "More info" → "Run anyway") ส่วนแพ็กเกจบน macOS จะเป็นการลงนามแบบ ad-hoc และยังไม่ได้รับการรับรอง (notarized) + +เฉพาะไฟล์ที่บิลด์ด้วยเวิร์กโฟลว์รีลีสของ GitHub Actions ในคลังนี้เท่านั้นที่ได้รับการลงนาม และทุกรีลีสจะถูกลงนามและอนุมัติด้วยตนเอง ไลบรารีและโปรแกรมที่ผู้พัฒนาลงนามไว้แล้ว (.NET, SkiaSharp, ImageMagick, Microsoft C++ runtime …) จะคงลายเซ็นเดิมไว้ ส่วนองค์ประกอบที่รวมมาโดยไม่มีลายเซ็น (rhwp, 7-Zip และไลบรารีส่วนใหญ่) จะถูกลงนามด้วยใบรับรองของ Filee ในฐานะส่วนหนึ่งของ Filee + +### นโยบายความเป็นส่วนตัว + +Filee ทำการแปลงไฟล์ภายในเครื่องของคุณเท่านั้น และไม่เคยอัปโหลดไฟล์ขึ้นอินเทอร์เน็ต ไม่มีการเก็บข้อมูลการใช้งานและไม่มี telemetry ใดๆ
+การเชื่อมต่ออินเทอร์เน็ตจะเกิดขึ้นเฉพาะในกรณีต่อไปนี้: + +- ตรวจสอบเวอร์ชันใหม่กับ GitHub (`api.github.com`) หลังเปิดโปรแกรมและทุกๆ สองสามชั่วโมง (ปิดได้ที่ การตั้งค่า → เกี่ยวกับ "ตรวจสอบการอัปเดตอัตโนมัติ") +- ดาวน์โหลดเครื่องมือแปลงไฟล์ที่คุณเลือกติดตั้ง จากแหล่งทางการที่ระบุไว้ใน [`engines.json`](src/Filee.Engines/Infrastructure/engines.json) +- เมื่อคุณคลิกลิงก์ ซึ่งจะเปิดหน้าเว็บในเบราว์เซอร์ของคุณ + +## ผู้สนับสนุน (Sponsor) + +Filee ใช้งานได้ฟรีและจะฟรีตลอดไป หากคุณต้องการสนับสนุนการพัฒนา สามารถเลือกช่องทางที่สะดวกได้เลย +([Fairy](https://fairy.hada.io/@filee) รองรับบัตรเกาหลีและระบบชำระเงินแบบง่ายของเกาหลี) + +**ชื่อหรือโลโก้ของคุณอยู่ตรงนี้ได้** ผู้สนับสนุนรายเดือนจะได้รับการแสดงชื่อไว้ที่นี่ และผู้สนับสนุนระดับโลโก้จะได้แสดงโลโก้ทั้งที่นี่และในหน้าเกี่ยวกับของ Filee ผู้ที่สนับสนุนครั้งเดียวก็ขอให้แสดงชื่อได้เช่นกัน + + + +

+ GitHub Sponsors + Patreon + Ko-fi + PayPal + Fairy +

+ +## สัญญาอนุญาต (License) + +MIT, © 2026 Myeonggu Kim (KnifeLemon) และผู้มีส่วนร่วมใน Filee ส่วนประกอบบุคคลที่สามจะคงสัญญาอนุญาตเดิมตามที่ระบุไว้ใน [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) + +

+ ประวัติจำนวนดาว +

diff --git a/README.zh-CN.md b/README.zh-CN.md index e6a77bff2..82454405f 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -73,7 +73,7 @@ - **监视文件夹**,放入的文件自动转换。 - **最近的转换**显示在主页上,每项都有缩略图,可以直接“打开文件”,也可以用“打开方式”换个应用打开。 - **其他方式** 右键菜单、键盘快捷键、拖放区域和 [`filee` 命令](#命令行)。 -- 浅色和深色主题,可自选强调色和环形工具栏不透明度,支持 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(从右到左)、Português (Brasil)、Français、नेपाली。 +- 浅色和深色主题,可自选强调色和环形工具栏不透明度,支持 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(从右到左)、Português (Brasil)、Français、नेपाली、ไทย。 ## 截图 diff --git a/README.zh-TW.md b/README.zh-TW.md index c32d09a5b..f9f83c9e3 100644 --- a/README.zh-TW.md +++ b/README.zh-TW.md @@ -30,7 +30,7 @@ Filee: #1 C# repository of the day on Trendshift

-

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français

+

English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية · Português (Brasil) · Français · ไทย

@@ -73,7 +73,7 @@ - **監視資料夾**,放入的檔案自動轉換。 - **最近的轉換**顯示在首頁上,每項都有縮圖,可以直接「開啟檔案」,也可以用「開啟方式」換個應用程式開啟。 - **其他方式** 右鍵選單、鍵盤快速鍵、拖放區域和 [`filee` 命令](#命令列)。 -- 淺色和深色主題,可自選強調色和環形工具列不透明度,支援 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(從右到左)、Português (Brasil)、Français、नेपाली。 +- 淺色和深色主題,可自選強調色和環形工具列不透明度,支援 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(從右到左)、Português (Brasil)、Français、नेपाली、ไทย。 ## 截圖 diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 2e63361cb..23e53b335 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -102,7 +102,7 @@ app as its payload. Filee 1.x's installer was built with Inno Setup, which is no | Component | License | Project | |---|---|---| -| Noto Sans, Noto Sans Arabic, Noto Sans JP, Noto Sans KR, Noto Sans SC, Noto Sans Devanagari | SIL Open Font License 1.1 | https://github.com/notofonts | +| Noto Sans, Noto Sans Arabic, Noto Sans JP, Noto Sans KR, Noto Sans SC, Noto Sans Devanagari, Noto Sans Thai | SIL Open Font License 1.1 | https://github.com/notofonts | | Test fonts in `tests/Filee.Engines.Tests/Fonts` (subsets of Noto Sans and Noto Sans KR; not shipped) | SIL Open Font License 1.1 | see `OFL.txt` in that folder | | Material Design Icons (Pictogrammers) | Apache-2.0 | https://pictogrammers.com | | Simple Icons 16.35.0 (GitHub Sponsors, Patreon, Ko-fi and PayPal logos in the Sponsor window) | CC0-1.0 | https://simpleicons.org | diff --git a/build/fetch-fonts.ps1 b/build/fetch-fonts.ps1 index cdb09b221..8e23b3b01 100644 --- a/build/fetch-fonts.ps1 +++ b/build/fetch-fonts.ps1 @@ -22,6 +22,7 @@ $noto = 'https://raw.githubusercontent.com/notofonts/notofonts.github.io/28b15b4 $latin = "$noto/NotoSans/hinted/ttf" $devanagari = "$noto/NotoSansDevanagari/hinted/ttf" $arabic = "$noto/NotoSansArabic/hinted/ttf" +$thai = "$noto/NotoSansThai/hinted/ttf" $cjk = 'https://raw.githubusercontent.com/notofonts/noto-cjk/Sans2.004/Sans/SubsetOTF' # File name => (URL, SHA-256). Update both together when bumping a version. @@ -35,6 +36,9 @@ $fonts = [ordered]@{ 'NotoSansDevanagari-Regular.ttf' = @("$devanagari/NotoSansDevanagari-Regular.ttf", '306B53ECFB182A504DD8A7446093C316387D2FD8DC350D0792ED1753FE0996CD') 'NotoSansDevanagari-Medium.ttf' = @("$devanagari/NotoSansDevanagari-Medium.ttf", '4F46CF50B7992E61C7CEE7C4A8284450CCEED8B540B8ADBC8DF637C982C65757') 'NotoSansDevanagari-Bold.ttf' = @("$devanagari/NotoSansDevanagari-Bold.ttf", '3AD8362A06271814869838DCC3D161B13C9FB97681B627AF1F7F283EA9387D56') + 'NotoSansThai-Regular.ttf' = @("$thai/NotoSansThai-Regular.ttf", '61CF814EEC46B294D6EA4401AC295D0CECD5207BD2331DCC5A15E7301D30EE44') + 'NotoSansThai-Medium.ttf' = @("$thai/NotoSansThai-Medium.ttf", '11BC8F6CF3523241995F07225FCC7D8E25EB55064FBFA39281A5E44DCD59F5F5') + 'NotoSansThai-Bold.ttf' = @("$thai/NotoSansThai-Bold.ttf", '2AC6C6E8A478E23B15F76E4894AF1FA2210F8F350E4E6E54AAD530BEC03EFBFB') 'NotoSansJP-Regular.otf' = @("$cjk/JP/NotoSansJP-Regular.otf", 'DFF723BA59D57D136764A04B9B2D03205544F7CD785A711442D6D2D085AC5073') 'NotoSansJP-Bold.otf' = @("$cjk/JP/NotoSansJP-Bold.otf", '1B0EDFB500B73A4FA8A4FCAAE1BBBD403994E08E73E3E0DA37E70D3853F42C5F') 'NotoSansKR-Regular.otf' = @("$cjk/KR/NotoSansKR-Regular.otf", '69975A0AC8472717870AEFEAB0A4D52739308D90856B9955313B2AD5E0148D68') diff --git a/docs/ADDING-A-LANGUAGE.md b/docs/ADDING-A-LANGUAGE.md index 6ede4daa8..75616d97d 100644 --- a/docs/ADDING-A-LANGUAGE.md +++ b/docs/ADDING-A-LANGUAGE.md @@ -6,10 +6,16 @@ Keep the text short where English is short (buttons, donut labels). 3. Register the language in `AppLanguages.All` (`src/Filee.App/Services/AppLanguages.cs`) with its native name, e.g. `("ja", "日本語")`; the order there is the order of the language pickers. Setup (`src/Filee.Setup`) offers it - too. If the OS culture should pick it automatically, extend `LocalizationService.Resolve`. + too: add the code to the `/LANG` list in `src/Filee.Setup/SetupOptions.cs` and a row to `SetupTextsTests`. + If the OS culture should pick it automatically, extend `LocalizationService.Resolve`. Match the code itself and + `-*` only (`"fr"` and `"fr-CA"`, not North Frisian `"frr"`), and add rows for both to + `LocalizationTests.Auto_follows_the_language_the_user_reads_the_os_in`. 4. `LocalizationTests.Languages` automatically checks every registered language for key and placeholder parity. -5. If the script needs another font, add a static Noto font to `build/fetch-fonts.ps1` - and to the font list in `SoftPalette.FontFamilies` (variable fonts are not supported by Avalonia). +5. If the script needs another font, add a static Noto font to `build/fetch-fonts.ps1` (pinned with its SHA-256), + to the font list in `SoftPalette.FontFamilies` and to the Noto line in `THIRD-PARTY-NOTICES.md` (variable fonts + are not supported by Avalonia). Add the script's system UI fonts too, Windows' to `SoftPalette.FontFamilies` and + `SoftPalette.SystemFontFamilies` (Setup draws with Windows' fonts only) and macOS' to `FontFamilies`, e.g. + Leelawadee UI and Thonburi for Thai. A language written right to left (Arabic) mirrors every window by itself (`SoftPalette.ApplyFlowDirection`). Pictures and drawings that must not mirror (the donut, the crop canvas, animated images, logos) set `FlowDirection="LeftToRight"` on themselves; custom-drawn text is shaped in the UI culture's direction, as @@ -19,8 +25,9 @@ Missing keys fall back to English at runtime, but the test suite requires every language to be complete. -Optional, but welcome in the same or a later pull request: a translated README. Add `README..md` and link -it from the language line at the top of the other READMEs. +Optional, but welcome in the same or a later pull request: a translated README. Add `README..md` with every +section `README.md` has, link it from the language line at the top of the other READMEs and add the language to +their list of UI languages. The maintainers add the language to the website (filee.sh). ## Adding a UI string diff --git a/src/Filee.App/Assets/i18n/th.json b/src/Filee.App/Assets/i18n/th.json new file mode 100644 index 000000000..21a267b96 --- /dev/null +++ b/src/Filee.App/Assets/i18n/th.json @@ -0,0 +1,909 @@ +{ + "app.name": "Filee", + "app.tagline": "ลาก วาง แปลงไฟล์ทันที", + "nav.home": "หน้าแรก", + "nav.general": "ทั่วไป", + "nav.triggers": "ปุ่มลัด", + "nav.toolbar": "แถบโดนัท", + "nav.presets": "พรีเซ็ต", + "nav.watch": "โฟลเดอร์เฝ้าติดตาม", + "nav.theme": "ธีม", + "nav.engines": "เครื่องมือแปลงไฟล์", + "nav.about": "เกี่ยวกับ", + "tray.open": "เปิด Filee", + "tray.pause": "หยุดปุ่มลัดชั่วคราว", + "tray.resume": "เปิดใช้งานปุ่มลัดต่อ", + "tray.quit": "ออก", + "tray.update": "อัปเดตเป็น {0}", + "tray.tooltip": "Filee: กด {0} ค้างไว้แล้วลากไฟล์", + "close.title": "ให้ Filee ทำงานต่อไปหรือไม่?", + "close.text": "ในถาดระบบ แถบโดนัทและโฟลเดอร์เฝ้าติดตามจะยังคงทำงานอยู่\nคุณสามารถเปลี่ยนการตั้งค่านี้ได้ในภายหลังที่ การตั้งค่า → ทั่วไป", + "close.tray": "ให้อยู่ในถาดระบบ", + "close.quit": "ออก", + "close.dont_ask": "ไม่ต้องถามอีก", + "home.title": "หน้าแรก", + "home.drop_title": "วางไฟล์ที่นี่", + "home.drop_select": "ดับเบิลคลิกเพื่อเลือกไฟล์", + "home.drop_hint": "หรือกด {0} ค้างไว้ขณะลากไฟล์ใน Explorer เพื่อเปิดแถบโดนัทตรงตำแหน่งเคอร์เซอร์ของคุณ", + "home.drop_hint_macos": "หรือกด {0} ค้างไว้ขณะลากไฟล์ใน Finder เพื่อเปิดแถบโดนัทตรงตำแหน่งเคอร์เซอร์ของคุณ", + "home.drop_hint_linux": "หรือกด {0} ค้างไว้ขณะลากไฟล์ในโปรแกรมจัดการไฟล์ เพื่อเปิดแถบโดนัทตรงตำแหน่งเคอร์เซอร์ของคุณ", + "home.accessibility_needed": "หากต้องการเปิดโดนัทโดยการลากพร้อมกด ⌥ Option ให้เปิดอนุญาต Filee ใน การช่วยการเข้าถึง (Accessibility)\nระบบจะทำงานทันทีหลังจากเปิดใช้งาน", + "home.elevated": "Filee กำลังทำงานในฐานะผู้ดูแลระบบ (Administrator) ทำให้ Explorer ไม่สามารถลากไฟล์มาวางหรือใช้เมนูได้\nรวมถึงปุ่มลัดไม่สามารถอ่านไฟล์ที่เลือกใน Explorer ได้เช่นกัน\nโปรดรีสตาร์ท Filee โดยไม่ใช้สิทธิ์ผู้ดูแลระบบเพื่อแก้ไขปัญหานี้", + "home.elevated_restart": "รีสตาร์ทโดยไม่ใช้สิทธิ์ผู้ดูแลระบบ", + "home.elevated_restart_failed": "Filee ไม่สามารถรีสตาร์ทตัวเองได้\nโปรดปิด Filee จากถาดระบบ แล้วเปิดใหม่อีกครั้ง", + "elevation.notice_title": "Filee กำลังทำงานในฐานะผู้ดูแลระบบ", + "elevation.notice_text": "Explorer ไม่สามารถส่งไฟล์มายัง Filee หรือใช้เมนูได้ขณะทำงานในโหมดนี้\nโปรดรีสตาร์ทโดยไม่ใช้สิทธิ์ผู้ดูแลระบบ", + "startup.elevated_other": "มี Filee อีกตัวกำลังทำงานในฐานะผู้ดูแลระบบ\nExplorer ไม่สามารถส่งไฟล์ไปได้\nโปรดปิด Filee จากถาดระบบ แล้วเปิดใหม่อีกครั้ง", + "startup.no_answer": "Filee กำลังทำงานอยู่แต่ไม่มีการตอบรับ\nหากทำงานในฐานะผู้ดูแลระบบ โปรดปิดจากถาดระบบแล้วเปิดใหม่อีกครั้ง", + "home.recent": "ประวัติการแปลงไฟล์ล่าสุด", + "home.recent_empty": "ไฟล์ที่คุณแปลงจะแสดงที่นี่", + "home.no_matches": "ไม่พบประวัติการแปลงไฟล์ที่ตรงกับการค้นหา", + "home.open_folder": "เปิดโฟลเดอร์", + "home.open_file": "เปิดไฟล์", + "home.open_with": "เปิดด้วย", + "home.clear_history": "ล้างประวัติ", + "home.files": "{0} ไฟล์", + "home.failed_files": "ล้มเหลว {0} ไฟล์", + "donut.center_drag": "ลากไฟล์มาที่นี่", + "donut.files_same": "{0} × {1}", + "donut.files_mixed": "{0} ไฟล์", + "donut.drop_to": "วาง → {0}", + "donut.pick_in_group": "เลื่อนออกด้านนอกเพื่อเลือก", + "donut.group_empty": "ไม่มีพรีเซ็ตเหลือในกลุ่มนี้ แก้ไขได้ในการตั้งค่า → แถบโดนัท", + "donut.click_to": "คลิก → {0}", + "donut.cancel": "วางที่นี่เพื่อยกเลิก", + "donut.close_hint": "กด Esc เพื่อปิด", + "donut.edit": "แก้ไขพรีเซ็ต", + "donut.empty": "ลากพรีเซ็ตมาที่นี่", + "donut.same_format": "ฟอร์แมตเดิม", + "donut.group_caption": "กลุ่ม {0}", + "donut.flip_to_back": "{0} ↻ ด้านหลัง", + "donut.flip_to_front": "{0} ↻ ด้านหน้า", + "toast.converting": "{0} → {1}", + "toast.done": "เสร็จสิ้น", + "toast.done_errors": "ล้มเหลว {0} จาก {1} ไฟล์", + "toast.failed": "การแปลงไฟล์ล้มเหลว", + "toast.cancelled": "ยกเลิกแล้ว", + "toast.skipped": "ข้ามแล้ว (ไฟล์มีอยู่แล้ว)", + "toast.open_folder": "แสดงไฟล์", + "toast.cancel": "ยกเลิก", + "toast.missing_fonts": "ไม่พบฟอนต์ที่เอกสารใช้: {0}", + "toast.get_fonts": "หาฟอนต์", + "download.badge": "{0}/วินาที · {1}", + "download.badge_files": "{0} · {1} จาก {2} ไฟล์", + "error.unsupported_source": "ไม่รองรับไฟล์ประเภทนี้", + "error.empty_file": "ไฟล์ว่างเปล่า (0 ไบต์) ไฟล์ที่สร้างขึ้นจากเมนูคลิกขวา 'สร้างใหม่' จะว่างเปล่าจนกว่าคุณจะเปิดในแอปและบันทึก", + "format_request.request": "ขอให้รองรับฟอร์แมตนี้", + "format_request.notice_title": "Filee ยังไม่สามารถแปลงไฟล์ {0} ได้", + "format_request.notice_text": "แจ้งให้เราทราบว่าคุณต้องการฟอร์แมตใด\nคำขอของคุณจะช่วยกำหนดฟอร์แมตที่ Filee จะพัฒนาต่อไป\nไฟล์ที่เข้ารหัสหรือติดการคุ้มครองลิขสิทธิ์ (DRM) จะไม่สามารถแปลงได้ไม่ว่าจะฟอร์แมตใดก็ตาม", + "error.no_route": "ไม่มีเครื่องมือที่แปลงฟอร์แมตนี้ได้", + "error.cannot_turn": "การหมุนและพลิกภาพใช้ได้กับไฟล์รูปภาพเท่านั้น", + "error.no_transparency": "ฟอร์แมตนี้ไม่มีความโปร่งใส จึงไม่มีขอบให้ตัดออก", + "error.too_many_frames": "มีจำนวนเฟรมมากเกินกว่าจะบันทึกเป็นรูปภาพได้ ลองเพิ่มค่า \"บันทึกทุกๆ N เฟรม\"", + "error.too_many_pictures": "รูปภาพมากเกินไปสำหรับวิดีโอเดียว ลองแบ่งเป็นหลายวิดีโอ", + "error.not_enough_space": "พื้นที่ว่างบนดิสก์ไม่เพียงพอสำหรับการบันทึกรูปภาพ", + "error.no_motion_photo": "รูปภาพนี้ไม่มีวิดีโอที่ Filee สามารถอ่านได้ (เช่น ภาพเคลื่อนไหวของ Android หรือ Live Photo ของ iPhone ที่มีไฟล์ MOV อยู่คู่กัน)", + "error.live_photo_start": "คลิปเริ่มต้นหลังจุดสิ้นสุดของวิดีโอนี้ โปรดเลือกจุดเริ่มต้นคลิปให้เร็วกว่านี้", + "error.live_photo_hdr": "FFmpeg นี้ไม่มีตัวกรอง zscale จึงไม่สามารถแปลงวิดีโอ HDR นี้เป็น Live / Motion Photo ได้ (FFmpeg ที่ Filee ดาวน์โหลดจะมีตัวกรองนี้)", + "error.rhwp_timeout": "rhwp ไม่สามารถประมวลผลเอกสารขนาดยาวนี้ได้ทันเวลา", + "error.rhwp_timeout_calibre": "rhwp ไม่สามารถประมวลผลเอกสารขนาดยาวนี้ได้ทันเวลา สำหรับอีบุ๊ก ให้ย้าย Calibre ไปไว้เหนือตัวเขียน HWPX ใน การตั้งค่า → เครื่องมือแปลงไฟล์ Calibre จะสร้าง PDF ได้เร็วกว่ามาก", + "error.needs_shaping": "ภาษานี้ต้องใช้ LibreOffice เพื่อแปลงให้ถูกต้อง ติดตั้งได้ในการตั้งค่า → เครื่องมือแปลงไฟล์", + "error.runtime_missing": "ไฟล์รันไทม์ Microsoft Visual C++ ที่เครื่องมือนี้ต้องใช้ขาดหายไปหรือล้าสมัย โปรดอัปเดตหรือติดตั้ง Filee ใหม่ หรือติดตั้ง Microsoft Visual C++ Redistributable (x64)", + "error.conversion_failed": "เครื่องมือแปลงไฟล์รายงานข้อผิดพลาด", + "error.web_download_failed": "ไม่สามารถดาวน์โหลดไฟล์ได้", + "error.web_page": "ลิงก์นี้เปิดหน้าเว็บ ไม่ใช่ไฟล์ Filee ไม่สามารถดาวน์โหลดไฟล์ที่ต้องเข้าสู่ระบบได้ โปรดบันทึกจากเบราว์เซอร์ก่อน", + "error.web_too_large": "ไฟล์มีขนาดใหญ่กว่า 2 GB", + "error.web_blocked": "โปรแกรม ตัวติดตั้ง และสคริปต์จะไม่ได้รับการบันทึก", + "error.web_timeout": "เซิร์ฟเวอร์หยุดการตอบสนอง", + "error.geo_empty": "ไฟล์ไม่มีข้อมูลฟีเจอร์", + "error.geo_unknown_crs": "พิกัดไม่ใช่ลองจิจูดและละติจูด และไฟล์ไม่ได้ระบุระบบพิกัดอ้างอิง (สำหรับ Shapefile โปรดเก็บไฟล์ .prj ไว้คู่กัน)", + "error.geo_unsupported_crs": "ยังไม่รองรับระบบพิกัดนี้", + "error.geo_bad_coordinates": "พิกัดไม่สอดคล้องกับระบบพิกัดนี้", + "error.geo_csv_no_coordinates": "CSV ไม่มีคอลัมน์ลองจิจูด/ละติจูด และไม่มีคอลัมน์ WKT", + "error.geo_csv_no_locations": "ไม่มีแถวใดใน CSV ที่มีตำแหน่งที่ใช้งานได้", + "error.geo_unsupported_shape": "ไม่รองรับรูปทรงเรขาคณิตประเภทนี้", + "error.geo_too_large": "Shapefile จะมีขนาดเกินขีดจำกัดของฟอร์แมตที่ 2 GB", + "notice.pdf_not_smaller": "ไม่สามารถบีบอัดให้เล็กลงได้ จึงคัดลอกไฟล์ตามเดิม", + "notice.empty_spreadsheet_pages_removed": "ลบหน้าว่างของสเปรดชีตออกแล้ว", + "notice.live_photo_pair": "บันทึกเป็นรูปภาพและไฟล์ MOV ที่มีชื่อเดียวกัน นำเข้าทั้งสองไฟล์พร้อมกัน (ผ่านรูปภาพ iCloud, AirDrop หรือ Photos บน Mac) เพื่อใช้งานเป็น Live Photo", + "notice.geo_datum_assumed": "เดตัมไม่ใช่ WGS 84 ตำแหน่งถูกแปลงโดยถือว่าเป็น WGS 84 ซึ่งอาจคลาดเคลื่อนได้ถึงหลายร้อยเมตร", + "notice.geo_gpx_lossy": "GPX เก็บได้เฉพาะจุด เส้นทาง และรอยทาง พร้อมฟิลด์ข้อมูลเพียงไม่กี่ฟิลด์ แอตทริบิวต์อื่นๆ จะถูกตัดออกและโพลีกอนจะกลายเป็นรอยทาง", + "notice.geo_text_cut": "ข้อความบางส่วนยาวเกินกว่าที่ฟิลด์ของ Shapefile อนุญาต (254 ไบต์) จึงถูกตัดทอน", + "notice.geo_columns_dropped": "Shapefile บรรจุคอลัมน์ได้สูงสุด 255 คอลัมน์ คอลัมน์ส่วนเกินจึงถูกละเว้น", + "notice.geo_rows_without_location": "บางแถวไม่มีตำแหน่งที่ใช้งานได้และถูกเก็บไว้โดยไม่มีรูปทรงเรขาคณิต", + "notice.geo_field_names": "ชื่อฟิลด์ของ Shapefile มีความยาวได้ไม่เกิน 10 ตัวอักษร บางชื่อจึงถูกย่อให้สั้นลง", + "notice.geo_shapefile_split": "Shapefile เก็บรูปทรงเรขาคณิตได้ชนิดเดียวต่อไฟล์ จุด เส้น และโพลีกอนจึงถูกบันทึกแยกเป็นคนละไฟล์", + "engine.reason.not_installed": "ยังไม่ได้ติดตั้ง", + "engine.reason.error": "เกิดข้อผิดพลาดขณะตรวจสอบ", + "engine.reason.unsupported_platform": "ไม่พร้อมใช้งานบนแพลตฟอร์มนี้", + "engine.reason.needs_package": "ต้องใช้ {0} ติดตั้งได้ในการตั้งค่า → เครื่องมือแปลงไฟล์", + "engine.magick.description": "JPG, PNG, WEBP, AVIF, HEIC, TIFF, GIF, APNG, PSD, ไฟล์ RAW จากกล้อง และอื่นๆ\nคุณภาพ ขนาด และ DPI จะเป็นไปตามพรีเซ็ตของคุณ", + "engine.wic.description": "รูปภาพ JPEG XR (.jxr, .wdp, .hdp) เช่น ภาพหน้าจอ HDR ของ Windows เป็น PNG, JPG และภาพอื่นๆ โดยใช้โคเดกของ Windows เอง\nHDR จะได้รับการแมปโทนสีเพื่อให้ส่วนสว่างยังคงมีรายละเอียดครบถ้วน", + "engine.pdfium.description": "เรนเดอร์หน้า PDF เป็น PNG, JPG และ TIFF (รวมถึง TIFF และ GIF หลายหน้า) ตามความละเอียดของพรีเซ็ต", + "engine.pdfsharp.description": "สร้าง PDF จากรูปภาพ รวม แยก หรือตัดช่วงหน้าออกจาก PDF\nและช่วยลดขนาด PDF โดยการย่อขนาดรูปภาพภายในไฟล์", + "engine.rhwp.description": "เรนเดอร์ HWP/HWPX เป็น PDF และแปลงระหว่าง HWP ↔ HWPX\nรวมถึงแสดงผลเอกสารที่แปลงเป็น PDF ผ่าน HWPX (DOCX, XLSX, PPTX, อีบุ๊ก…)", + "engine.unhwp.description": "แยกข้อความ, Markdown และ HTML ออกจาก HWP และ HWPX", + "engine.markdown.description": "Markdown → HTML และข้อความล้วน\nไฟล์ต้นฉบับข้อความและสคริปต์ → UTF-8 TXT โดยไม่เรียกใช้สคริปต์", + "engine.spreadsheet.description": "แปลง XLSX, XLS, ODS, CSV และ TSV สลับกัน (XLS อ่านได้อย่างเดียว)\nแยกหนึ่ง CSV ต่อหนึ่งแผ่นงาน", + "engine.ooxml.description": "ไฟล์ที่เปิดใช้งานมาโครและเทมเพลต (DOCM, XLSM, PPTM, DOTX…) ↔ DOCX, XLSX, PPTX\nมาโครจะถูกลบออก", + "engine.hwpx-writer.description": "เขียนไฟล์ HWPX จาก Word, Excel, PowerPoint, PDF, OFD, HTML, อีบุ๊ก และ Markdown\nขั้นตอนแรกของการแปลงเอกสารเป็น PDF โดยไม่ต้องติดตั้ง Office", + "engine.docx-writer.description": "เขียนเอกสาร Word (DOCX) จาก PDF, OFD, HWP/HWPX, Markdown, HTML, สเปรดชีต, สไลด์ และอีบุ๊ก", + "engine.pdf-text.description": "แยกข้อความของ PDF ตามลำดับการอ่าน รวมถึงหน้าที่มีสองคอลัมน์ (ไม่มี OCR สำหรับเอกสารสแกน)", + "engine.pdf-slides.description": "แปลง PDF เป็นสไลด์ PowerPoint แต่ละหน้าจะกลายเป็นรูปภาพบนสไลด์ของตัวเอง (หน้าตาเหมือน PDF แก้ไขข้อความไม่ได้) โดยมีข้อความของหน้านั้นอยู่ในบันทึกของผู้บรรยาย", + "engine.email.description": "อีเมล (EML, Outlook MSG) เป็น HTML และข้อความ พร้อมผู้ส่ง ผู้รับ วันที่ และรูปภาพ แนบไฟล์ลงใน ZIP\nMSG เป็น EML บันทึกหน้าเว็บ (MHTML) เป็นไฟล์ HTML ไฟล์เดียวพร้อมรูปภาพ", + "engine.data.description": "JSON, JSON Lines, YAML, TOML, XML และ CSV สลับกันได้\nรายชื่อติดต่อ vCard และกิจกรรม iCalendar เป็น CSV และกลับกัน\nความคิดเห็นจะถูกตัดออก CSV เก็บเฉพาะตารางเท่านั้น", + "engine.vector.description": "SVG และ SVGZ เป็นเวกเตอร์ PDF รูปภาพ และ DXF แปลงภาพบิตแมปเป็น SVG ไฟล์ Illustrator ที่บันทึกพร้อมเนื้อหา PDF", + "engine.icns.description": "ไอคอนแอป macOS (ICNS) จากและเป็นรูปภาพ", + "engine.font.description": "ฟอนต์: TTF, OTF, WOFF, WOFF2 และ EOT สลับกันได้", + "engine.cad.description": "แบบแปลน AutoCAD: DWG ↔ DXF และแปลงทั้งสองเป็น PDF, SVG และ PNG", + "engine.model3d.description": "โมเดล 3D: GLB, glTF, STL, OBJ, 3MF และ PLY สลับกันได้ FBX เป็นฟอร์แมตใดก็ได้ และแสดงตัวอย่างเป็น PNG", + "engine.geo.description": "ข้อมูลเวกเตอร์เชิงพื้นที่: GeoJSON, KML, KMZ, GPX, Shapefile และ CSV (ลองจิจูด/ละติจูด หรือ WKT) สลับกันได้\nผลลัพธ์เป็นลองจิจูด/ละติจูด WGS 84 ส่วน Shapefile ที่มีพิกัดโปรเจกชัน (UTM, Web Mercator, Lambert, Albers) จะได้รับการแปลงค่า", + "engine.archive.description": "แตกไฟล์ ZIP, 7Z, RAR, TAR, ISO และอื่นๆ และบีบอัดเป็น ZIP, 7Z หรือ TAR.GZ (7-Zip)", + "engine.ebook.description": "EPUB, MOBI, AZW3, FB2 และหนังสือการ์ตูน (CBZ, CBR) เป็น PDF, EPUB, DOCX และข้อความ\nรวมถึงเอกสารเป็น EPUB, EPUB เป็น KEPUB สำหรับ Kobo และ PDF เป็น CBZ", + "engine.subtitle.description": "คำบรรยาย: SRT, ASS/SSA, WebVTT, SAMI (SMI), LRC, TTML, MicroDVD และ SCC สลับกันได้ บันทึกเป็น UTF-8\nอ่านไฟล์ SMI และ SRT ภาษาเกาหลีในรหัส CP949 / EUC-KR ได้ถูกต้อง", + "engine.ffmpeg.description": "วิดีโอและเสียง: MP4, MOV, MKV, WEBM, MP3, M4A, WAV, FLAC และอื่นๆ\nรวมถึงแยกเสียงและคำบรรยาย สร้างภาพเคลื่อนไหว GIF และ APNG และบันทึกภาพเป็น HEIC", + "engine.pandoc.description": "Markdown และ HTML ↔ ODT และ RTF, DOCX → Markdown\nreStructuredText, LaTeX, Org, AsciiDoc, Typst, MediaWiki, DocBook, Jupyter และอื่นๆ ↔ Markdown, HTML, DOCX และ ODT\nMarkdown และ Org → สไลด์ PPTX", + "engine.ghostscript.description": "EPS, PostScript และไฟล์ Illustrator รุ่นเก่าเป็น PDF และรูปภาพ แปลง PDF เป็น EPS และ PS", + "engine.calibre.description": "ฟอร์แมตอีบุ๊กที่หาได้ยาก (LIT, LRF, CHM, PDB, RB…) และไฟล์สำหรับ Kindle (MOBI, AZW3)\nเมื่อวางไว้เหนือตัวเขียน HWPX จะทำหน้าที่สร้าง PDF ของอีบุ๊กด้วย (เร็วกว่ามากสำหรับหนังสือเล่มหนา)", + "engine.libreoffice.description": "อ่านฟอร์แมตรุ่นเก่าและฟอร์แมตที่พบน้อย: DOC, PPT, Pages, Keynote, Numbers, WordPerfect, ClarisWorks, Publisher, Visio…\nและบันทึกเป็น DOC, XLS, PPT, ODT, ODP, แม่แบบ OpenDocument และ EMF", + "profile.images": "รูปภาพ", + "profile.pdf": "PDF", + "profile.office": "เอกสาร", + "profile.spreadsheets": "สเปรดชีต", + "profile.presentations": "งานนำเสนอ", + "profile.hwp": "HWP / HWPX", + "profile.text": "ข้อความและ Markdown", + "profile.ebooks": "อีบุ๊ก", + "profile.video": "วิดีโอ", + "profile.audio": "เสียง", + "profile.subtitles": "คำบรรยาย", + "profile.vector": "เวกเตอร์กราฟิก", + "profile.archives": "ไฟล์บีบอัด", + "profile.cad": "แบบแปลน CAD", + "profile.fonts": "ฟอนต์", + "profile.data": "ข้อมูล", + "profile.models": "โมเดล 3D", + "profile.geo": "ข้อมูลเชิงพื้นที่", + "profile.mixed": "ไฟล์รวมหลายประเภท", + "preset.crop": "ครอบตัด", + "crop.save": "ครอบตัดและบันทึก", + "crop.reset": "รีเซ็ต", + "crop.skip": "ข้าม", + "crop.aspect_title": "สัดส่วน:", + "crop.aspect_free": "อิสระ", + "crop.aspect_original": "ต้นฉบับ", + "crop.page_counter": "{0} จาก {1}", + "crop.save_next": "ครอบตัดและต่อไป", + "crop.swap": "สลับแนวตั้งและแนวนอน (X)", + "crop.portrait": "แนวตั้ง", + "crop.landscape": "แนวนอน", + "crop.hint_keys": "ปุ่มลูกศรเพื่อเลื่อนกรอบ, Shift × 10 · Esc เพื่อปิด", + "crop.close_hint": "ปิด (Esc)", + "crop.maximize": "ขยายใหญ่สุด", + "crop.restore": "คืนขนาด", + "crop.state_current": "กำลังเปิด", + "crop.state_waiting": "กำลังรอ", + "crop.state_done": "ครอบตัดแล้ว", + "crop.state_skipped": "ข้ามแล้ว", + "crop.state_failed": "ล้มเหลว", + "preset.half_size": "ขนาดครึ่งหนึ่ง", + "preset.grayscale": "ขาวดำ (เกรย์สเกล)", + "preset.remove_background": "ลบพื้นหลัง", + "preset.trim_transparent": "ตัดขอบโปร่งใส", + "preset.group_rotate": "หมุนภาพ", + "preset.rotate_left": "หมุนซ้าย", + "preset.rotate_left.short": "ซ้าย", + "preset.rotate_right": "หมุนขวา", + "preset.rotate_right.short": "ขวา", + "preset.rotate_180": "หมุน 180°", + "preset.rotate_180.short": "180°", + "preset.group_flip": "พลิกภาพ", + "preset.flip_horizontal": "พลิกแนวนอน", + "preset.flip_horizontal.short": "แนวนอน", + "preset.flip_vertical": "พลิกแนวตั้ง", + "preset.flip_vertical.short": "แนวตั้ง", + "preset.merge_pdf": "รวมไฟล์ PDF", + "merge.order_title": "เลือกลำดับการรวมไฟล์", + "merge.order_hint": "เลือกไฟล์แล้วเลื่อนขึ้นหรือลง ไฟล์จะรวมจากบนลงล่าง (Alt+↑ / Alt+↓)", + "preset.split_pdf": "แยกหน้า PDF", + "preset.compress_pdf": "บีบอัด PDF", + "preset.long_image": "รูปภาพขนาดยาว", + "preset.pdf_slides": "PPTX (สไลด์)", + "preset.extract": "แตกไฟล์", + "preset.zip_all": "รวมเป็น ZIP เดียว", + "preset.extract_subtitles": "แยกคำบรรยาย", + "preset.trace_svg": "แปลงเป็น SVG", + "preset.trace_line_art": "แปลงลายเส้นเป็น SVG", + "preset.extract_frames_png": "ดึงเฟรมภาพ (PNG)", + "preset.extract_frames_jpg": "ดึงเฟรมภาพ (JPG)", + "preset.extract_motion": "ดึงวิดีโอจาก Live Photo", + "preset.live_photo_iphone": "Live Photo (iPhone)", + "preset.motion_photo_android": "Motion Photo (Android)", + "preset.compress_image": "บีบอัดรูปภาพ", + "preset.compress_video": "บีบอัดวิดีโอ", + "preset.video_from_images": "วิดีโอจากรูปภาพ", + "preset.extract_audio": "แยกเสียง", + "preset.merge_videos": "รวมวิดีโอ", + "preset.compress_audio": "บีบอัดเสียง", + "preset.merge_audio": "รวมไฟล์เสียง", + "preset.remove_metadata": "ลบเมทาดาตา", + "format.folder": "โฟลเดอร์", + "format.category.Image": "รูปภาพ", + "format.category.Pdf": "PDF", + "format.category.Document": "เอกสาร", + "format.category.Spreadsheet": "สเปรดชีต", + "format.category.Presentation": "งานนำเสนอ", + "format.category.Hwp": "HWP", + "format.category.Text": "ข้อความ", + "format.category.Video": "วิดีโอ", + "format.category.Audio": "เสียง", + "format.category.Ebook": "อีบุ๊ก", + "format.category.Archive": "ไฟล์บีบอัด", + "format.category.Vector": "เวกเตอร์", + "format.category.Cad": "CAD", + "format.category.Font": "ฟอนต์", + "format.category.Subtitle": "คำบรรยาย", + "format.category.Data": "ข้อมูล", + "format.category.Model3D": "โมเดล 3D", + "format.category.Geo": "ข้อมูลเชิงพื้นที่", + "general.title": "ทั่วไป", + "general.language": "ภาษา", + "general.language_auto": "ตามระบบ", + "general.start_with_system": "เปิด Filee อัตโนมัติเมื่อเข้าสู่ระบบ", + "general.show_in_dock": "แสดง Filee ใน Dock", + "general.show_menu_bar_icon": "แสดง Filee ในแถบเมนู", + "general.dock_failed": "ไม่สามารถเปลี่ยนไอคอน Dock ของ Filee ได้", + "general.context_menu": "แสดง “แปลงไฟล์ด้วย Filee” ในเมนูคลิกขวาของ Explorer", + "general.context_menu_label": "แปลงไฟล์ด้วย Filee", + "general.context_menu_macos": "แสดง “แปลงไฟล์ด้วย Filee” เมื่อคลิกขวาที่ไฟล์ใน Finder", + "general.context_menu_linux": "เพิ่ม “แปลงไฟล์ด้วย Filee” ในโปรแกรมจัดการไฟล์", + "general.integration_macos": "Finder จะแสดงในเมนูคลิกขวา (ใต้ Quick Actions หรือ Services เมื่อเมนูยาว)\nควรเก็บ Filee ไว้ในโฟลเดอร์ Applications", + "general.integration_linux": "เพิ่มการดำเนินการไฟล์ใน Thunar, Nautilus, Nemo และ Dolphin\nหากต้องการเปลี่ยนปุ่มลัดของ Thunar ให้ปิด Thunar ก่อนแล้วเปิดใหม่หลังจากนั้น", + "general.integration_failed": "ไม่สามารถตั้งค่าการเชื่อมต่อกับระบบได้: {0}", + "general.modern_menu_hint": "บน Windows 11 รายการนี้จะอยู่ใต้ “แสดงตัวเลือกเพิ่มเติม” (Show more options)\nและสามารถนำไปไว้ในเมนูหลักได้เช่นกัน (Windows จะขอสิทธิ์ผู้ดูแลระบบหนึ่งครั้ง)", + "general.modern_menu_on": "“แปลงไฟล์ด้วย Filee” อยู่ในเมนูหลักของ Windows 11 แล้ว", + "general.modern_menu_outdated": "รายการในเมนูหลักเป็นของ Filee รุ่นเก่าหรือถูกย้ายตำแหน่ง\nโปรดเพิ่มใหม่อีกครั้งเพื่ออัปเดต", + "general.modern_menu_add": "เพิ่มลงในเมนูหลัก", + "general.modern_menu_remove": "ลบออกจากเมนูหลัก", + "general.modern_menu_busy": "กำลังรอ Windows…", + "general.modern_menu_cancelled": "ยกเลิกแล้ว รายการจะยังคงอยู่ใต้ “แสดงตัวเลือกเพิ่มเติม”", + "general.modern_menu_failed": "Windows ไม่ได้เพิ่มรายการ: {0}", + "general.modern_menu_remove_failed": "Windows ไม่ได้ลบรายการ: {0}", + "general.default_output": "ตำแหน่งบันทึกเริ่มต้น", + "general.default_output_hint": "พรีเซ็ตที่ตั้งเป็น “ตำแหน่งบันทึกเริ่มต้น” จะบันทึกที่นี่\nพรีเซ็ตที่มีตำแหน่งบันทึกของตัวเองจะยังคงบันทึกตามเดิม", + "general.keep_dates": "คงวันที่สร้างและแก้ไขไฟล์เดิมไว้สำหรับทุกการแปลง", + "general.keep_dates_hint": "ไฟล์ที่แปลงแล้วจะคงวันที่สร้างและวันที่แก้ไขตามไฟล์ต้นฉบับในทุกพรีเซ็ต\nหากปิด: จะทำเฉพาะพรีเซ็ตที่เลือก \"คงวันที่เดิมของไฟล์ไว้\"", + "general.browser_drops": "ไฟล์ที่ลากมาจากเว็บเบราว์เซอร์", + "general.browser_drops_hint": "กดปุ่มค้างไว้แล้วลากรูปภาพ ลิงก์ไฟล์ หรือการดาวน์โหลดออกจาก Chrome, Edge, Firefox หรือ Safari: แถบโดนัทจะเปิดขึ้นเหมือนกับไฟล์ในเครื่องของคุณ ไฟล์จะถูกบันทึกลงในโฟลเดอร์นี้ และพรีเซ็ตที่ตั้งให้บันทึกข้างไฟล์ต้นฉบับจะนำไฟล์ที่แปลงแล้วมาไว้ที่นี่ด้วย\nFilee จะดาวน์โหลดลิงก์โดยตรงโดยไม่ใช้การเข้าสู่ระบบของเบราว์เซอร์คุณ", + "general.browser_drops_folder": "บันทึกลงที่", + "general.browser_drops_only_converted": "บันทึกเฉพาะไฟล์ที่แปลงแล้วเท่านั้น", + "general.browser_drops_only_converted_hint": "ไฟล์ต้นฉบับจะถูกพักไว้ในโฟลเดอร์ชั่วคราวและจะถูกลบหลังจากแปลงไฟล์เสร็จสิ้น", + "general.zip_geo": "บันทึกผลลัพธ์ข้อมูลเชิงพื้นที่ทั้งหมดเป็น ZIP", + "general.zip_geo_hint": "Shapefile, GeoJSON, KML, GPX และผลลัพธ์เชิงพื้นที่อื่นๆ จะถูกรวมเป็นไฟล์ ZIP หนึ่งไฟล์ต่อหนึ่งรายการในทุกพรีเซ็ต\nหากปิด: จะทำเฉพาะพรีเซ็ตที่เลือก \"บันทึกผลลัพธ์เป็น ZIP\"", + "general.check_updates": "ตรวจสอบการอัปเดตอัตโนมัติ", + "general.close_action": "เมื่อปิดหน้าต่าง", + "general.close.Ask": "ถามทุกครั้ง", + "general.close.Tray": "ให้ Filee ทำงานต่อไปในถาดระบบ", + "general.close.Quit": "ออกจาก Filee", + "general.history": "ประวัติการแปลงไฟล์", + "general.no_history": "ไม่ต้องเก็บประวัติการแปลงไฟล์ล่าสุด", + "general.history_limit": "จำนวนประวัติที่ต้องการบันทึก", + "general.clear_history": "ล้างประวัติ", + "general.history_count": "มี {0} รายการในประวัติ", + "general.history_cleared": "ล้างประวัติแล้ว", + "general.check_now": "ตรวจสอบทันที", + "general.update_available": "มีเวอร์ชัน {0} ให้อัปเดต", + "general.update_none": "คุณใช้เวอร์ชันล่าสุดแล้ว ({0})", + "update.sidebar": "อัปเดตเป็น {0}", + "update.notice_title": "มี Filee {0} ให้อัปเดต", + "update.notice_text": "กด 'อัปเดต' แล้ว Filee จะดาวน์โหลดและติดตั้งเวอร์ชันใหม่ การตั้งค่าทั้งหมดของคุณจะยังคงอยู่", + "update.download": "ดาวน์โหลด", + "update.later": "ไว้ทีหลัง", + "update.install": "อัปเดต", + "update.notice_text_portable": "นี่คือเวอร์ชันพกพา (Portable)\nดาวน์โหลดไฟล์ zip ใหม่แล้วแตกไฟล์ทับโฟลเดอร์นี้ การตั้งค่าของคุณจะยังคงอยู่ครบถ้วน", + "update.downloading": "กำลังดาวน์โหลดการอัปเดต… {0}%", + "update.installing_short": "กำลังติดตั้ง…", + "update.installing": "ตัวติดตั้งกำลังทำงาน Filee จะเปิดใหม่อีกครั้งเมื่อเสร็จสิ้น", + "update.failed": "ไม่สามารถอัปเดตอัตโนมัติได้ ดาวน์โหลดเวอร์ชันใหม่ได้ที่ filee.sh", + "update.failed_alert": "ไม่สามารถดาวน์โหลดการอัปเดตได้\nกดตกลงเพื่อเปิด filee.sh และดาวน์โหลดเวอร์ชันใหม่ที่นั่น", + "update.cancelled": "การอัปเดตถูกยกเลิก กดอัปเดตอีกครั้งเพื่อทำการติดตั้ง", + "update.level.Required": "การอัปเดตที่จำเป็น", + "update.level.Recommended": "การอัปเดตที่แนะนำ", + "update.level.Optional": "การอัปเดตทางเลือก", + "update.level_hint.Required": "แก้ไขปัญหาที่ส่งผลต่อไฟล์ของคุณ โปรดอัปเดต", + "update.level_hint.Recommended": "แก้ไขข้อผิดพลาด", + "update.level_hint.Optional": "ฟีเจอร์ใหม่ อัปเดตเมื่อใดก็ได้ตามต้องการ", + "update.pill.Required": "จำเป็น", + "update.pill.Optional": "ไม่บังคับ", + "update.more_changes": "… และอีก {0} รายการ", + "general.data_folder": "โฟลเดอร์การตั้งค่า", + "general.open_data_folder": "เปิด", + "general.library": "พรีเซ็ตและแถบเครื่องมือ", + "general.export": "ส่งออก…", + "general.import": "นำเข้า…", + "general.reset_library": "รีเซ็ตเป็นค่าเริ่มต้น", + "general.reset_confirm": "แทนที่พรีเซ็ตและโปรไฟล์แถบเครื่องมือทั้งหมดด้วยค่าเริ่มต้นหรือไม่?", + "general.imported": "นำเข้าแล้ว {0} รายการ", + "triggers.title": "ปุ่มลัด", + "triggers.description": "เลือกวิธีเปิดแถบโดนัท คุณสามารถเพิ่มท่าทางและปุ่มลัดได้ตามต้องการ", + "triggers.macos_permissions": "อนุญาต Filee ใน การตั้งค่าระบบ > ความเป็นส่วนตัวและความปลอดภัย > การช่วยการเข้าถึง\nFinder จะขอสิทธิ์การควบคุมอัตโนมัติ (Automation) ในครั้งแรกที่คุณใช้ปุ่มลัดกับไฟล์ที่เลือก", + "triggers.linux_x11": "ท่าทางการลากทำงานบน X11\nเมื่อเปิดการทำงานร่วมกับโปรแกรมจัดการไฟล์ ปุ่มลัดแป้นพิมพ์แรกจะเรียกใช้คำสั่ง Filee ของ Thunar (เปิด Thunar ใหม่หลังเปลี่ยนค่า)\nท่าทางการกดค้างและปุ่มลัดในโปรแกรมจัดการไฟล์อื่นยังไม่รองรับ ให้ใช้เมนู Filee หรือพื้นที่วางไฟล์แทน", + "triggers.linux_wayland": "ท่าทางที่ติดตามเคอร์เซอร์ยังไม่พร้อมใช้งานบน Wayland\nโปรดใช้เซสชัน X11 หรือแปลงไฟล์ด้วยเมนูของโปรแกรมจัดการไฟล์และพื้นที่วางไฟล์\nThunar สามารถใช้ปุ่มลัดแรกได้หลังจากรีสตาร์ท", + "triggers.linux_wayland_experimental": "ท่าทางบน Wayland อยู่ในขั้นทดลองและทำงานได้บน KDE Plasma เท่านั้น\nFilee อ่านค่าเมาส์จาก /dev/input และสคริปต์ KWin จะวางโดนัทตรงเคอร์เซอร์ (ดู INSTALL.txt) การกด Ctrl+ลาก ในแอปอื่นอาจถูกรบกวน ให้ใช้ปุ่มปรับแต่งอื่น เช่น Ctrl+Shift แทนหากมีปัญหา", + "triggers.open_accessibility": "เปิดการตั้งค่าการช่วยการเข้าถึง", + "triggers.retry_hook": "ลองเชื่อมต่อท่าทางอีกครั้ง", + "triggers.hook_running": "ระบบตรวจจับการป้อนข้อมูลส่วนกลางกำลังทำงาน", + "triggers.hook_stopped": "ระบบตรวจจับการป้อนข้อมูลส่วนกลางหยุดทำงาน\nคำสั่งในโปรแกรมจัดการไฟล์และพื้นที่วางไฟล์ยังคงใช้งานได้ตามปกติ", + "triggers.hook_failed": "การตรวจจับการป้อนข้อมูลส่วนกลางล้มเหลว: {0}", + "triggers.hook_linux_backend": "ไม่สามารถเริ่มท่าทางได้เนื่องจากไลบรารีอินพุตของ X11 ไม่โหลด\nโปรดใช้เซสชัน X11 และติดตั้ง libxtst6 และ libxt6 (Ubuntu/Debian: sudo apt install libxtst6 libxt6) แล้วลองอีกครั้ง\nคำสั่งในโปรแกรมจัดการไฟล์และพื้นที่วางไฟล์ยังคงใช้งานได้", + "triggers.add": "เพิ่มท่าทาง", + "triggers.remove": "ลบออก", + "triggers.enabled": "เปิดใช้งาน", + "triggers.kind": "ท่าทาง", + "triggers.kind.Drag": "กดปุ่มคีย์ลัด + ลากไฟล์", + "triggers.kind.Hold": "กดปุ่มคีย์ลัด + กดค้าง", + "triggers.kind.KeyChord": "ปุ่มลัดแป้นพิมพ์ (สำหรับไฟล์ที่เลือก)", + "triggers.modifiers": "ปุ่มปรับแต่ง (Modifiers)", + "triggers.button": "ปุ่มเมาส์", + "triggers.button.None": "ไม่มี", + "triggers.button.Left": "ซ้าย", + "triggers.button.Right": "ขวา", + "triggers.button.Middle": "กลาง", + "triggers.button.X1": "ย้อนกลับ (X1)", + "triggers.button.X2": "ไปข้างหน้า (X2)", + "triggers.key": "ปุ่ม", + "triggers.record": "บันทึกปุ่ม", + "triggers.recording": "กดปุ่มคีย์ลัดที่ต้องการ…", + "triggers.clear": "ล้างค่า", + "triggers.recording_key": "กดปุ่ม…", + "triggers.flip_title": "พลิกแถบโดนัท", + "triggers.flip_description": "ขณะที่แถบโดนัทเปิดอยู่ การกดปุ่มนี้หรือหมุนล้อเมาส์จะแสดงด้านหลัง โดนัทแต่ละอันสามารถตั้งค่าด้านหลังได้ที่ แถบโดนัท", + "triggers.flip_wheel": "หมุนล้อเมาส์เพื่อพลิกโดนัท", + "triggers.flip_reset": "ใช้ปุ่ม Tab", + "triggers.flip_key_taken": "ไม่สามารถใช้ {0} เพื่อพลิกโดนัทได้: โดนัทหรือปุ่มลัดอื่นใช้งานปุ่มนี้อยู่แล้ว", + "triggers.flip_key_unknown": "ไม่สามารถใช้ปุ่มนี้ได้ โปรดลองปุ่มอื่น", + "triggers.threshold": "ระยะการลาก", + "triggers.threshold_system": "ค่าเริ่มต้นของระบบ", + "triggers.hold_ms": "เวลากดค้าง", + "triggers.scope": "ใช้งานใน", + "triggers.scope.FileManager": "โปรแกรมจัดการไฟล์และเดสก์ท็อป", + "triggers.scope.FileManager_macos": "Finder และเดสก์ท็อป", + "triggers.scope.FileManager_linux": "โปรแกรมจัดการไฟล์และเดสก์ท็อป", + "triggers.scope.Anywhere": "ทุกที่", + "triggers.excluded": "ไม่เรียกใช้ในแอปเหล่านี้เด็ดขาด", + "triggers.excluded_hint": "พิมพ์ชื่อแอปแล้วกด Enter เช่น photoshop", + "triggers.excluded_pick": "เลือกจากแอปที่กำลังเปิดอยู่", + "triggers.excluded_none_running": "ไม่มีหน้าต่างแอปอื่นเปิดอยู่", + "triggers.excluded_note": "ท่าทางและปุ่มลัดจะไม่ทำงานขณะเคอร์เซอร์อยู่เหนือแอปเหล่านี้", + "triggers.paused": "หยุดปุ่มลัดชั่วคราวแล้ว", + "toolbar.title": "แถบโดนัท", + "toolbar.step_profile": "1. เลือกโปรไฟล์", + "toolbar.step_arrange": "2. จัดเรียงพรีเซ็ต", + "toolbar.add_profile": "โปรไฟล์ใหม่", + "toolbar.profile_new": "โปรไฟล์ใหม่", + "toolbar.delete_profile": "ลบโปรไฟล์", + "toolbar.reset_profile": "รีเซ็ตเป็นค่าเริ่มต้น", + "toolbar.reset_profile_confirm": "รีเซ็ต “{0}” ให้กลับเป็นพรีเซ็ตและนามสกุลไฟล์เริ่มต้นหรือไม่? โปรไฟล์และพรีเซ็ตอื่นๆ ของคุณจะยังคงอยู่ตามเดิม", + "toolbar.name": "ชื่อ", + "toolbar.extensions": "ใช้สำหรับนามสกุลไฟล์เหล่านี้", + "toolbar.extensions_hint": "เพิ่มนามสกุลไฟล์ เช่น jpg", + "toolbar.available": "พรีเซ็ตที่ใช้งานได้", + "toolbar.hint_add": "ลากชิปมาวางบนโดนัทเพื่อเพิ่ม", + "toolbar.hint_remove": "ลากชิ้นส่วนโดนัทกลับมาที่นี่เพื่อลบออก", + "toolbar.hint_reorder": "ลากชิ้นส่วนทับกันเพื่อสลับลำดับ", + "toolbar.hint_edit": "คลิกขวาที่ชิ้นส่วนหรือกด ✎ เพื่อแก้ไข", + "toolbar.max_reached": "โดนัทบรรจุพรีเซ็ตได้สูงสุด {0} รายการ", + "toolbar.appearance": "รูปลักษณ์", + "toolbar.size": "ขนาด", + "toolbar.hole": "ขนาดรูกลาง", + "toolbar.opacity": "ความทึบแสง", + "toolbar.new_preset": "พรีเซ็ตใหม่", + "toolbar.new_group": "กลุ่มใหม่", + "toolbar.face_front": "ด้านหน้า", + "toolbar.face_back": "ด้านหลัง", + "toolbar.face_hint": "พลิกโดนัทที่เปิดอยู่: {0}", + "toolbar.face_hint_wheel": "ล้อเมาส์", + "toolbar.face_hint_off": "เลือกปุ่มหรือล้อเมาส์ในหน้า ปุ่มลัด เพื่อใช้พลิกโดนัทที่เปิดอยู่", + "group.editor_title": "กลุ่ม", + "group.hint": "กลุ่มคือชิ้นโดนัทหนึ่งชิ้นสำหรับหลายพรีเซ็ต: วางเคอร์เซอร์แช่ไว้หรือเลื่อนออกด้านนอกแล้วพรีเซ็ตจะกางออกมารอบๆ", + "group.members": "พรีเซ็ต ({0} / {1})", + "group.empty": "ยังไม่มีพรีเซ็ต เพิ่มได้ด้านล่าง", + "group.add": "เพิ่ม", + "group.add_placeholder": "เลือกพรีเซ็ต", + "group.full": "กลุ่มบรรจุได้สูงสุด {0} พรีเซ็ต", + "group.move_up": "เลื่อนขึ้น", + "group.move_down": "เลื่อนลง", + "group.remove": "ลบออกจากกลุ่ม", + "group.delete": "ลบกลุ่ม", + "group.delete_confirm": "ลบกลุ่ม “{0}” หรือไม่? พรีเซ็ตภายในกลุ่มจะยังคงอยู่", + "toolbar.ext_none": "ยังไม่มีนามสกุลไฟล์ โปรไฟล์นี้จะใช้งานได้เมื่อคุณเพิ่มนามสกุลไฟล์แล้วเท่านั้น", + "toolbar.ext_invalid": "“{0}” ไม่ใช่นามสกุลไฟล์ (เช่น jpg หรือ tar.gz)", + "toolbar.ext_duplicate": "{0} มีอยู่ในรายการแล้ว", + "toolbar.ext_also_in": "อยู่ใน “{0}” ด้วย", + "toolbar.ext_in_profile": "ใน {0}", + "toolbar.ext_claimed_first": "{0}: อยู่ใน “{1}” ด้วย ซึ่งอยู่ก่อนหน้าในรายการ ดังนั้นไฟล์เหล่านี้จะยังคงเปิดด้วย “{1}”", + "toolbar.ext_claimed_later": "{0}: อยู่ใน “{1}” ด้วย\nโปรไฟล์นี้อยู่ก่อนหน้าในรายการ ดังนั้นไฟล์เหล่านี้จะเปิดด้วยโปรไฟล์นี้แทน", + "toolbar.ext_unknown": "{0}: Filee ไม่รู้จักประเภทไฟล์นี้\nคุณสามารถเก็บไว้ได้ แต่ไฟล์เหล่านี้จะไม่สามารถแปลงได้", + "toolbar.ext_unknown_tip": "ไม่รู้จักประเภทไฟล์นี้", + "toolbar.mixed_toggle": "ใช้สำหรับไฟล์ที่เลือกแบบรวมประเภท (ไฟล์คนละประเภทกัน)", + "toolbar.mixed_locked": "Filee จำเป็นต้องมีอย่างน้อยหนึ่งโปรไฟล์สำหรับไฟล์รวมหลายประเภท จึงไม่สามารถนำโปรไฟล์นี้ออกได้", + "toolbar.mixed_badge": "สำหรับไฟล์ที่เลือกแบบรวมประเภท", + "toolbar.mixed_title": "แสดงแถบเครื่องมือนี้เมื่อทุกไฟล์ที่เลือกเป็นหนึ่งใน:", + "toolbar.mixed_expand": "แสดงนามสกุลไฟล์", + "toolbar.mixed_other_group": "นามสกุลไฟล์อื่นๆ", + "toolbar.mixed_catch_all": "ไม่ได้เลือกอะไรไว้: จะใช้กับไฟล์รวมหลายประเภทที่ไม่มีโปรไฟล์อื่นรองรับ", + "toolbar.mixed_shadowed": "ไม่ได้เลือกอะไรไว้ ดังนั้น “{0}” ที่อยู่ก่อนหน้าในรายการจะรองรับไฟล์รวมทุกรูปแบบ\nโปรดเลือกบางนามสกุลไฟล์เพื่อใช้งานโปรไฟล์นี้", + "toolbar.mixed_covered": "“{0}” อยู่ก่อนหน้าและครอบคลุมทุกนามสกุลที่เลือกไว้ที่นี่ โปรไฟล์นี้จึงจะไม่ได้ถูกนำมาใช้", + "toolbar.mixed_others": "ไฟล์รวมประเภทแบบอื่นๆ จะเปิด “{0}”", + "toolbar.mixed_others_self": "ไม่มีโปรไฟล์ไฟล์รวมอันอื่นที่ไม่ได้เลือกอะไรไว้ ดังนั้นโปรไฟล์นี้จะถูกใช้กับไฟล์รวมแบบอื่นๆ ทั้งหมดด้วย", + "tags.remove": "ลบออก", + "presets.title": "พรีเซ็ต", + "presets.add": "สร้างใหม่", + "presets.duplicate": "ทำซ้ำ", + "presets.delete": "ลบ", + "presets.save": "บันทึก", + "presets.revert": "คืนค่าเดิม", + "presets.name": "ชื่อ", + "presets.target": "แปลงเป็น", + "presets.same_as_source": "ฟอร์แมตเดียวกับต้นฉบับ", + "presets.group.image": "รูปภาพ", + "presets.quality": "คุณภาพ", + "presets.resize": "ปรับขนาด", + "presets.resize.None": "ขนาดต้นฉบับ", + "presets.resize.Percent": "ย่อขยายตามเปอร์เซ็นต์", + "presets.resize.LongEdge": "จำกัดความยาวด้านที่ยาวที่สุด", + "presets.resize.Width": "กำหนดความกว้าง", + "presets.rotation": "หมุนภาพ", + "presets.rotation.None": "ไม่หมุน", + "presets.rotation.Right90": "ขวา 90°", + "presets.rotation.Left90": "ซ้าย 90°", + "presets.rotation.Rotate180": "180°", + "presets.flip": "พลิกภาพ", + "presets.flip.None": "ไม่พลิก", + "presets.flip.Horizontal": "แนวนอน (ซ้าย-ขวา)", + "presets.flip.Vertical": "แนวตั้ง (บน-ล่าง)", + "presets.percent": "เปอร์เซ็นต์", + "presets.long_edge": "ด้านยาวที่สุด (px)", + "presets.width": "ความกว้าง (px)", + "presets.dpi": "DPI", + "presets.dpi_keep": "คงค่าเดิม", + "presets.keep_metadata": "คงข้อมูลเมทาดาตา (EXIF)", + "presets.keep_color_profile": "คงโปรไฟล์สี (ICC)", + "presets.keep_color_profile_hint": "ใช้ได้เมื่อลบเมทาดาตาออก\nหากไม่มีโปรไฟล์สี ภาพถ่ายที่มีขอบเขตสีกว้าง (Display P3 จากโทรศัพท์) อาจดูสีซีดจางได้", + "presets.grayscale": "ขาวดำ (เกรย์สเกล)", + "presets.remove_background": "ลบพื้นหลัง", + "presets.remove_background_hint": "ทำให้พื้นหลังสีเรียบโปร่งใส: เช่น กระดาษด้านหลังลายเซ็นหรือตรายาง หรือฉากหลังของโลโก้\nสีตามแนวขอบจะถือว่าเป็นพื้นหลัง จึงควรเว้นขอบกระดาษไว้รอบชิ้นงาน\nไฟล์ JPG ไม่รองรับความโปร่งใสและจะได้สีด้านล่างนี้แทน (ไม่เหมาะกับภาพถ่ายบุคคล)", + "presets.background_tolerance": "ความเผื่อสีพื้นหลัง", + "presets.background_tolerance_hint": "ค่ายิ่งสูงจะลบสีได้มากขึ้น เช่น กระดาษที่มีเงาหรือรอยเปื้อน แต่หากสูงเกินไปอาจทำให้เส้นลายเส้นบางๆ แหว่งได้\nหากต้องการเก็บสีด้านในเส้นโครงร่างไว้ ให้เปิด \"คงพื้นที่ปิดด้านใน\"", + "presets.keep_enclosed_background": "คงพื้นที่ปิดด้านใน", + "presets.keep_enclosed_background_hint": "ลบเฉพาะพื้นหลังที่สัมผัสกับขอบเท่านั้น เพื่อให้สีขาวด้านในโลโก้ยังคงอยู่\nควรปิดไว้สำหรับลายมือเขียน (มิฉะนั้นจะเก็บสีกระดาษในตัวอักษรอย่าง \"o\" ไว้)", + "presets.background": "พื้นหลังสำหรับส่วนที่โปร่งใส", + "presets.tiff_compression": "การบีบอัด TIFF", + "presets.webp_lossless": "WEBP แบบไม่สูญเสียรายละเอียด (Lossless)", + "presets.multipage_tiff": "รวมทุกไฟล์เป็น TIFF หลายหน้าไฟล์เดียว", + "presets.multipage_tiff_hint": "แต่ละภาพและแต่ละหน้าของ PDF หรือ TIFF จะกลายเป็นหน้าหนึ่งตามลำดับ\nใช้ PDF เพียงไฟล์เดียวก็สร้าง TIFF หลายหน้าได้", + "presets.animation_speed": "ความเร็วในการเล่น", + "presets.animation_speed_hint": "แสดงแต่ละเฟรมของภาพเคลื่อนไหวให้เร็วขึ้นหรือช้าลง\nโปรแกรมเล่นส่วนใหญ่แสดงผลได้สูงสุด 50 เฟรมต่อวินาที ภาพเคลื่อนไหวที่เร็วขึ้นจึงอาจมีการข้ามบางเฟรมไป", + "presets.animation_speed.original": "1× (ต้นฉบับ)", + "presets.save_every_frame": "บันทึกทุกเฟรมของวิดีโอ", + "presets.save_every_frame_hint": "วิดีโอจะกลายเป็นโฟลเดอร์ที่บรรจุภาพของแต่ละเฟรม แทนที่จะเป็นภาพนิ่งภาพเดียว\nวิดีโอขนาดยาวจะได้ไฟล์รูปภาพจำนวนมาก", + "presets.frame_interval": "บันทึกทุกๆ N เฟรม", + "presets.frame_estimate": "วิดีโอ 30 fps ความยาว 1 นาที จะได้ {0} รูป (สูงสุด {1} รูปต่อวิดีโอ)", + "presets.extract_motion_photo": "ดึงวิดีโอจาก Live/Motion Photo", + "presets.extract_motion_photo_hint": "รูปภาพจะกลายเป็นวิดีโอที่บันทึกไว้ในตัว: เช่น วิดีโอใน Android Motion Photo หรือไฟล์ MOV ข้าง Live Photo ของ iPhone\nภาพอื่นๆ จะกลายเป็นวิดีโอของภาพนิ่งนั้น", + "presets.slide_seconds": "วินาทีต่อรูปภาพ", + "presets.crossfade": "ค่อยๆ เปลี่ยนภาพระหว่างรูป (ครอสเฟด)", + "presets.crossfade_hint": "แต่ละรูปจะค่อยๆ จางไปเป็นรูปถัดไปภายในหนึ่งวินาที แทนการตัดเปลี่ยนทันที", + "presets.group.live_photo": "Live / Motion Photo", + "presets.live_photo": "วิดีโอจะแปลงเป็น", + "presets.live_photo.None": "ภาพนิ่งหนึ่งภาพ", + "presets.live_photo.Apple": "Live Photo (iPhone): ภาพ + MOV", + "presets.live_photo.Android": "Motion Photo (Android): ไฟล์ JPG เดียว", + "presets.live_photo_hint.apple": "คลิปสั้นจะกลายเป็นรูปภาพและไฟล์ MOV ที่มีชื่อเดียวกันและใช้ตัวระบุ Live Photo ร่วมกัน นำเข้าทั้งสองไฟล์เข้าแอพรูปภาพพร้อมกัน วิดีโอจะมีความยาวด้านสั้นสุดไม่เกิน 1440 px (ฟีเจอร์ทดลอง: อาจยังไม่รองรับบน iPhone ทุกรุ่น)", + "presets.live_photo_hint.android": "คลิปสั้นจะกลายเป็นไฟล์ JPG ไฟล์เดียว (NAME.MP.jpg) ที่มีวิดีโอบรรจุอยู่ภายใน เช่นเดียวกับที่โทรศัพท์ Pixel บันทึก Motion Photo สำหรับ Google Photos และแกลเลอรีที่รองรับ วิดีโอจะมีความยาวด้านสั้นสุดไม่เกิน 1440 px (ฟีเจอร์ทดลอง: อาจยังไม่รองรับบนโทรศัพท์ทุกรุ่น)", + "presets.live_photo_start": "จุดเริ่มต้นคลิป (วินาที)", + "presets.live_photo_length": "ความยาวคลิป (วินาที)", + "presets.live_photo_cover": "ภาพหน้าปกที่วินาทีที่", + "presets.live_photo_quality": "คุณภาพรูปภาพ", + "presets.live_photo_video_quality": "คุณภาพวิดีโอ", + "presets.ico_sizes": "ขนาดไอคอน", + "presets.group.pdf": "PDF", + "presets.merge": "รวมทุกไฟล์เป็น PDF เดียว", + "presets.page_size": "ขนาดหน้ากระดาษ", + "presets.page_size.FitImage": "พอดีกับรูปภาพ", + "presets.page_size.A4": "A4", + "presets.page_size.Letter": "Letter", + "presets.margin": "ระยะขอบ (มม.)", + "presets.render_dpi": "DPI สำหรับเรนเดอร์ (PDF → รูปภาพ)", + "presets.page_range": "หน้า", + "presets.page_range_hint": "ทุกหน้า หรือระบุ เช่น 1-3, 5", + "presets.split": "แยกหนึ่งไฟล์ต่อหนึ่งหน้า", + "presets.pdf_compression": "บีบอัด", + "presets.pdf_compression.None": "ไม่บีบอัด", + "presets.pdf_compression.Screen": "ขนาดเล็กที่สุด (ภาพที่ 72 dpi)", + "presets.pdf_compression.Ebook": "สมดุล (ภาพที่ 150 dpi)", + "presets.pdf_compression.Print": "คุณภาพสูง (ภาพที่ 300 dpi)", + "presets.pdf_compression_hint": "รูปภาพจะถูกย่อขนาดและบันทึกเป็น JPEG\nข้อความ ฟอนต์ และภาพวาดจะยังคงเดิม\nหากไฟล์ผลลัพธ์ไม่เล็กลง จะเก็บไฟล์ต้นฉบับไว้", + "presets.pdf_ghostscript": "ลองใช้ Ghostscript ด้วย (เมื่อติดตั้งไว้)", + "presets.pdf_ghostscript_hint": "มักจะได้ไฟล์ที่เล็กลง แต่อาจเขียนโครงสร้างไฟล์ใหม่ทั้งหมด\nระบบจะเลือกเก็บไฟล์ผลลัพธ์ที่ขนาดเล็กที่สุดไว้", + "presets.pdf_keep_metadata": "คงเมทาดาตาของหน้าและรูปภาพ (XMP)", + "presets.combine_pages_hint": "เรียงทุกหน้าต่อกันในแนวดิ่งเป็นภาพเดียว\nผลลัพธ์ที่ยาวมากจะถูกปรับขนาดไม่ให้เกินขีดจำกัดของฟอร์แมต (JPG 65,500 px, WebP 16,383 px)", + "presets.combine_pages": "ต่อหน้าเป็นภาพแนวยาวภาพเดียว (เมื่อแปลง PDF)", + "presets.trim_page_margins": "ตัดขอบว่างด้านบนและด้านล่างของแต่ละหน้าออก", + "presets.split_tall_image": "ยาวเกินขนาดฟอร์แมต: แยกออกเป็นหลายรูปภาพ", + "presets.split_tall_image_hint": "หากปิด: ภาพแนวยาวจะถูกย่อขนาดให้พอดีกับขีดจำกัดของฟอร์แมต (JPG 65,500 px, WebP 16,383 px)\nหากเปิด: จะคงขนาดเดิมไว้และแบ่งระหว่างหน้าเป็นหลายไฟล์ (name_1, name_2, …)", + "presets.group.document": "เอกสาร", + "presets.pdfa": "PDF/A (สำหรับการจัดเก็บถาวร)", + "presets.leave_out_pictures": "ละเว้นรูปภาพ (เอาเฉพาะข้อความ)", + "presets.leave_out_pictures_hint": "หากปิด: รูปภาพจะถูกบันทึกในโฟลเดอร์ \"name_files\" ข้างไฟล์ Markdown และทำลิงก์ไว้\nหากเปิด: จะบันทึกเฉพาะข้อความโดยไม่มีโฟลเดอร์รูปภาพ", + "presets.target_folder": "โฟลเดอร์ (แตกไฟล์)", + "presets.group.media": "วิดีโอและเสียง", + "presets.media_quality": "คุณภาพ", + "presets.media_quality_hint": "เมื่อฟอร์แมตใหม่รองรับโคเดกเดิมได้โดยตรง (เช่น iPhone MOV → MP4) วิดีโอจะถูกเปลี่ยนเฉพาะคอนเทนเนอร์เท่านั้น\nคุณภาพไม่ลดลง คง HDR ไว้ และเสร็จภายในไม่กี่วินาที\nหากเลือกแบบ 'ขนาดเล็ก' จะทำการเข้ารหัสใหม่เสมอเพื่อให้ไฟล์มีขนาดเล็กลง", + "presets.media_quality.High": "สูง (ไฟล์ขนาดใหญ่)", + "presets.media_quality.Balanced": "สมดุล", + "presets.media_quality.Small": "ขนาดเล็ก (สำหรับแชร์)", + "presets.max_height": "ความสูงสูงสุด", + "presets.max_height.original": "ต้นฉบับ", + "presets.audio_bitrate": "บิตเรตเสียง", + "presets.audio_bitrate.auto": "อัตโนมัติ", + "presets.remove_audio": "ลบเสียงออก", + "presets.audio_channels": "ช่องสัญญาณเสียง", + "presets.audio_channels.0": "ตามต้นฉบับ", + "presets.audio_channels.1": "โมโน", + "presets.audio_channels.2": "สเตอริโอ", + "presets.sample_rate": "อัตราการสุ่มตัวอย่าง (Sample rate)", + "presets.sample_rate.source": "ตามต้นฉบับ", + "presets.wav_format": "ความลึกบิต (Bit depth)", + "presets.wav_format.Pcm16": "16-bit", + "presets.wav_format.Pcm8": "8-bit", + "presets.wav_format.Pcm24": "24-bit", + "presets.wav_format.Pcm32": "32-bit", + "presets.wav_format.Float32": "32-bit float", + "presets.video_codec": "โคเดกวิดีโอ", + "presets.video_codec_hint": "H.264 เล่นได้ทุกอุปกรณ์\nHEVC มีขนาดไฟล์เล็กลงเกือบครึ่งหนึ่งและเล่นได้บนโทรศัพท์ ทีวี และพีซียุคใหม่ส่วนใหญ่\nAV1 ให้ไฟล์ที่เล็กที่สุดแต่ใช้เวลาเข้ารหัสนานและต้องใช้อุปกรณ์รุ่นใหม่\nวิดีโอที่ใช้โคเดกที่เลือกอยู่แล้วจะถูกนำมาห่อใหม่โดยไม่ต้องแปลงซ้ำ", + "presets.video_codec.h264": "H.264 (เล่นได้ทุกอุปกรณ์)", + "presets.video_codec.vp9": "VP9", + "presets.video_codec.hevc": "HEVC / H.265 (ขนาดเล็กกว่า)", + "presets.video_codec.av1": "AV1 (ขนาดเล็กที่สุด, ช้า)", + "presets.hardware_encoding": "ใช้การเร่งความเร็วด้วยฮาร์ดแวร์ (ชิปกราฟิก)", + "presets.hardware_encoding_hint": "เข้ารหัส H.264, HEVC และ AV1 บนชิปกราฟิก\nเร็วกว่ามากและประหยัดพลังงาน\nคุณภาพอาจลดลงเล็กน้อยเมื่อเทียบกับขนาดไฟล์เดียวกัน\nหากไม่มีชิปที่รองรับ (AV1 ต้องใช้ชิปรุ่นใหม่) วิดีโอจะเข้ารหัสตามปกติ", + "presets.audio_codec": "โคเดกเสียง", + "presets.audio_codec.aac": "AAC", + "presets.audio_codec.alac": "ALAC (ไม่สูญเสียรายละเอียด)", + "presets.group.archive": "ไฟล์บีบอัด", + "presets.archive_level": "การบีบอัด", + "presets.archive_level.Store": "ไม่บีบอัด (จัดเก็บเท่านั้น)", + "presets.archive_level.Fast": "เร็ว", + "presets.archive_level.Normal": "ปกติ", + "presets.archive_level.Maximum": "สูงสุด (ช้ากว่า)", + "presets.combine": "รวมทุกไฟล์ไว้ในไฟล์บีบอัดเดียว", + "presets.extract_note": "ไฟล์บีบอัดแต่ละไฟล์จะแตกออกในโฟลเดอร์ของตัวเอง สามารถกำหนดตำแหน่งได้ที่ 'ผลลัพธ์'", + "presets.group.trace": "การแปลงเป็นเวกเตอร์", + "presets.trace_note": "ใช้เมื่อแปลงรูปภาพบิตแมป (PNG, JPG, …) เป็นรูปทรงเวกเตอร์", + "presets.trace_mode": "โหมด", + "presets.trace_mode.Color": "สี", + "presets.trace_mode.BlackAndWhite": "ขาวดำ (ภาพลายเส้น)", + "presets.trace_colors": "จำนวนสี", + "presets.trace_detail": "รายละเอียด", + "presets.trace_detail_hint": "ต่ำ: จะเกลี่ยเส้นให้เรียบและตัดจุดเล็กๆ ออก\nสูง: จะวาดตามพิกเซลอย่างใกล้ชิดและเก็บรายละเอียดเล็กๆ ไว้", + "presets.group.output": "ผลลัพธ์", + "presets.location": "บันทึกลงที่", + "presets.location.Default": "ตำแหน่งบันทึกเริ่มต้น (การตั้งค่า > ทั่วไป)", + "presets.location.SameFolder": "โฟลเดอร์เดียวกับต้นฉบับ", + "presets.location.Subfolder": "โฟลเดอร์ย่อย", + "presets.location.CustomFolder": "โฟลเดอร์ที่กำหนดเอง", + "presets.subfolder": "ชื่อโฟลเดอร์ย่อย", + "presets.subfolder_only_several": "เฉพาะเมื่อหนึ่งไฟล์แยกเป็นหลายไฟล์", + "presets.subfolder_only_several_hint": "ไฟล์ที่แปลงแล้วได้ไฟล์เดียวจะบันทึกข้างไฟล์ต้นฉบับ มีเฉพาะไฟล์ที่แตกออกเป็นหลายไฟล์ (เช่น PDF ที่แยกหน้า) ที่จะบันทึกลงในโฟลเดอร์ย่อย", + "presets.custom_folder": "โฟลเดอร์", + "presets.browse": "เลือกโฟลเดอร์…", + "presets.pattern": "ชื่อไฟล์", + "presets.pattern_hint": "{name} {ext} {preset} {date} {time} {index}", + "presets.keep_dates": "คงวันที่เดิมของไฟล์ไว้", + "presets.keep_dates_hint": "ไฟล์ที่แปลงแล้วจะได้วันที่สร้างและแก้ไขตามไฟล์ต้นฉบับ เพื่อให้ภาพถ่ายยังคงเรียงตามวันที่ได้ถูกต้อง", + "presets.zip_result": "บันทึกผลลัพธ์เป็น ZIP", + "presets.zip_result_hint": "ไฟล์ผลลัพธ์ทั้งหมด (เช่น .shp, .shx, .dbf, .prj และ .cpg ของ Shapefile) จะถูกรวมเป็น ZIP เดียวไว้ข้างไฟล์ต้นฉบับ แทนที่จะเป็นไฟล์แยกเดี่ยวๆ", + "presets.conflict": "หากมีไฟล์ชื่อนี้อยู่แล้ว", + "presets.conflict.Rename": "เติมตัวเลขต่อท้าย", + "presets.conflict.Overwrite": "เขียนทับ", + "presets.conflict.Skip": "ข้าม", + "presets.editor_title": "แก้ไขพรีเซ็ต", + "presets.delete_confirm": "ลบ “{0}” หรือไม่? พรีเซ็ตนี้จะถูกลบออกจากทุกแถบเครื่องมือและกลุ่มด้วย", + "presets.name_required": "โปรดระบุชื่อ", + "presets.select": "เลือกพรีเซ็ตเพื่อแก้ไข", + "theme.title": "ธีม", + "theme.mode": "รูปลักษณ์", + "theme.mode.System": "ตามระบบ", + "theme.mode.Light": "สว่าง", + "theme.mode.Dark": "มืด", + "theme.accent": "สีเน้น (Accent color)", + "theme.custom_color": "กำหนดเอง", + "theme.corner_radius": "ความโค้งมน", + "theme.donut_opacity": "ความทึบแสงของแถบโดนัท", + "theme.reduce_motion": "ลดการเคลื่อนไหว (แอนิเมชัน)", + "theme.reduce_motion_hint": "แนะนำสำหรับคอมพิวเตอร์รุ่นเก่า จะปิดเอฟเฟกต์การเปลี่ยนผ่านและการเด้งของโดนัท", + "theme.preview": "ตัวอย่าง", + "engines.title": "เครื่องมือแปลงไฟล์", + "engines.description": "Filee จะเลือกเครื่องมือที่ดีที่สุดที่พร้อมใช้งานสำหรับการแปลงแต่ละครั้ง\nหากมีหลายเครื่องมือที่ทำหน้าที่เดียวกันได้ เครื่องมือที่อยู่อันดับสูงกว่าจะถูกนำมาใช้", + "engines.available": "พร้อมใช้งาน", + "engines.unavailable": "ไม่พร้อมใช้งาน", + "engines.move_up": "เลื่อนขึ้น", + "engines.move_down": "เลื่อนลง", + "engines.recheck": "ตรวจสอบอีกครั้ง", + "engines.conversions": "{0} รูปแบบการแปลง", + "engines.optional_title": "เครื่องมือแปลงไฟล์เพิ่มเติม", + "engines.optional_description": "เครื่องมือแปลงไฟล์ขนาดใหญ่จะดาวน์โหลดเมื่อคุณต้องการเท่านั้น\nไฟล์เหล่านี้จะยังคงอยู่เมื่อ Filee อัปเดต และจะถูกลบออกเมื่อคุณถอนการติดตั้ง", + "engines.all_title": "เครื่องมือแปลงไฟล์ทั้งหมด", + "engines.update": "อัปเดต", + "engines.state.update_available": "เวอร์ชันใหม่ {0}", + "engines.update_notice_title": "เครื่องมือที่คุณติดตั้งมีเวอร์ชันใหม่", + "engines.settings": "การตั้งค่า", + "engines.all_description": "ลากการ์ด (หรือใช้ปุ่มลูกศร) เพื่อเปลี่ยนลำดับการทำงาน", + "engines.lo_title": "เมื่อติดตั้ง LibreOffice ไว้", + "engines.lo_description": "LibreOffice สามารถเข้ามารับหน้าที่แปลงไฟล์ที่สามารถทำได้อย่างแม่นยำกว่าได้\nหากไม่มี LibreOffice สวิตช์เหล่านี้จะไม่ส่งผลใดๆ", + "engines.lo_slides": "ใช้ LibreOffice สำหรับงานนำเสนอ → PDF", + "engines.lo_slides_hint": "พื้นหลังสไลด์และตำแหน่งรูปทรงจะออกมาตรงตาม PowerPoint\nหากปิด: จะใช้ระบบในตัว ซึ่งอาจทำให้พื้นหลังหายไปหรือรูปทรงเลื่อนตำแหน่งได้", + "engines.lo_documents": "ใช้ LibreOffice สำหรับเอกสาร Word → PDF", + "engines.lo_documents_hint": "จัดหน้าตรงตาม Word รวมถึงกฎเครื่องหมายวรรคตอนภาษาจีนและญี่ปุ่น\nหากปิด: จะใช้ระบบในตัว", + "engines.lo_sheets": "ใช้ LibreOffice สำหรับสเปรดชีต → PDF", + "engines.lo_sheets_hint": "พิมพ์ออกมาเหมือน Excel โดยยึดตามพื้นที่การพิมพ์ การตั้งค่าหน้ากระดาษ และการแบ่งหน้า\nหากปิด: ระบบในตัวจะปรับแต่ละแผ่นงานให้พอดีกับความกว้างหน้ากระดาษ (คงการแบ่งหน้าไว้)", + "engines.lo_hwp": "ใช้ LibreOffice สำหรับ HWP·HWPX → PDF", + "engines.lo_hwp_hint": "ปิดไว้เป็นค่าเริ่มต้น: rhwp มักจะแสดงผลออกมาเหมือน 한글 (Hangul) มากกว่า\nเปิดใช้งานเพื่อเปรียบเทียบเมื่อ rhwp แสดงผลเอกสารผิดพลาด (ข้อความซ้อนทับ ตารางเลื่อน)", + "engines.package.libreoffice.name": "LibreOffice (ฟอร์แมตรุ่นเก่าและฟอร์แมตหายาก)", + "engines.package.libreoffice.description": "จำเป็นสำหรับฟอร์แมตเก่าหรือไม่ค่อยพบ: DOC·PPT, งานนำเสนอ OpenDocument, WordPerfect, ClarisWorks·MacWrite, Apple Pages·Numbers·Keynote, Publisher·Visio และอื่นๆ\nและบันทึกเป็น DOC·XLS·PPT·ODT·ODP·EMF ได้ รวมถึงทำให้งานนำเสนอ → PDF แม่นยำขึ้น\n(Word, Excel, PowerPoint, PDF และ HWP สามารถแปลงได้โดยไม่ต้องใช้)", + "engines.package.pandoc.name": "Pandoc (Markdown, LaTeX, Org และอื่นๆ)", + "engines.package.pandoc.description": "เพิ่มการแปลง Markdown และ HTML ↔ ODT และ RTF, DOCX → Markdown รวมถึงมาร์กอัปอย่าง LaTeX, Org, AsciiDoc, Typst, Jupyter\nและสร้างสไลด์ PPTX จาก Markdown ได้\n(Markdown และ HTML → PDF, DOCX และ HWPX ใช้งานได้โดยไม่ต้องติดตั้ง)", + "engines.package.ghostscript.name": "Ghostscript (EPS และ PostScript)", + "engines.package.ghostscript.description": "แปลง EPS, PS และไฟล์ Illustrator รุ่นเก่า → PDF และรูปภาพ, PDF หรือ SVG → EPS/PS\n(ไฟล์ SVG และไฟล์ AI ที่บันทึกแบบรองรับ PDF สามารถแปลงได้โดยไม่ต้องติดตั้ง)", + "engines.package.ffmpeg.name": "FFmpeg (วิดีโอและเสียง)", + "engines.package.ffmpeg.description": "เพิ่มการแปลงวิดีโอและเสียง วิดีโอ → GIF หรือภาพนิ่ง แยกเสียงจากวิดีโอ และ GIF → MP4\n(จำเป็นเฉพาะสำหรับงานวิดีโอและเสียงเท่านั้น)", + "engines.package.calibre.name": "Calibre (Kindle และอีบุ๊กหายาก)", + "engines.package.calibre.description": "บันทึกเป็น MOBI และ AZW3 สำหรับ Kindle และแปลงฟอร์แมตอีบุ๊กหายาก (LIT, LRF, PDB, CHM…)\n(EPUB, MOBI, AZW3, FB2 และการ์ตูนสามารถอ่านได้โดยไม่ต้องติดตั้ง)", + "engines.package.size": "ดาวน์โหลด {0} · ขนาดบนดิสก์ {1}", + "engines.package.system_required": "ใช้โปรแกรมที่ติดตั้งอยู่แล้วในคอมพิวเตอร์เครื่องนี้", + "engines.guidance.macos": "ติดตั้ง {0} สำหรับ Mac เครื่องนี้ จากนั้นเลือก “ใช้โปรแกรมในเครื่อง…” แล้วเลือกโปรแกรมหรือโฟลเดอร์ .app", + "engines.guidance.macos.ffmpeg": "ติดตั้งผ่าน Homebrew (brew install ffmpeg) แล้วเลือก “ตรวจสอบอีกครั้ง”\nหรือเลือก “ใช้โปรแกรมในเครื่อง…” แล้วเลือกโฟลเดอร์ bin", + "engines.guidance.macos.ghostscript": "ติดตั้งผ่าน Homebrew (brew install ghostscript) แล้วเลือก “ตรวจสอบอีกครั้ง”\nหรือเลือก “ใช้โปรแกรมในเครื่อง…” แล้วเลือกโฟลเดอร์ bin", + "engines.guidance.macos.calibre": "calibre ที่ Filee ดาวน์โหลดต้องใช้ macOS 14 ขึ้นไป ให้ติดตั้ง calibre 7.26 (เวอร์ชันล่าสุดสำหรับ macOS รุ่นนี้) จาก calibre-ebook.com แล้วเลือก “ใช้โปรแกรมในเครื่อง…” และเลือกโฟลเดอร์ .app", + "engines.guidance.linux": "ติดตั้ง {0} ด้วยตัวจัดการแพ็กเกจของการกระจายลินุกซ์ของคุณ แล้วเลือก “ใช้โปรแกรมในเครื่อง…” และเลือกโฟลเดอร์ของโปรแกรม", + "engines.guidance.linux.libreoffice": "ติดตั้งด้วยตัวจัดการแพ็กเกจของคุณ (Ubuntu/Debian: sudo apt install libreoffice) แล้วเลือก “ตรวจสอบอีกครั้ง”\nการเปิด HWP จำเป็นต้องใช้ Java และส่วนขยาย H2Orestart ด้วย", + "engines.guidance.linux.ghostscript": "ติดตั้งด้วยตัวจัดการแพ็กเกจของคุณ (Ubuntu/Debian: sudo apt install ghostscript) แล้วเลือก “ตรวจสอบอีกครั้ง”", + "engines.guidance.windows": "Filee ไม่มีตัวดาวน์โหลด {0} สำหรับพีซีเครื่องนี้\nโปรดเลือก “ใช้โปรแกรมในเครื่อง…” และเลือกโปรแกรมที่ติดตั้งไว้", + "engines.use_own_app_folder": "เลือกโฟลเดอร์ที่บรรจุ {0}.app", + "engines.progress_detail": "{0} จาก {1} · {2}/วินาที · {3}", + "engines.eta.estimating": "กำลังประมาณเวลาที่เหลือ…", + "engines.eta.seconds": "เหลืออีก {0} วินาที", + "engines.eta.minutes": "เหลืออีก {0} นาที", + "engines.install": "ติดตั้ง", + "engines.cancel": "ยกเลิก", + "engines.remove": "ถอนการติดตั้ง", + "engines.remove_confirm": "ต้องการถอนการติดตั้ง {0} หรือไม่? คุณสามารถดาวน์โหลดใหม่ได้ในภายหลัง", + "engines.state.own_copy": "โปรแกรมของคุณเอง", + "engines.state.system_copy": "พบในคอมพิวเตอร์เครื่องนี้", + "engines.update_recommended": "แนะนำให้อัปเดต: เวอร์ชันที่คุณใช้อยู่คือ {0} แต่ Filee ได้รับการทดสอบกับ {1}\nการแปลงส่วนใหญ่จะยังคงทำงานได้", + "engines.use_own": "ใช้โปรแกรมในเครื่อง…", + "engines.use_own_hint": "มีโปรแกรมนี้อยู่แล้วใช่ไหม? เลือกไฟล์โปรแกรมแล้ว Filee จะนำมาใช้งานแทนการดาวน์โหลดใหม่", + "engines.use_own_title": "เลือกไฟล์โปรแกรมของ {0}", + "engines.use_own_missing": "โฟลเดอร์นั้นไม่มีไฟล์ทั้งหมดที่ Filee ต้องใช้: {0}", + "engines.stop_own": "หยุดใช้งาน", + "engines.remove_failed": "เครื่องมือกำลังถูกใช้งานอยู่ โปรดลองอีกครั้งหลังจากการแปลงไฟล์ที่กำลังทำงานอยู่เสร็จสิ้น", + "engines.state.not_installed": "ยังไม่ได้ติดตั้ง", + "engines.state.queued": "กำลังรอ…", + "engines.state.downloading": "กำลังดาวน์โหลด {0}%", + "engines.state.unpacking": "กำลังติดตั้ง…", + "engines.state.installed": "ติดตั้งแล้ว", + "engines.state.failed": "ล้มเหลว: {0}", + "about.title": "เกี่ยวกับ", + "about.updates": "การอัปเดต", + "common.search": "ค้นหา", + "common.retry": "ลองใหม่", + "about.version": "เวอร์ชัน {0}", + "about.license": "Filee เป็นซอฟต์แวร์เสรีภายใต้สัญญาอนุญาต MIT", + "about.notices": "ประกาศเกี่ยวกับบุคคลภายนอก", + "about.github": "คลังข้อมูล GitHub", + "about.support_title": "ร่วมสนับสนุน Filee", + "about.support_text": "Filee เป็นซอฟต์แวร์ฟรีและโอเพนซอร์ส\nการกดดาวบน GitHub, การรายงานข้อผิดพลาด, การเสนอไอเดีย หรือการสนับสนุนทางการเงิน ล้วนมีส่วนช่วยอย่างยิ่ง", + "about.sponsor": "สนับสนุน", + "sponsor.title": "สนับสนุน Filee", + "sponsor.lead": "Filee ใช้งานได้ฟรีและจะฟรีตลอดไป หากคุณต้องการสนับสนุนการพัฒนา สามารถเลือกช่องทางที่สะดวกได้เลย", + "sponsor.note.github": "รายเดือนหรือครั้งเดียว ผ่านบัตรทาง GitHub", + "sponsor.note.fairy": "บัตรเกาหลีและการชำระเงินสะดวกรวดเร็ว", + "sponsor.note.patreon": "สมาชิกรายเดือน", + "sponsor.note.kofi": "เลี้ยงกาแฟสักแก้วครั้งเดียว ไม่ต้องมีบัญชี", + "sponsor.note.paypal": "จำนวนเงินตามสะดวกผ่าน PayPal", + "sponsor.thanks": "ขอขอบคุณผู้สนับสนุนทุกท่าน", + "sponsor.star": "การกด ⭐ บน GitHub ไม่มีค่าใช้จ่ายและช่วยให้ผู้อื่นค้นพบ Filee ได้ง่ายขึ้น", + "feedback.notice_title": "Filee มีประโยชน์กับคุณไหม?", + "feedback.notice_text": "การกดดาวบน GitHub ช่วยให้คนอื่นค้นพบ Filee ได้มากขึ้น\nรวมถึงยินดีรับฟังปัญหาและข้อเสนอแนะต่างๆ เสมอ", + "feedback.star": "กดดาวบน GitHub", + "feedback.issue": "รายงานปัญหาหรือเสนอไอเดีย", + "common.ok": "ตกลง", + "common.cancel": "ยกเลิก", + "common.save": "บันทึก", + "common.close": "ปิด", + "common.delete": "ลบ", + "common.yes": "ใช่", + "common.no": "ไม่", + "common.on": "เปิด", + "common.off": "ปิด", + "setup.title": "เลือกเครื่องมือแปลงไฟล์", + "setup.description": "รูปภาพ, PDF, เอกสาร Office, HWP, อีบุ๊ก, ไฟล์บีบอัด, ฟอนต์, แบบแปลน CAD และโมเดล 3D สามารถแปลงได้ทันทีอยู่แล้ว\nดาวน์โหลดเครื่องมือเพิ่มเติมเฉพาะสำหรับวิดีโอ เสียง หรือฟอร์แมตหายากเท่านั้น", + "setup.note": "คุณสามารถติดตั้งหรือถอนการติดตั้งเครื่องมือได้ตลอดเวลาที่ การตั้งค่า → เครื่องมือแปลงไฟล์", + "setup.install": "ติดตั้งรายการที่เลือก", + "setup.later": "ไว้ทีหลัง", + "setup.background": "ทำงานต่อในพื้นหลัง", + "setup.done": "เสร็จสิ้น", + "setup.selection": "ดาวน์โหลด: {0}", + "setup.nothing_selected": "ไม่ได้เลือกอะไรไว้", + "installer.title": "การติดตั้ง Filee", + "installer.install": "ติดตั้ง", + "installer.update": "อัปเดต", + "installer.welcome.fresh": "ตัวติดตั้งจะติดตั้ง Filee {0} ลงในคอมพิวเตอร์เครื่องนี้", + "installer.welcome.update": "Filee {0} ได้รับการติดตั้งแล้ว\nตัวติดตั้งจะอัปเดตเป็น {1} โดยการตั้งค่า พรีเซ็ต และเครื่องมือแปลงไฟล์จะยังคงอยู่ตามเดิม", + "installer.welcome.license": "Filee เป็นซอฟต์แวร์ฟรีและโอเพนซอร์ส (สัญญาอนุญาต MIT)", + "installer.language": "ภาษา", + "installer.options.title": "ตัวเลือก", + "installer.options.folder": "โฟลเดอร์สำหรับติดตั้ง", + "installer.options.browse": "เปลี่ยน…", + "installer.options.space": "Filee ต้องการพื้นที่ว่างบนดิสก์ประมาณ {0}", + "installer.options.later": "คุณสามารถเปลี่ยนการตั้งค่าเหล่านี้ได้ในภายหลังใน Filee ที่ การตั้งค่า → ทั่วไป", + "installer.options.update_note": "Filee จะคงการตั้งค่าอื่นๆ ไว้ เปลี่ยนแปลงได้ตลอดเวลาใน Filee ที่ การตั้งค่า → ทั่วไป", + "installer.task.modern_menu": "แสดงที่ด้านบนของเมนู Windows 11 ด้วย ไม่ใช่แค่ใน “แสดงตัวเลือกเพิ่มเติม”", + "installer.task.cli": "เพิ่มคำสั่ง “filee” ใน PATH (แปลงไฟล์ผ่านบรรทัดคำสั่ง)", + "installer.task.desktop_icon": "สร้างทางลัดบนเดสก์ท็อป", + "installer.engines.when": "Filee จะดาวน์โหลดเครื่องมือที่คุณเลือกจากแหล่งต้นทางที่เป็นทางการเมื่อเปิดโปรแกรม", + "installer.progress.install": "กำลังติดตั้ง Filee", + "installer.progress.update": "กำลังอัปเดต Filee", + "installer.status.verifying": "กำลังตรวจสอบไฟล์ติดตั้ง…", + "installer.status.closing": "กำลังปิด Filee…", + "installer.status.removing_old": "กำลังลบเวอร์ชันก่อนหน้า (การตั้งค่าและเครื่องมือต่างๆ จะยังคงอยู่)…", + "installer.status.copying": "กำลังคัดลอกไฟล์ของ Filee…", + "installer.status.explorer_menu": "กำลังเพิ่ม Filee ในเมนูของ File Explorer…", + "installer.status.finishing": "กำลังเสร็จสิ้น…", + "installer.status.rolling_back": "กำลังยกเลิกการเปลี่ยนแปลง…", + "installer.status.removing": "กำลังลบ Filee…", + "installer.done.title": "Filee พร้อมใช้งานแล้ว", + "installer.done.text": "Filee ทำงานอยู่ในพื้นที่แจ้งเตือนของทาสก์บาร์ (Notification area)\n\nหากต้องการแปลงไฟล์ ให้ลากไฟล์พร้อมกดปุ่มทางลัดค้างไว้ หรือคลิกขวาที่ไฟล์ใน File Explorer", + "installer.done.updated": "Filee ได้รับการอัปเดตแล้ว การตั้งค่า พรีเซ็ต และเครื่องมือแปลงไฟล์ยังคงอยู่ตามเดิม", + "installer.done.engines": "เครื่องมือแปลงไฟล์ที่คุณเลือกจะเริ่มดาวน์โหลดเมื่อ Filee เปิดขึ้น", + "installer.done.launch": "เปิด Filee ทันที", + "installer.warning.explorer_menu": "Windows ไม่ได้เพิ่ม Filee ไว้ด้านบนของเมนู File Explorer:\n\n{0}\n\nFilee จะยังคงแสดงอยู่ใต้ “แสดงตัวเลือกเพิ่มเติม” คุณสามารถลองเพิ่มใหม่อีกครั้งได้ใน Filee ที่ การตั้งค่า → ทั่วไป", + "installer.warning.runtime": "{0} ไม่สามารถทำงานได้: ต้องการรันไทม์ Microsoft Visual C++ ({1}) ซึ่งเครื่องนี้ยังไม่มี ส่วนประกอบอื่นๆ ของ Filee ยังคงใช้งานได้ตามปกติ หากต้องการแก้ไข โปรดติดตั้ง Visual C++ Redistributable (x64) ของ Microsoft:\n{2}", + "installer.error.title": "ไม่สามารถติดตั้ง Filee ได้", + "installer.error.uninstall_title": "ไม่สามารถลบ Filee ออกได้ทั้งหมด", + "installer.error.space": "พื้นที่ว่างบน {0} ไม่เพียงพอ: Filee ต้องการ {1} แต่มีพื้นที่ว่างเหลือเพียง {2}", + "installer.error.damaged": "ไฟล์ติดตั้งนี้เสียหาย โปรดดาวน์โหลดใหม่อีกครั้งจาก filee.sh", + "installer.error.files": "ตัวติดตั้งไม่สามารถเขียนไฟล์ของ Filee ได้: {0}", + "installer.error.unexpected": "เกิดข้อผิดพลาด: {0}", + "installer.error.windows": "Filee ต้องการ Windows 10 64 บิต เวอร์ชัน 1809 ขึ้นไป", + "installer.error.rolled_back": "ตัวติดตั้งได้กู้คืนสถานะเดิมแล้ว: Filee เวอร์ชันก่อนหน้ายังคงทำงานได้", + "installer.error.undone": "ตัวติดตั้งได้ยกเลิกการเปลี่ยนแปลงทั้งหมดแล้ว", + "installer.error.nothing_changed": "ไม่มีการเปลี่ยนแปลงใดๆ บนคอมพิวเตอร์เครื่องนี้", + "installer.error.log": "ดูรายละเอียดได้ในบันทึกข้อผิดพลาด: {0}", + "installer.uninstall.title": "ถอนการติดตั้ง Filee", + "installer.uninstall.text": "การดำเนินการนี้จะลบ Filee {0} ออกจากคอมพิวเตอร์เครื่องนี้ พร้อมกับรายการในเมนู File Explorer, การเริ่มโปรแกรมอัตโนมัติ และเครื่องมือแปลงไฟล์ที่ดาวน์โหลดมา", + "installer.uninstall.delete_settings": "ลบการตั้งค่า พรีเซ็ต และแถบเครื่องมือของฉันด้วย", + "installer.uninstall.settings_where": "ไฟล์เหล่านี้อยู่ใน {0} ให้เก็บไว้หากต้องการใช้งานต่อเมื่อติดตั้ง Filee ใหม่อีกครั้ง", + "installer.uninstall.button": "ถอนการติดตั้ง", + "installer.uninstall.progress": "กำลังลบ Filee", + "installer.uninstall.done_title": "ลบ Filee เรียบร้อยแล้ว", + "installer.uninstall.done": "Filee ไม่มีอยู่ในคอมพิวเตอร์เครื่องนี้แล้ว", + "installer.uninstall.settings_kept": "การตั้งค่าของคุณยังคงถูกเก็บไว้ สำหรับการติดตั้ง Filee ใหม่อีกครั้ง", + "installer.uninstall.not_installed": "ไม่ได้ติดตั้ง Filee ไว้ใน {0}", + "installer.options.hide": "ซ่อน", + "installer.minimize": "ย่อเล็กสุด", + "installer.error.copy": "คัดลอกรายละเอียด", + "installer.error.copied": "คัดลอกแล้ว", + "watch.title": "โฟลเดอร์เฝ้าติดตาม", + "watch.description": "ไฟล์ที่ถูกเพิ่มเข้ามาในโฟลเดอร์เหล่านี้จะได้รับการแปลงโดยอัตโนมัติขณะที่ Filee ทำงาน\nการดาวน์โหลดและการคัดลอกจะรอจนกว่าจะเสร็จสมบูรณ์", + "watch.add": "เพิ่มโฟลเดอร์", + "watch.empty": "ยังไม่มีโฟลเดอร์เฝ้าติดตาม", + "watch.enabled": "เปิดใช้งาน", + "watch.remove": "ลบออก", + "watch.folder": "โฟลเดอร์ที่ต้องการเฝ้าติดตาม", + "watch.folder_placeholder": "เลือกโฟลเดอร์", + "watch.preset": "แปลงด้วยพรีเซ็ต", + "watch.originals": "หลังจากแปลงไฟล์แล้ว", + "watch.originals_keep": "คงไฟล์ต้นฉบับไว้ที่เดิม", + "watch.originals_move": "ย้ายไฟล์ต้นฉบับไปที่ \"originals\"", + "watch.originals_hint": "การย้ายไฟล์ต้นฉบับจะทำให้โฟลเดอร์ทำงานเหมือนกล่องรับไฟล์เข้า และไฟล์ที่รออยู่ก่อนแล้วเมื่อ Filee เริ่มทำงานจะได้รับการแปลงด้วยเช่นกัน", + "watch.output": "บันทึกไฟล์ที่แปลงแล้วลงใน", + "watch.output_placeholder": "\"converted\" ภายในโฟลเดอร์ที่เฝ้าติดตาม", + "watch.subfolders": "รวมโฟลเดอร์ย่อย", + "watch.options": "ตัวเลือกเพิ่มเติม (ไม่บังคับ)", + "watch.include": "ไฟล์ที่ต้องการแปลง", + "watch.include_placeholder": "พิมพ์นามสกุลไฟล์หรือชื่อ แล้วกด Enter (เช่น heic, scan_*)", + "watch.include_hint": "เว้นว่างไว้เพื่อแปลงทุกไฟล์\n· heic → ไฟล์ที่ลงท้ายด้วย .heic\n· scan → ไฟล์ที่มีคำว่า \"scan\" ในชื่อ\n· * แทนข้อความใดๆ, ? แทนอักขระหนึ่งตัว (เช่น scan_*.jpg)", + "watch.name": "ชื่อไฟล์หลัก", + "watch.name_placeholder": "เหมือนกับพรีเซ็ต: {0}", + "watch.name_hint": "ปุ่มต่างๆ จะเพิ่มส่วนประกอบของชื่อ เว้นว่างไว้เพื่อใช้ชื่อตามพรีเซ็ต", + "watch.rename": "การตั้งชื่อไฟล์ที่แปลงแล้ว", + "watch.rename_find": "ค้นหา เช่น IMG_(\\d+)", + "watch.rename_replace": "แทนที่ด้วย เช่น Photo_$1", + "watch.name_summary": "ชื่อ: {0}", + "watch.name_summary_preset": "ชื่อ: {0} (เหมือนกับพรีเซ็ต)", + "watch.token.name": "ชื่อเดิม", + "watch.token.ext": "นามสกุลเดิม", + "watch.token.date": "วันที่", + "watch.token.time": "เวลา", + "watch.token.index": "ลำดับตัวเลข", + "watch.token.preset": "ชื่อพรีเซ็ต", + "watch.kind.Replace": "แทนที่ข้อความ", + "watch.kind.Remove": "ลบข้อความ", + "watch.kind.Prefix": "เพิ่มที่ด้านหน้า", + "watch.kind.Suffix": "เพิ่มที่ด้านหลัง", + "watch.kind.SpacesToUnderscores": "เปลี่ยนช่องว่างเป็น _", + "watch.kind.RemoveCopyNumber": "ลบหมายเลขสำเนา เช่น (2)", + "watch.kind.RemoveBrackets": "ลบข้อความในวงเล็บ", + "watch.kind.RemoveLeadingNumber": "ลบตัวเลขนำหน้า", + "watch.kind.RemoveSymbols": "ลบสัญลักษณ์", + "watch.kind.Lowercase": "ตัวพิมพ์เล็กทั้งหมด", + "watch.kind.Uppercase": "ตัวพิมพ์ใหญ่ทั้งหมด", + "watch.kind.Regex": "ขั้นสูง: Regular Expression", + "watch.ph.find": "ข้อความที่ต้องการค้นหา เช่น IMG_", + "watch.ph.replace": "แทนที่ด้วย เช่น Photo_", + "watch.ph.remove": "ข้อความที่ต้องการลบ เช่น _copy", + "watch.ph.prefix": "ข้อความที่ต้องการเพิ่ม เช่น 2026_", + "watch.ph.suffix": "ข้อความที่ต้องการเพิ่ม เช่น _final", + "watch.advanced": "ขั้นสูง", + "watch.recipe.camera_to_photo": "เปลี่ยน IMG_ เป็น Photo_", + "watch.recipe.lowercase": "ตัวพิมพ์เล็กทั้งหมด", + "watch.rename_edit": "แก้ไขกฎการตั้งชื่อ", + "watch.rename_title": "ตั้งชื่อไฟล์ที่แปลงแล้ว", + "watch.rename_intro": "กำหนดชื่อหลัก แล้วเปลี่ยนบางส่วนด้วยกฎหากต้องการ\nตัวอย่างจะแสดงชื่อที่แต่ละไฟล์จะได้รับ", + "watch.rename_steps": "การเปลี่ยนแปลง (ประมวลผลจากบนลงล่าง)", + "watch.rename_no_steps": "ไม่มีการเปลี่ยนแปลง เลือกจากด้านซ้ายหรือเพิ่มกฎหากต้องการ", + "watch.step_up": "เลื่อนขึ้น (ทำงานก่อนหน้า)", + "watch.rename_try": "ทดลองชื่อไฟล์", + "watch.rename_try_placeholder": "พิมพ์ชื่อไฟล์ เช่น IMG_0412.jpg", + "watch.include_matches": "ขณะนี้มี {0} ไฟล์ในโฟลเดอร์ที่ตรงตามเงื่อนไข", + "watch.add_step": "เพิ่มกฎ", + "watch.remove_step": "ลบกฎนี้ออก", + "watch.recipes": "รูปแบบการแทนที่ที่พบบ่อย", + "watch.recipes_hint": "ดับเบิลคลิกที่รายการ (หรือกด +) เพื่อเพิ่มเป็นกฎ แล้วแก้ไขได้ตามต้องการ", + "watch.recipe_add": "เพิ่มเป็นกฎ", + "watch.recipe_removes": "(ลบออก)", + "watch.recipe.drop_camera_prefix": "ลบ IMG_", + "watch.recipe.spaces": "เปลี่ยนช่องว่างเป็นขีดล่าง (_)", + "watch.recipe.copy_number": "ลบหมายเลขสำเนา เช่น (2)", + "watch.recipe.brackets": "ลบข้อความในวงเล็บ", + "watch.recipe.leading_number": "ลบตัวเลขนำหน้า", + "watch.recipe.date_dashes": "ใส่วันที่แบบมีขีดคั่น", + "watch.recipe.symbols": "ลบสัญลักษณ์", + "watch.recipe.prefix": "เพิ่มข้อความที่ด้านหน้า", + "watch.recipe.suffix": "เพิ่มข้อความที่ด้านหลัง", + "watch.invalid_regex": "Regular Expression ไม่ถูกต้อง: {0}", + "watch.preview": "ดูตัวอย่าง", + "watch.results": "ผลลัพธ์ล่าสุด", + "watch.results_ok": "แปลงสำเร็จ {0} ไฟล์ ไม่มีข้อผิดพลาด", + "watch.results_failed": "แปลงสำเร็จ {0} ไฟล์ · ล้มเหลว {1} ไฟล์", + "watch.sample_file": "photo.jpg", + "watch.preview_keep": "ไฟล์ต้นฉบับจะยังคงอยู่ที่เดิม", + "watch.preview_move": "ไฟล์ต้นฉบับจะถูกย้ายไปที่ \"originals\"", + "watch.status_off": "ปิด", + "watch.status_no_folder": "เลือกโฟลเดอร์เพื่อเริ่มต้น", + "watch.status_watching": "กำลังเฝ้าติดตาม", + "watch.status_starting": "กำลังเริ่มต้น…", + "watch.status_error": "ไม่สามารถเฝ้าติดตามโฟลเดอร์นี้ได้: {0}", + "watch.cli_hint": "ใช้งานผ่านบรรทัดคำสั่งได้เช่นกัน: filee watch <โฟลเดอร์> --to <ฟอร์แมต>", + "whats_new.title": "มีอะไรใหม่ใน Filee {0}", + "whats_new.previous": "ก่อนหน้า", + "whats_new.next": "ถัดไป", + "whats_new.done": "เริ่มต้นใช้งาน", + "whats_new.about_link": "มีอะไรใหม่ใน Filee {0}", + "whats_new.2_0_0.browser.title": "ลากไฟล์จากเบราว์เซอร์ได้โดยตรง", + "whats_new.2_0_0.browser.text": "กดปุ่มทางลัดค้างไว้แล้วลากรูปภาพหรือลิงก์ไฟล์ออกจากหน้าเว็บ โดนัทจะเปิดขึ้นมา บันทึกและแปลงไฟล์ให้ทันที", + "whats_new.2_0_0.flip.title": "โดนัทมีด้านหลังแล้ว", + "whats_new.2_0_0.flip.text": "กด Tab หรือหมุนล้อเมาส์ขณะโดนัทเปิดอยู่ เพื่อพลิกไปยังพรีเซ็ตเพิ่มเติมที่ด้านหลัง", + "whats_new.2_0_0.formats.title": "รองรับฟอร์แมตเพิ่มเติม", + "whats_new.2_0_0.formats.text": "บันทึกหน้าเว็บ (MHTML), ใบกำกับภาษีอิเล็กทรอนิกส์ OFD, แผนที่ Shapefile, GeoJSON, KML และ GPX, JPEG XR, โมเดล FBX และเทมเพลต POTM", + "whats_new.2_0_0.crop.title": "ครอบตัดก่อนแปลงไฟล์", + "whats_new.2_0_0.crop.text": "ลากรูปภาพมาวางที่ชิ้นส่วน 'ครอบตัด' กด A เหนือรูปภาพเพื่อเลือกสัดส่วนได้ทันที จากนั้นเลือก 'ครอบตัดและต่อไป'", + "whats_new.2_0_0.theme.title": "โค้งมน นุ่มนวลขึ้น และเลือกสีได้ตามใจคุณ", + "whats_new.2_0_0.theme.text": "เลือกสีเน้นได้ตามต้องการ ปรับความโค้งมนด้วย 'ความโค้งมน' และปรับโดนัทให้โปร่งใสได้", + "whats_new.2_0_0.languages.title": "Filee พูดได้หลายภาษามากขึ้น", + "whats_new.2_0_0.languages.text": "เพิ่มภาษาสเปน ฮินดี ญี่ปุ่น รัสเซีย อาหรับ และโปรตุเกสบราซิล ร่วมกับอังกฤษ เกาหลี จีน และโปแลนด์", + "whats_new.2_0_0.more.title": "และอีกมากมาย", + "whats_new.2_0_0.more.text": "รีเซ็ตโดนัทแต่ละอันกลับเป็นค่าเริ่มต้น ค้นหาประวัติการแปลงไฟล์ทั้งหมด และแปลงเอกสารภาษาคุชราต ฮินดี หรืออาหรับผ่าน LibreOffice" +} \ No newline at end of file diff --git a/src/Filee.App/Program.cs b/src/Filee.App/Program.cs index 9f862e580..ad20c37ed 100644 --- a/src/Filee.App/Program.cs +++ b/src/Filee.App/Program.cs @@ -293,7 +293,7 @@ public static AppBuilder BuildAvaloniaApp() } /// Embedded Noto fonts: fonts:Filee#Noto Sans, #Noto Sans JP, #Noto Sans KR, -/// #Noto Sans SC, #Noto Sans Devanagari, #Noto Sans Arabic. +/// #Noto Sans SC, #Noto Sans Devanagari, #Noto Sans Arabic, #Noto Sans Thai. internal sealed class FileeFontCollection() : Avalonia.Media.Fonts.EmbeddedFontCollection( new Uri("fonts:Filee", UriKind.Absolute), new Uri("avares://Filee/Assets/Fonts", UriKind.Absolute)); diff --git a/src/Filee.App/Services/AppLanguages.cs b/src/Filee.App/Services/AppLanguages.cs index 477a68cee..73258a8b6 100644 --- a/src/Filee.App/Services/AppLanguages.cs +++ b/src/Filee.App/Services/AppLanguages.cs @@ -21,6 +21,7 @@ internal static class AppLanguages ("pt-BR", "Português (Brasil)"), ("fr", "Français"), ("ne", "नेपाली"), + ("th", "ไทย"), ]; /// diff --git a/src/Filee.App/Services/LocalizationService.cs b/src/Filee.App/Services/LocalizationService.cs index b9252c06d..caa8a897d 100644 --- a/src/Filee.App/Services/LocalizationService.cs +++ b/src/Filee.App/Services/LocalizationService.cs @@ -132,6 +132,9 @@ internal static string Resolve(string setting, Func osLanguage) // "ne" and "ne-NP", but not Newari "new". if (ui.Equals("ne", StringComparison.OrdinalIgnoreCase) || ui.StartsWith("ne-", StringComparison.OrdinalIgnoreCase)) return "ne"; + // "th" and "th-TH", but not Tharu "thl". + if (ui.Equals("th", StringComparison.OrdinalIgnoreCase) || ui.StartsWith("th-", StringComparison.OrdinalIgnoreCase)) + return "th"; return "en"; } diff --git a/src/Filee.App/Services/SoftPalette.cs b/src/Filee.App/Services/SoftPalette.cs index 49ea4990d..b83430d9c 100644 --- a/src/Filee.App/Services/SoftPalette.cs +++ b/src/Filee.App/Services/SoftPalette.cs @@ -21,6 +21,7 @@ internal static class SoftPalette private const string Latin = "fonts:Filee#Noto Sans"; private const string Arabic = "fonts:Filee#Noto Sans Arabic"; private const string Devanagari = "fonts:Filee#Noto Sans Devanagari"; + private const string Thai = "fonts:Filee#Noto Sans Thai"; /// Each CJK region's embedded font and its system fonts (Windows, then macOS). private static readonly (string Embedded, string System) Japanese = @@ -77,8 +78,8 @@ public static string FontFamilies(string language) : [Korean, Chinese, Japanese]; var traditional = AppLanguages.IsTraditionalChinese(language) ? $"{TraditionalChineseSystem}, " : ""; // Noto Sans comes first: the first face also draws the trimming ellipsis, which Noto Sans Arabic lacks. - return $"{Latin}, {Arabic}, {Devanagari}, {traditional}{string.Join(", ", cjk.Select(f => f.Embedded))}, Segoe UI, Nirmala UI, " - + $"{string.Join(", ", cjk.Select(f => f.System))}, Kohinoor Devanagari, Geeza Pro, sans-serif"; + return $"{Latin}, {Arabic}, {Devanagari}, {Thai}, {traditional}{string.Join(", ", cjk.Select(f => f.Embedded))}, Segoe UI, Nirmala UI, Leelawadee UI, " + + $"{string.Join(", ", cjk.Select(f => f.System))}, Kohinoor Devanagari, Geeza Pro, Thonburi, sans-serif"; } /// @@ -92,7 +93,7 @@ public static string SystemFontFamilies(string language) : language.StartsWith("zh", StringComparison.OrdinalIgnoreCase) ? [Chinese, Korean, Japanese] : [Korean, Chinese, Japanese]; var traditional = AppLanguages.IsTraditionalChinese(language) ? $"{TraditionalChineseSystem}, " : ""; - return $"Segoe UI, Nirmala UI, {traditional}{string.Join(", ", cjk.Select(f => f.System))}, sans-serif"; + return $"Segoe UI, Nirmala UI, Leelawadee UI, {traditional}{string.Join(", ", cjk.Select(f => f.System))}, sans-serif"; } /// The resource Soft.axaml's Window style takes from. diff --git a/src/Filee.Setup/SetupOptions.cs b/src/Filee.Setup/SetupOptions.cs index d28412ad9..2db0265fa 100644 --- a/src/Filee.Setup/SetupOptions.cs +++ b/src/Filee.Setup/SetupOptions.cs @@ -10,7 +10,7 @@ // /NOCLOSEAPPLICATIONS don't force-close programs that still run from the install folder after "Filee --quit" // /DIR="folder" install folder (environment variables are expanded) // /LANG=ko language of Setup (and of a newly installed Filee): en, es, ja, ko, zh-CN (Inno: zhcn), -// zh-TW, pl, hi, ru, ar, pt-BR, fr, ne +// zh-TW, pl, hi, ru, ar, pt-BR, fr, ne, th // /TASKS="a,b" exactly these options; /MERGETASKS="a,!b" changes the defaults. "!" unticks, "*" ticks // the children too. Names: contextmenu, contextmenu\top, startup, cli, desktopicon // /NOICONS no Start menu and desktop shortcuts diff --git a/tests/Filee.App.Tests/LocalizationTests.cs b/tests/Filee.App.Tests/LocalizationTests.cs index 9316b1470..5826bd35f 100644 --- a/tests/Filee.App.Tests/LocalizationTests.cs +++ b/tests/Filee.App.Tests/LocalizationTests.cs @@ -107,6 +107,8 @@ public void Russian_is_offered_under_its_own_name() [InlineData("frr-DE", "en")] [InlineData("ne-NP", "ne")] [InlineData("new-NP", "en")] + [InlineData("th-TH", "th")] + [InlineData("thl-NP", "en")] [InlineData("de-DE", "en")] [InlineData("", "en")] // Linux without LANG: the invariant culture public void Auto_follows_the_language_the_user_reads_the_os_in(string os, string expected) => @@ -168,6 +170,14 @@ public void French_is_offered_under_its_own_name() Assert.Equal("fr", LocalizationService.Resolve("FR")); } + [Fact] + public void Thai_is_offered_under_its_own_name() + { + Assert.Contains(("th", "ไทย"), LocalizationService.Languages); + Assert.Equal("th", LocalizationService.Resolve("TH")); + Assert.Contains("fonts:Filee#Noto Sans Thai", ThemeService.FontFamilies("th")); + } + /// Han characters look different in Japanese, Korean and Chinese fonts: the UI language's come first. [Theory] [InlineData("ja", "Noto Sans JP", "Yu Gothic UI")] diff --git a/tests/Filee.App.Tests/RenderTests.cs b/tests/Filee.App.Tests/RenderTests.cs index ae99f9d2c..c3c85b97d 100644 --- a/tests/Filee.App.Tests/RenderTests.cs +++ b/tests/Filee.App.Tests/RenderTests.cs @@ -27,6 +27,8 @@ public class RenderTests { { "home", "ar" }, { "general", "ar" }, { "triggers", "ar" }, { "toolbar", "ar" }, { "presets", "ar" }, { "theme", "ar" }, { "engines", "ar" }, { "about", "ar" }, { "watch", "ar" }, + { "home", "th" }, { "general", "th" }, { "triggers", "th" }, { "toolbar", "th" }, + { "presets", "th" }, { "theme", "th" }, { "engines", "th" }, { "about", "th" }, { "watch", "th" }, { "home", "en" }, { "general", "en" }, { "triggers", "en" }, { "toolbar", "en" }, { "presets", "en" }, { "theme", "en" }, { "engines", "en" }, { "about", "en" }, { "general", "ko" }, { "toolbar", "ko" }, { "home", "ko" }, diff --git a/tests/Filee.Setup.Tests/SetupTextsTests.cs b/tests/Filee.Setup.Tests/SetupTextsTests.cs index 285cfe1b2..d0261a552 100644 --- a/tests/Filee.Setup.Tests/SetupTextsTests.cs +++ b/tests/Filee.Setup.Tests/SetupTextsTests.cs @@ -55,6 +55,7 @@ public void Setup_offers_every_language_filee_has() [InlineData(null, "pl-PL", "pl")] [InlineData(null, "hi-IN", "hi")] [InlineData(null, "ne-NP", "ne")] + [InlineData(null, "th-TH", "th")] [InlineData(null, "ja-JP", "ja")] [InlineData("xx", "de-DE", "en")] [InlineData("klingon", "pl-PL", "pl")]