# LocalSend [![CI status][ci-badge]][ci-workflow] [ci-badge]: https://github.com/localsend/localsend/actions/workflows/ci.yml/badge.svg [ci-workflow]: https://github.com/localsend/localsend/actions/workflows/ci.yml [Homepage][homepage] • [Discord][discord] • [GitHub][github] • [Codeberg][codeberg] [English](/README.md) • [中文](README_ZH.md) • [日本語](README_JA.md) • [ภาษาไทย](README_TH.md) • [Filipino](README_PH.md) • [Polski](README_PL.md) • [Español](README_ES.md) • [Tiếng Việt](README_VI.md) • [Portugês Brasil](README_PT_BR.md) • [Italiano](README_IT.md) • [Indonesia](README_ID.md) • [ភាសាខ្មែរ](README_KM.md) [homepage]: https://localsend.org [discord]: https://discord.gg/GSRWmQNP87 [github]: https://github.com/localsend/localsend [codeberg]: https://codeberg.org/localsend/localsend LocalSend เป็นแอปที่ช่วยให้การส่งไฟล์ระหว่างอุปกรณ์เป็นไปอย่างปลอดภัยโดยไม่จำเป็นต้องใช้อินเทอร์เน็ต - [เกี่ยวกับ](#เกี่ยวกับ) - [ภาพหน้าจอ](#ภาพหน้าจอ) - [ดาวน์โหลด](#ดาวน์โหลด) - [หลักการทำงาน](#หลักการทำงาน) - [การเริ่มต้น](#การเริ่มต้น) - [การมีส่วนร่วมพัฒนา](#การมีส่วนร่วมพัฒนา) - [การแปล](#การแปล) - [การแก้บัคและพัฒนา](#การแก้บัคและพัฒนา) - [การสร้างและคอมไพล์แอป](#การสร้างและคอมไพล์แอป) - [Android](#android) - [iOS](#ios) - [macOS](#macos) - [Windows](#windows) - [Linux](#linux) ## เกี่ยวกับ LocalSend เป็นแอปข้ามแพลตฟอร์มที่ช่วยให้การสื่อสารระหว่างอุปกรณ์เป็นไปอย่างปลอดภัยโดยใช้ REST API และการเข้ารหัส HTTPS ต่างจากแอปส่งข้อความอื่นๆ ที่ต้องพึ่งพาเซิร์ฟเวอร์ภายนอก LocalSend ไม่ต้องการการเชื่อมต่ออินเทอร์เน็ตหรือเซิร์ฟเวอร์บุคคลที่สาม ทำให้เป็นโซลูชั่นการสื่อสารภายในท้องถิ่นที่รวดเร็วและเชื่อถือได้ ## ภาพหน้าจอ iPhone screenshot PC screenshot ## ดาวน์โหลด ทางเราแนะนำให้ดาวน์โหลดแอปนี้จาก App Store หรือ Package Manager เพราะในตัวแอปไม่มีฟังชั่นอัปเดตอัตโนมัติ | Windows | macOS | Linux | Android | iOS | Fire OS | |-------------------------|-------------------------|--------------------|----------------|---------------|------------| | [Winget][] | [App Store][] | [Flathub][] | [Play Store][] | [App Store][] | [Amazon][] | | [Scoop][] | [Homebrew][] | [Nixpkgs][] | [F-Droid][] | | | | [Chocolatey][] | [DMG Installer][latest] | [Snap][] | [APK][latest] | | | | [EXE Installer][latest] | | [AUR][] | | | | | [Portable ZIP][latest] | | [TAR][latest] | | | | | | | [DEB][latest] | | | | | | | [AppImage][latest] | | | | อ่านเพิ่มเติมเกี่ยวกับ [distribution channels][]. [windows store]: https://www.microsoft.com/store/apps/9NCB4Z0TZ6RR [app store]: https://apps.apple.com/us/app/localsend/id1661733229 [play store]: https://play.google.com/store/apps/details?id=org.localsend.localsend_app [f-droid]: https://f-droid.org/packages/org.localsend.localsend_app [amazon]: https://www.amazon.com/dp/B0BW6MP732 [winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LocalSend/LocalSend [scoop]: https://scoop.sh/#/apps?s=0&d=1&o=true&q=localsend&id=fb88113be361ca32c0dcac423cb4afdeda0b0c66 [chocolatey]: https://community.chocolatey.org/packages/localsend [homebrew]: https://formulae.brew.sh/cask/localsend [flathub]: https://flathub.org/apps/details/org.localsend.localsend_app [nixpkgs]: https://search.nixos.org/packages?show=localsend [snap]: https://snapcraft.io/localsend [aur]: https://aur.archlinux.org/packages/localsend-bin [latest]: https://github.com/localsend/localsend/releases/latest [distribution channels]: https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md#distribution ## การตั่งค่า ในกรณีส่วนใหญ่ LocalSend ควรทำงานได้ทันที อย่างไรก็ตาม หากคุณประสบปัญหาในการส่งหรือรับไฟล์ คุณอาจต้องกำหนดค่าไฟร์วอลล์ของคุณเพื่อให้ LocalSend สามารถสื่อสารผ่านเครือข่ายแลนได้ | Traffic Type | Protocol | Port | Action | |--------------|----------|-------|--------| | Incoming | TCP, UDP | 53317 | Allow | | Outgoing | TCP, UDP | Any | Allow | แนะนำให้ตรวจสอบให้แน่ใจว่าคุณได้ปิด AP isolation บนเราเตอร์ของคุณแล้ว โดยปกติการตั้งค่าดังกล่าวจะถูกปิดเป็นค่าเริ่มต้นอยู่แล้ว แต่บางเราเตอร์บางตัวอาจเปิดใช้งานไว้ **โหมดเคลื่อนที่** (เพิ่มเข้ามาในเวอร์ชัน v1.13.0) สร้างไฟล์ชื่อ `settings.json` ไว้ในโฟล์เดอร์เดียวกับตัวแอป (.exe) ไฟล์นี้สามารถเป็นไฟล์ว่างเปล่าได้ ตัวแอปจะทำการเก็บข้อมูลการตั้งค่าไว้ในนี้แทนที่จะไปเก็บยังที่เริ่มต้น **เริ่มแอปเป็นไอคอนถาดกราฟิก** (อัปเดตในเวอร์ชัน v1.15.0) เพื่อเริ่มแอปเป็นไอคอนถาดกราฟิก (เฉพาะไอคอนถาดกราฟิกอย่างเดียว) ใช้คำสั่ง --hidden (ตัวอย่าง: localsend_app.exe --hidden) ในเวอร์ชัน v1.14.0 หรือก่อนหน้า ตัวแอปจะเริ่มเป็นไอคอนถาดกราฟิกถ้าใส่ flag `autostart` และเปิดโหมดซ่อน ## หลักการทำงาน LocalSend ใช้โปรโตคอลการสื่อสารที่ปลอดภัยที่ช่วยให้อุปกรณ์สามารถสื่อสารกันโดยใช้ REST API ข้อมูลทั้งหมดจะถูกส่งอย่างปลอดภัยผ่าน HTTPS และใบรับรอง TLS/SSL จะถูกสร้างขึ้นในทันทีบนแต่ละอุปกรณ์เพื่อให้แน่ใจว่ามีความปลอดภัยสูงสุด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโปรโตคอล LocalSend ดูที่ [documentation](https://github.com/localsend/protocol). ## การเริ่มต้น ในการคอมไพล์ LocalSend จากซอร์สโค้ด ให้ทำตามขั้นตอนเหล่านี้: 1. ติดตั้ง Flutter [โดยตรง](https://flutter.dev) หรือใช้ [fvm](https://fvm.app) (ดู [เวอร์ชันที่ต้องการ](.fvmrc)) 2. โคลน repository ของ `LocalSend` 3. รัน `cd app` เพื่อเข้าไปยังโฟล์เดอร์ของแอป 4. รัน `flutter pub get` เพื่อดาวโหลด dependencies 5. รัน `flutter run` เพื่อเริ่มแอป > [!หมายเหตุ] > LocalSend ยังคงต้องการ Flutter เวอร์ชันเก่าอยู่ (ดูที่ [.fvmrc](.fvmrc)) > จึงอาจเกิดปัญหาการคอมไพล์ ที่เกิดจากความไม่ตรงกันระหว่างเวอร์ชันที่ต้องการและเวอร์ชัน Flutter ที่ติดตั้งในระบบ > เพื่อทำให้การพัฒนาเป็นไปอย่างสม่ำเสมอ LocalSend ใช้ [fvm](https://fvm.app) ในการจัดการเวอร์ชัน Flutter ของโปรเจกต์ > หลังจากติดตั้ง `fvm`, ให้ใช้คำสั่ง `fvm flutter` แทนการใช้ `flutter`. ## การมีส่วนร่วมพัฒนา เรายินดีต้อนรับการมีส่วนร่วมจากทุกคนที่สนใจช่วยปรับปรุง LocalSend หากคุณต้องการมีส่วนร่วม มีหลายวิธีที่คุณสามารถทำได้: ### การแปล คุณสามารถช่วยแปลแอปนี้เป็นภาษาอื่นได้! โดยการ: 1. Fork repository นี้ 2. เลือกภาษาที่ต้องการแปล มีหลักการแปลดังนี้ - เพิ่มการแปลที่ขาดหายในภาษาที่มีอยู่: อัปเดตเฉพาะ `_missing_translations_.json` ใน [app/assets/i18n][i18n] - แก้ไขการแปลที่มีอยู่: อัปเดต `strings_.i18n.json` ใน [app/assets/i18n][i18n] - เพิ่มภาษาใหม่: สร้างไฟล์ใหม่; see also: [locale codes][]. 3. รันแอปใหม่ (ไม่จำเป็น) 1. รัน `cd app` เพื่อเข้าโฟล์เดอร์ของแอป 2. ตรวจสอบให้แน่ใจว่าคุณเคย [รัน](#การเริ่มต้น) แอปนี้แล้วมาครั้งนึง 3. อัปเดตการแปลภาษาโดยใช้คำสั่ง `flutter pub run slang` 4. รันแอปผ่านคำสั่ง `flutter run` 5. เปิด pull request [i18n]: https://github.com/localsend/localsend/tree/main/app/assets/i18n [locale codes]: https://saimana.com/list-of-country-locale-code/ **_หมายเหตุ:_ ไม่ต้องแปลช่องหรือบรรทัดที่ขึ้นต้นด้วยตัวอักษร `@` เพราะจะไม่ถูกแสดงในแอป ข้อความเหล่านั้นมีไว้เพื่อให้นักพัฒนาเข้าใจโค้ดเท่านั้น.** ### การแก้บัคและพัฒนา - **การแก้บัค:** หากคุณพบข้อบกพร่อง กรุณาสร้าง pull request พร้อมคำอธิบายชัดเจนเกี่ยวกับปัญหาและวิธีการแก้ไข - **การพัฒนา:** มีไอเดียในการปรับปรุง LocalSend ไหม? กรุณาสร้าง "issue" ก่อนเพื่อพูดคุยว่าทำไมการปรับปรุงนั้นจึงจำเป็น สำหรับข้อมูลเพิ่มเติม ดูได้ที่ [contributing guide](https://github.com/localsend/localsend/blob/main/CONTRIBUTING.md). ## การสร้างและคอมไพล์แอป สำหรับนักพัฒนาเท่านั้น ### Android Traditional APK ```bash flutter build apk ``` AppBundle for Google Play ```bash flutter build appbundle ``` ### iOS ```bash flutter build ipa ``` ### macOS ```bash flutter build macos ``` ### Windows **Traditional** ```bash flutter build windows ``` **Local MSIX App** ```bash flutter pub run msix:create ``` **Store ready** ```bash flutter pub run msix:create --store ``` ### Linux **Traditional** ```bash flutter build linux ``` **AppImage** ```bash appimage-builder --recipe AppImageBuilder.yml ``` **Snap** คุณสามารถเปิด pull request ได้ตามสะดวกเลย เรามี branch `snap` ให้คุณลองเล่นด้วยนะ :) ## รายชื่อผู้มีส่วนร่วมพัฒนา Localsend Contributors