跳至内容
cutty.dev
All posts

25 種語言即時直播 — 里程碑

cutty.dev 現在支援二十五種語言。這是一個關於其意義、為何選擇這些特定語言,以及如何在不將數據傳送到外部的情況下實現此功能的簡短故事。

  1. 在短短幾週內,我們新增了這麼多種語言。起初很簡樸:只有波蘭語和英語,兩個,清單結束。今天 cutty.dev 用二十五種語言歡迎你。數字很漂亮,但其本身並不代表任何意義。真正的意義在於誰站在這些數據背後。

快速計算一下。阿拉伯語有超過 4 億人。印地語又有好幾億。中文(如果算上普通話)超過了十億。再加上西班牙語(西班牙加上幾乎整個拉丁美洲)和葡萄牙語(主要歸功於巴西)。將這些市場相加,總共會有數十億人可以立即用自己的語言看到這個工具。從第一秒開始。

為何偏偏是這 25 個

完整的列表,為了方便整理。波蘭語、英語、德語、法語、西班牙語、義大利語、捷克語、羅馬尼亞語、匈牙利語、希臘語、荷蘭語、瑞典語、芬蘭語、烏克蘭語、土耳其語。此外還有阿拉伯語和希伯來語(兩者皆為從右至左書寫)。中文、日文、韓文。印地語、泰語、越南語、印尼語。還有葡萄牙語。

這並非憑空捏造。第一層僅僅是歐洲,一個市場接續另一個市場。第二層則是歐洲新創公司在「出現動能」之前通常不會涉足的地點:中東與北非、以色列、東亞、印度次大陸、東南亞。

法語是一個很好的例子,說明一個區域設定(locale)如何影響半個世界。當然包括法國,但也包括比利時、魁北克以及西非的一大部分地區。單單一個翻譯文件,就涵蓋了十幾個國家。

這些翻譯是從哪裡來的

這是我最滿意的一部分。這並非透過任何外部 API 完成。而是由運行在我們自有設備、我們內網中的本地 AI 模型進行翻譯。

用白話來說,這意味著:

  • 介面中的任何一個句子都沒有外流。沒有任何 AI 提供商獲得我們的文本進行「處理」。這並不是因為我們在「縮短」按鈕中有什麼需要隱藏的東西。純粹是因為我們從一開始就是這樣規劃這個專案的,而且我們不設例外,因為例外最終會變得難以管理。
  • 這比逐字翻譯的效果更好。模型能保持上下文、語氣,有時甚至包括幽默感。「Short link」在三種語言中可以有三個不同的合理對應詞,而不是單純的生硬翻譯。
  • 查詢完全沒有成本。我想修改二十五個版本中的一個句子?我可以直接修改,而不需要擔心帳單上的計費。

在第一次瀏覽後,我仍然會仔細檢查每個版本。佈局是否保持穩定、德文(那些奇妙的長單字)是否會將文字擠出按鈕之外,以及阿拉伯文是否真的朝正確的方向流動。

頁面鏡像,即阿拉伯語與希伯來語


這是一項獨立的工作,而不是「切換旗幟」。這兩種語言的整個頁面都是水平鏡像的。導覽列移到了右側,箭頭指向了相反的方向,甚至 hero 區塊的漸層效果也是反向的。

本可以放手的。許多網站都選擇了放手,那樣的話阿拉伯語版本看起來就像是一個被某人部分翻轉後便棄置一旁的西方網站。這一眼就能看出來。我們希望埃及人或以色列人感覺到這個網站是在他們當地製作的,而不是在下班時間為了他們而翻譯過來的。

字體,也就是那個直到出問題前都沒人會想到的問題


中文、日文、韓文。CJK 字元,一般的網頁字型內部根本沒有包含這些字。如果就這樣まま,使用者看到的會是文字變成方塊(那種經典的網頁破圖視圖)。因此,我們在這些版本中載入了額外的字型,但僅限於這些版本。其餘二十幾個語系則使用我們輕量、標準的字體,不會承擔任何不必要的負擔。泰文、印地文及其他文字也採用了完全相同的做法。

逆序

模式是已知的:用英文推出產品,而其餘語言則「以後有流量時再說」。但問題在於,只要從 Google 搜尋進來的西班牙人看到的是英文並隨即離開,那麼西班牙語版就永遠不會有流量。

我們走反了。每天 25 種語言的問候語。來自捷克、台灣、越南或埃及的人透過搜尋引擎進來,從第一個畫面開始就感到賓至如歸。

這其中也包含了一種單純的禮貌。網路預設了你會用英文溝通。一個來自歐洲的小工具,卻能用韓文或泰文與你對話,這同時也在傳達另一件事:它是為了所有人而製作的,而不僅僅是為了英語中心主義者。

如果你的也不在

列表很長,但並非永遠不會更新。沒看到您的語言?請寫信告訴我們。對我們來說,新增一種語言只需要幾天的時間,真的,而不是幾個月。

如果你們已經達成共識,那你應該知道該怎麼做。縮短某個連結並看看它看起來是否真的像原本的樣子。如果有任何問題,也請告知。