มีสองสิ่งเปลี่ยนใน Timex 1.1.0 ไม่มีอะไรในนั้นถ่ายเป็นภาพหน้าจอแล้วดูดี
ข้อแรก แอปพูดได้ห้าภาษาแล้ว English, Español, Русский, हिन्दी, ไทย ทุก label, ทุก chip, ทุก tooltip, ทุกคำสั่งบนการ์ดพัก, ทุกข้อความ error
ข้อสอง คุณสามารถ export ทุกอย่างที่ Timex รู้เกี่ยวกับเวลาของคุณ — ทุก session, ทุก app event, ทุกการพัก, ทุกแก้วน้ำ — เป็นไฟล์ ZIP ด้วยคลิกเดียวใน Settings
มันไม่ดูเหมือนเป็นฟีเจอร์เดียวกัน แต่ใช่
สามอีเมลในหนึ่งสัปดาห์
อีเมลแรกที่ผมได้รับหลัง 1.0 ออก มาจากนักพัฒนาในเซนต์ปีเตอร์สเบิร์กที่ขอโทษที่เขียนเป็นภาษาอังกฤษ เพราะเขาไม่แน่ใจว่าผมอ่านรัสเซียได้ (อ่านได้) ฉบับที่สองมาจากฟรีแลนซ์ในมาดริดที่ถามอย่างสุภาพว่าลูกค้าของเขาจะอ่าน timesheet PDF ที่เขาส่งให้ได้บ้างไหม สามในห้าลูกค้าของเขาพูดภาษาอังกฤษไม่ได้
ฉบับที่สามต่างออกไป บรรทัดเดียว: "ข้อมูลของผมอยู่ไหน?" — จากคนที่ใช้ Timex มาเก้าวัน ตัดสินใจว่ามันไม่ใช่สำหรับเขา และอยากเอากิจกรรมเก้าวันที่ถูก track ไปไว้ที่อื่นก่อนลบแอป เขาไม่อยากได้ CSV ไม่อยากได้รายงาน เขาอยากได้ ข้อมูล
คำถามสองข้อนั้น — นี่ภาษาอะไร และ ข้อมูลของผมอยู่ที่ไหน — นั่งติดกันใน inbox ผมหนึ่งสัปดาห์ก่อนผมจะรู้ว่ามันเป็นคำถามเดียวกัน
ทั้งคู่เป็นเวอร์ชันของ: นี่มันควรเป็นของผม ใช่ไหม?
เวอร์ชัน 1.0 เป็นเรื่องว่า Timex ทำงานได้ไหม เวอร์ชัน 1.1 เป็นเรื่องว่ามันทำงาน เพื่อคุณ ได้ไหม — ในภาษาของคุณ ด้วยข้อมูลที่เข้าถึงได้ตามเงื่อนไขของคุณ โดยไม่ต้องส่งอีเมลมาให้ผมเพื่อให้สองเรื่องนั้นเกิดขึ้น
ห้าภาษา ในตัวแอป
ทุกข้อความใน Today view, popover ของ menu bar, หน้าต่าง Settings, overlay พัก, และ flow การ activate license ตอนนี้ render เป็น:
- English
- Español
- Русский
- हिन्दी
- ไทย
วันที่ render ตาม locale ของคุณ (17 พฤษภาคม 2569 vs. May 17, 2026 vs. 17 мая 2026 г.) ตัวเลขเคารพตัวคั่นทศนิยมของคุณ ตัวเลือกภาษาเป็นแถวของ pills ใน Settings — แตะหนึ่งอันแล้วทั้งแอป re-render โดยไม่ต้อง restart ภาษาเริ่มต้นของระบบคือสิ่งที่โหลดในการเปิดครั้งแรก
ผมจะพูดตรง ๆ ว่าอะไรไม่อยู่ใน 1.1: ภาษา RTL Layout engine ตระหนักถึง RTL แล้ว แต่ translation ยังไม่พร้อม เมื่อมีคำแปลภาษาอาหรับหรือฮีบรูที่อยู่ในสภาพดี เราจะส่งออกไป จนกว่าจะถึงตอนนั้น เราขอรอดีกว่าส่งภาพแรกที่ขวา-ไป-ซ้ายเสีย
สองสิ่งที่ใช้เวลานานกว่าที่คาด:
- Pluralization ในภาษารัสเซีย เป็นระบบสามรูป (1 / 2–4 / 5+) "1 перерыв", "2 перерыва", "5 перерывов" ต่างก็มีคำลงท้ายต่างกัน การใช้
{n} breaksแบบ pluralization สไตล์ภาษาอังกฤษอย่างไร้เดียงสาทำให้แอปฟังดูเหมือนหุ่นยนต์สำหรับเจ้าของภาษา ตอนนี้เราทำให้ถูกต้องแล้ว - รูปแบบวันที่ภาษาไทย ใช้ปฏิทินพุทธศักราชเป็นค่าเริ่มต้น — ปี 2569 ในภาษาไทยคือปี 2026 ในเกรกอเรียน Today view แสดงตามที่ระบบของคุณตั้งค่าไว้
เรื่องเล็ก ๆ แต่ควรทำให้ถูก
Export ทุกอย่างเป็น ZIP
เปิด Settings → Export Database… คุณจะได้ไฟล์ ZIP ที่มี SQLite database ของคุณเต็ม ๆ เหมือนกับที่ Timex มองเห็น ทุก session, ทุก app event, ทุกการพัก, ทุก log น้ำ, ทุก preference
สิ่งที่ ไม่มี ใน ZIP: ไม่มีเลย ไม่มี encrypted blob ไม่มี cloud handle ไม่มี "ต้องออนไลน์ถึงจะ decode ได้" มันคือไฟล์ SQLite
แต่คำถามที่สำคัญกว่าคือ คุณจะทำอะไรกับมัน?
คำตอบที่ตรงไปตรงมาสำหรับคนส่วนใหญ่ไม่ใช่ "เปิดด้วย sqlite3 จาก terminal" นั่นคือคำตอบสำหรับ ผม คำตอบสำหรับคนส่วนใหญ่คือ: ลาก ZIP เข้าไปในเครื่องมือใน browser ของเรา ทั้งสามตัวรันในเบราว์เซอร์ของคุณทั้งหมด — ไม่มีอะไรออกจาก tab, ไม่มีอะไรโดน server, ไฟล์ไม่เคยออกจากเครื่องของคุณ
- Timesheet PDF — ปล่อย ZIP, เลือกช่วงวันที่, ได้ PDF พร้อมส่งลูกค้าพร้อมชั่วโมงเรียกเก็บได้ตาม app และโปรเจกต์ ฟรีแลนซ์ในมาดริดน่ะเหรอ? นี่แหละที่เขาขอจริง ๆ
- Wrapped — ปี (หรือเดือน หรือสัปดาห์) ของคุณในเวลา พร้อมแอปที่คุณอยู่ในนั้น ชั่วโมงที่คุณตั้งใจจดจ่อ และวันที่คุณไม่ได้ Spotify-Wrapped แต่เป็นเรื่องว่าความสนใจของคุณไปไหน
- SQLite viewer — ปล่อย ZIP, browse ทุกตาราง, รัน SQL queries ของคุณเอง สำหรับคนที่อยากได้คำตอบดิบ ไม่ใช่คำตอบที่ถูก render มาแล้ว
ไฟล์ export เดียวกัน ทั้งสามเครื่องมือ Schema เป็น schema เดียวกันกับที่ Timex ใช้รันภายในตัวมันเอง — ไม่มี "รูปทรง export" แยกต่างหากที่แอบเป็น subset
ถ้าอยากข้าม browser ไปเลย มันก็เป็นไฟล์ SQLite:
unzip timex-export-2026-05-17.zip
sqlite3 timex.db
sqlite> SELECT app, SUM(duration_ms)/1000/60 AS minutes
...> FROM sessions WHERE date(started_at) = '2026-05-17'
...> GROUP BY app ORDER BY minutes DESC;
เหตุผลที่เรื่องนี้สำคัญ: มันคือคำตอบที่ตรงไปตรงมาเพียงคำตอบเดียวต่อ "ถ้าผมอยากไป ทำไง?" แอปส่วนใหญ่ตอบคำถามนี้ว่า "export เป็น CSV ด้วยข้อจำกัดเหล่านี้ ไม่มี field เหล่านี้" Timex ตอบว่า "นี่คือไฟล์เต็ม ๆ ที่แอปรันอยู่บนนั้น นี่คือเครื่องมือที่เปลี่ยนมันเป็นสิ่งที่ใช้ได้จริง นี่คือทางออก ถ้าคุณต้องการ เราหวังว่าคุณจะกลับมา"
ครึ่งที่ไม่หรู: design system + accessibility
ใน 1.1.0 มีการเปลี่ยนแปลงที่สามที่คุณจะไม่เห็นในภาพหน้าจอ ทุก corner radius, border, hover state, และสี brand ในแอปตอนนี้ดึงมาจากชุด token เดียว ก่อน 1.1 ครึ่งหนึ่งของ component เป็น CSS แบบ one-off Overlay พักมี button hover ต่างจาก Settings Popover มีรูปทรง chip ต่างจาก Today view มันทำงานได้ แต่มันบอกความจริงเกี่ยวกับวิธีที่แอปถูกสร้าง — ทีละฟีเจอร์ อย่างเร็ว
ในรีลีสเดียวกัน: ทุก button ที่เป็น icon อย่างเดียวตอนนี้มี VoiceOver label ปุ่ม +/- ของน้ำ, chevron ของวันที่, ปุ่มปิดของ overlay พัก — ก่อนหน้าถูกอ่านให้ผู้ใช้ screen reader เป็นแค่ "button" ตอนนี้บอกว่ามันทำอะไร
ไม่มีสิ่งใดในนี้เปลี่ยนสิ่งที่แอปทำ ทั้งคู่เปลี่ยนความรู้สึกของมัน
ทำไมมันไม่ใช่ 2.0
คำถามที่สมเหตุสมผล: การส่งแอปเป็นห้าภาษาไม่ควรเป็นการเพิ่มเวอร์ชันที่ใหญ่กว่านี้หรือ?
ควรจะใช่ ถ้าค่าของรีลีสเป็นสัดส่วนกับขนาด diff ของมัน แต่มันไม่ใช่ ภาษาใหม่เป็นคำแปลของ string ที่อยู่ตรงนั้นมาตลอด Export คือ button เดียวที่ใช้ code ที่ Timex รันภายในมาตลอด ไม่มีอันไหนเปลี่ยนสิ่งที่แอปทำ — มันเปลี่ยนว่าใครใช้ได้ และตามเงื่อนไขของใคร
นั่นคือ 1.1 ไม่ใช่ 2.0 หมายเลขเวอร์ชันตามรูปของแอป ไม่ใช่ขนาดของงาน
ถัดไปคืออะไร
สามอย่างในคิว:
- ภาษาเพิ่ม ตามที่คนอีเมลมาบอก เยอรมัน ฝรั่งเศส โปรตุเกส (บราซิล) และญี่ปุ่นอยู่ในคิว Infrastructure มีแล้ว เราแค่ต้องหานักแปลที่เราเชื่อใจ
- Export แบบ filter — เอาแค่ 30 วันที่ผ่านมา หรือแค่ activity ของแอปเดียว แทนที่จะเป็นทั้ง database สองคนถามแล้ว
- Sync ระหว่าง Mac โดยไม่ใช้ cloud ถ้าผมหาวิธีที่ไม่ละเมิดหลัก "ข้อมูลของคุณ ไฟล์ของคุณ" ที่ส่วนที่เหลือของแอปสร้างอยู่บนนั้น อันนี้ยาก
ถ้าอยากได้อันไหนก่อน อีเมลอยู่ที่ footer
ถ้าคุณอยู่ที่ 1.0 ไปเอา 1.1 ที่หน้าดาวน์โหลด การ upgrade เก็บทุกอย่างไว้ ถ้าคุณเป็นคนใหม่ trial ยังคง 100 ชั่วโมง ไม่ต้อง signup ไม่เก็บอีเมล — และตอนนี้ ในภาษาของคุณ
— DK