มีสองสิ่งเปลี่ยนใน 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