i18n ללא כאבים, מורחב לאופקים שלך בלי להוציא אלפי דולרים.
לחלוטין בחינם. פרויקטים ללא הגבלה, כל 48 השפות, ללא תפוגה, לא נדרש מפתח רישיון.
פרויקטים בלתי מוגבלים. כל 48 השפות. ללא תפוגה.
- כל 48 השפות, תרגומים ללא הגבלה
- לוח המחוונים, שרת ה-MCP, כל SDK
- אין מה לקנות, אין מה להזין מלבד מפתח ה-AI שלך
i18n כבר לא מסובך, אתה יכול לחוות את זה. לא אכפת לי לקבל טיפ על זה.
- כשאתה מרגיש את זה
- אם יש לך חשק
- מ-1 עד 1 מיליון דולר, לא יותר
תשלום מאובטח באמצעות Stripe. מפתח רישיון מגיע לתיבת הדואר הנכנס שלך — הוא משתיק את ההזמנה לתרומה בלוח המחוונים.
מה שאתה מקבל
- פרויקטים בלתי מוגבלים, 48 השפות, ללא תפוגה
- תרגומים ללא הגבלה, ללא מגבלת שימוש
- לוח המחוונים, שרת ה-MCP שלך עבור הסוכנים שלך, כל SDK
- מכולה אחת, קובץ SQLite אחד לגיבוי
- רישיון שנבדק במצב לא מקוון: השרת שלך לעולם לא מתקשר הביתה
- כל עדכון, לחיים: docker compose pull
מה שאתה מביא
- מכונה עם Docker: VPS של 4 אירו זה מספיק
- מפתח API של בינה מלאכותית (Mistral, OpenAI, Anthropic, Google או כל ספק תואם ל-OpenAI). התרגומים פועלים בחשבונך האישי, בעלות של מספר סנטים לאפליקציה
- חמש דקות
התמיכה היא באמצעות דואר אלקטרוני, במאמץ הטוב ביותר. צריך מישהו זמין? התוכניות המארחות מיועדות עבורך.
איך זה עובד
התקן, צור את המנהל, הדבק את מפתח ה-AI שלך. כל פרויקט חינמי, לתמיד.
עם ONCE — שרת חדש, דומיין, חמש דקות
curl -fsSL https://get.once.com | sh once # add an app: ghcr.io/ambroselli-io/i18n-keyless:latest, pick a host name # then open it: create the admin, paste your AI key on Settings # fully free, unlimited projects — donate if you want # ONCE does the domain, the TLS, the updates and the backups
עם Docker Compose — כל מכונה שמריצה Docker
mkdir i18n-keyless && cd i18n-keyless curl -fsSL https://i18n-keyless.com/self-hosted/docker-compose.yml -o docker-compose.yml docker compose up -d # → http://localhost:1800: create the admin, paste your AI key on Settings # fully free, unlimited projects — donate if you want
לאחר מכן הפנה את ה-SDK שלך לשרת שלך:
I18nKeyless.init({
API_KEY: "your-project-key",
API_URL: "https://i18n.example.com",
// …
});המדריך המלא: https://docs.i18n-keyless.com/docs/guides/self-hosting
למה לתרום?
מכיוון שאתה מנהל בעצמך את ה-VPS ואת מפתח ה-API של הבינה המלאכותית. אין לי סיבה לגבות ממך תשלום עבור מנוי. אני עצמי שונא מנויים. אז במקום זאת: אתה קובע מה התוכנה שווה לך, ואני ממשיך לבנות אותה.
התמונה מתקינה בחינם ומריצה פרויקטים ללא הגבלה, בכל השפות וללא תפוגה.
שאלות לפני שאתה קונה? כתוב אלינו
הגדר את i18n, שמור על בסיס הקוד שלך נקי ושלח במהירות
ישנם מספר PITA (בעיות) עם פתרונות ה-i18n הנוכחיים. הכאבים כל כך גדולים שאתה דוחה את ה-i18n כמה שרק אפשר.
זה צורך זמן שאתה צריך לבלות בחוף הים
הגדר את מערכת המפתחות: לפחות שעה אחת של זמן מפתח בכיר
קדימה ואחורה עבור כל מפתח חדש: 1 דקה למפתח, x500 מפתחות, x2 שפות = 17 שעות
עם i18n-keyless, אתה לא צריך לדאוג כלל למערכת ה-i18n. אתה יכול ללכת לחוף הים ולהזמין מוֹחִיטוֹ.
היום רוב המערכות משתמשות במפתחות כדי לתרגם את הטקסט
זה כואב ליצור. זה כואב לתחזק.
כאשר אתה רואה טקסט באפליקציה, ורוצה לעדכן אותו, עליך למצוא את המפתח המתאים.
עם i18n-keyless, אתה לא צריך להתעסק במערכת ה-i18n כלל. השתמש במוח שלך למשהו מעניין יותר.
השאר את התרגומים ל-AI
עם מערכת המפתחות, עליך לנהל את התרגומים באפליקציה.
אחרת המשתמשים שלך יראו someheader.welcome.title באפליקציה שלהם.
עם i18n-keyless, בתרחיש הגרוע ביותר במצב לא מקוון תראו מילים אמיתיות שלא תורגמו. בקצב רגיל, לא אכפת לך בכלל ממערכת ה-i18n. פשוט כתבו כותרות טובות, התמקדו בשיווק והשיגו מכירות.
בסיסי הקוד יפים... עד שהמפתחות של i18n נדבקים
עם מערכת המפתחות, כאשר אתה קורא את הקוד והתוכן, עליך לקרוא מפתחות, ולא שפה טבעית.
לפעמים כדאי לבצע תיקון מכיוון שהמשפט אינו תקין מבחינה דקדוקית. אבל אתה לא יודע את זה כי אתה קורא מפתחות.
עם i18n-keyless, אתה לא צריך לדאוג למערכת ה-i18n כלל. בסיס הקוד נשאר יפה.
שרת MCP כדי לכסות את כל צרכי ה-i18n שלך
שישה סיבות נוספות מדוע המערכת מותאמת כל כך לקידוד סוכני.
אין שם להמציא
מפתח הוא החלטה בשם ללא תשובה נכונה. שני סוכנים כותבים login.submit ו-auth.button.send לאותו כפתור. ללא מפתחות אין החלטה לקבל.
קובץ אחד לעריכה, לא עשרים
שינוי מבוסס מפתח משפיע על הרכיב ועל כל קובץ JSON של שפה מקומית, וסוכנים שוכחים קבצים. כאן, שינוי העתקה הוא עריכה של קובץ בודד.
אפס קונפליקטי מיזוג בציי סוכנים
חמישה סוכנים על חמישה ענפים עורכים כולם את en.json: עימות מובטח. אין קובץ משותף, כך ש-worktrees וסוכנים ברקע לעולם לא מתנגשים.
זול בטוקנים
על מנת להשתמש מחדש במפתח, הסוכן חייב לטעון את קבצי השפה להקשר בכל עריכה. טעינה ללא מפתח אינה עושה דבר: הטקסט נמצא בדיוק שם ברכיב.
הבדלים קריאים
בקשת הפול מציגה משפטים אמיתיים. אדם או סוכן סקירה יכול לשפוט את העותק בלי לחפור מה מפתח מייצג.
כלל אחד ב-CLAUDE.md שלך
כל כלל i18n שאתה כותב הוא כלל שהסוכן יכול להפר. כלל זה זקוק רק לשורה אחת — והגיבוי הוא הטקסט האמיתי, כך שטעות לא תציג a.b.c על המסך.
הכלל היחיד של i18n שהסוכן שלך צריך
# CLAUDE.md Write the UI copy in English and wrap it in <T>…</T> from i18n-keyless-react. That is the whole i18n setup.
הסוכן שלך יכול להפעיל אותו, לא רק לכתוב אותו
דרך שרת ה-MCP, הסוכן מפרט תרגומים חסרים, קורא אחד, מחליף אחד רע, או מייבא את העותק שיש לך כבר — עם התחברות ה-OAuth שלו, ללא צורך להדביק מפתח.
קרא את מדריך ה-MCPהשקה גלובלית החל מהיום הראשון
הפסיקו לדחות את i18n בגלל מורכבות. הטמיעו תוך 5 דקות, לא ימים. שמרו על מהירות הפיתוח שלכם כאילו ה-i18n לא יושם.
- יישום תוך 5 דקות. לא צוחק.
אובייקט תצורה פשוט אחד ואתם סיימתם.
- שמור על מהירות הפיתוח
תקודד כאילו i18n לא יושם בכלל.
- לשלוח לשווקים גלובליים
אין צורך בריפקטורינג כשאתה מרחיב לשפות חדשות.
- SSR ו-SEO מוכנים
עובד עם Next.js, Remix, TanStack Start ו-Astro. רינדור בצד השרת לכל שפה עבור מנועי חיפוש — אותה הגדרה של 5 דקות.
מסורתי i18n
i18n-ללא-מפתח
זה ממש לא מסובך להגדיר
רק האובייקט התצורה הפשוט ביותר ואתם מוכנים לצאת לעולם.
ועוד יותר מכך, הסוכן שלך יגדיר זאת עבורך.
1. הגדרה בסיסית
import * as I18nKeyless from "i18n-keyless-react";
I18nKeyless.init({
API_KEY: "YOUR_API_KEY",
storage: window.localStorage,
languages: {
primary: "en",
supported: ["en", "fr"],
},
});2. שימוש ברכיב (React כאן; אותו הדבר ב-Vue, Angular, Flutter, Swift ו-Kotlin)
import { I18nKeylessText } from "i18n-keyless-react";
// import { T } from "i18n-keyless-react"; // also works
// Just write in your primary language
<I18nKeylessText>
Welcome to our website
</I18nKeylessText>3. שימוש בצד השרת (Node.js כאן; אותו קריאה ב-Laravel, Rails, Python ו-Go)
import { awaitForTranslationOrFallbackToOriginal, type Lang } from 'i18n-keyless-node';
const title = await awaitForTranslationOrFallbackToOriginal('Come see my app!', user.lang as Lang);
const body = await awaitForTranslationOrFallbackToOriginal('So many new stuff!', user.lang as Lang);
await sendExpoPushNotification({ user, title, body });4. לטקסט מחוץ לרכיבים
import { getTranslation } from "i18n-keyless-react";
export default function Navigation() {
return (
<HomeTabs.Navigator>
<HomeTabs.Screen
options={{ tabBarLabel: getTranslation("Welcome") }}
name="WELCOME"
/>
</HomeTabs.Navigator>
);
}5. בחר את ה-SDK שלך: שורת התקנה אחת, אותו API בכל מקום
- React, React Native, Expo, Next.js, Remix, TanStack Start, Astronpm install i18n-keyless-react
- Vue, Nuxtnpm install i18n-keyless-vue
- Angularnpm install i18n-keyless-angular
- Plain HTML, Svelte, Alpine, htmx, one script tagnpm install i18n-keyless-browser
- Node.jsnpm install i18n-keyless-node
- Laravel, PHPcomposer require i18n-keyless/laravel
- Rails, Rubybundle add i18n-keyless-rails
- Flutter, Dartflutter pub add i18n_keyless
- Swift, iOS, macOS, VaporSwiftPM: arnaudambro/i18n-keyless-swift
- Kotlin, Android, Ktorio.github.arnaudambro:i18n-keyless-kotlin
- Python, Django, Flask, FastAPIpip install i18n-keyless
- Gogo get github.com/arnaudambro/i18n-keyless/ports/go/v3
איך תרגומים עובדים
i18n-keyless הוא ספרייה, המשולבת עם שירות API, המאפשרת לך לתרגם את הטקסט שלך ללא צורך להשתמש במפתחות.
אם התרגום לא נמצא, תבוצע אחזור אסינכרוני ל-API של I18nKeyless כדי לקבל את התרגום באמצעות קריאה ל-API של בינה מלאכותית.
פעולה זו מבוצעת בדרך כלל במצב פיתוח, בזמן שאתה מקודד. אם החמצת אחת, בייצור רק המשתמש הראשון שחסר לו התרגום יראה תקלה, ולאחר מכן היא תהיה זמינה מיידית למשתמשים בכל רחבי העולם.
רשימת החנות שלך בכל שפה, בכל הוצאה לאור
כל עדכון פירושו הערות שחרור חדשות, תיאור ומילות מפתח — לכל שפה, בשני החנויות. זה מה שמגביל אותך מללהוסיף שפות. לא האפליקציה.
- הערות השקה לכל שפה, בקריאה אחת
כתוב את העדכון פעם אחת. awaitForTranslation מחזיר אותו בכל שפה שאתה מוכר בה, ותצורת החנות שלך מזינה אותו ל-EAS או fastlane.
- 48 שפות, ממופה לחללי חנות האפליקציות
pt-BR ו-pt-PT הם שני רשימות; en-GB, en-AU ו-en-CA הם שלושה. toAppStoreLocale ממקם כל תרגום במקום הנכון.
- תקן תרגום גרוע ללא שחרור
באפליקציה, אוברריד אחד בלוח המחוונים פעיל בו-זמנית — ללא בניית תיקון חם, ללא ביקורת חנות. ברשימה, הפעל מחדש את ה-push.
- לא מחיר למילה
מתרגם גובה בערך 0.10 אירו למילה. 2,000 מחרוזות כפול 10 שפות זה תקציב שאין למפתח עצמאי. כאן לא סופרים מילים.
המתכון המלא לאפליקציית אקספו
// store.config.js — EAS Metadata awaits an async config
const { init, awaitForTranslation, toAppStoreLocale } = require("i18n-keyless-node");
const LANGS = ["en", "fr", "de", "ja", "pt-BR"];
const DESCRIPTION = "Bibi translates your app while you sleep…";
module.exports = async () => {
init({ API_KEY: process.env.I18N_KEYLESS_KEY, languages: { primary: "en", supported: LANGS } });
const info = {};
for (const lang of LANGS) {
info[toAppStoreLocale(lang)] = {
title: await awaitForTranslation("Bibi", lang, { context: "App Store app name, 30 characters max" }),
subtitle: await awaitForTranslation("Keyless i18n", lang, { context: "App Store subtitle, 30 characters max" }),
description: await awaitForTranslation(DESCRIPTION, lang, { context: "App Store description" }),
};
}
return { configVersion: 0, apple: { info } };
};השיחה הזו כותבת קבצי מטא-נתונים של fastlane ל- Google Play. אותיות גדולות הן מנחה: הגדר את הגבול בהקשר ובדוק את האורך לפני שאתה דוחף.
ארגז חול אינטראקטיבי
ראו כיצד i18n-keyless פועל בזמן אמת
פתח פרויקט StackBlitz חי וניתן לעריכה כדי לראות תרגומים נפתרים תוך כדי הקלדה.
למה בניתי את זה
תמיד דחיתי בינאום עד שהלקוח שלי רצה בזה כל כך שאין לי ברירה. אני שונא לקרוא קוד עם מפתחות בינאום בתוכו, ושונא לתחזק קבצי JSON כמו ששונא לראות עד כמה ספקי התרגומים של בינאום יקרים. אז נאלצתי לבנות משלי, וזה פשוט נהדר. כל האפליקציות שלי כעת בינאומיות כברירת מחדל.
Arnaud Ambroselli
מייסד i18n-keyless
שאלות נפוצות
האם אני צריך לנהל קבצי תרגום?
לא. אין קבצי JSON, אין שלב לחילוץ מפתחות ואין תוסף בזמן בנייה. אתה כותב את המשפטים שלך בשפת המקור שלך, ה-SDK שולח אותם ל-API בבקשה הראשונה, ה-API מתרגם אותם באמצעות בינה מלאכותית, וכל בקשה שלאחר מכן ניתנת משירות מטמון. הקוד שלך הוא המקור היחיד לאמת.
מה קורה כאשר אני משנה את הטקסט המקור?
הטקסט המקור הוא המפתח. שינוי שלו ייתן לך מפתח חדש עם תרגום AI חדש. המפתח הישן פשוט מפסיק להיות מבוקש, ולוח המחוונים מנקה אותו לאחר 30 יום ללא שימוש. תיקון שגיאת כתיב זהה: תקן בקוד, פרוס, והטקסט החדש יתורגם בבקשה הראשונה.
כמה זה עולה?
מארח עצמי: לגמרי בחינם, פרויקטים בלתי מוגבלים, ללא מנוי וללא מגבלת שימוש — התקן את תמונת הדוקר, השתמש במפתח ה-AI שלך. אהבת את זה? תן לי טיפ! מארח: מחיר קבוע אחד לפרויקט לחודש, לפי משתמשים פעילים חודשיים — 4 יורו עד 1,000, 9 יורו עד 5,000, 29 יורו עד 50,000, 99 יורו עד 500,000 — מחויב מדי חודש, ניתן לבטל בכל עת. אין תמחור לפי מושב, מילה או מחרוזת בשני המקרים.
האם אוכל לייצא את התרגומים שלי?
כן. ללוח המחוונים יש כפתור "ייצוא JSON" שמאפשר להוריד כל תרגום בפרויקט שלך כקובץ JSON אחד. הייצוא כולל את כל השורות, ולא רק אלו ששימשו ב-30 הימים האחרונים, כך שמדובר בגיבוי מלא. אין נעילה: הנתונים שלך תמיד נגישים בלחיצה אחת.
תחזוק אחד: מה קורה אם הפרויקט נעצר?
ה-SDKים הם תחת רישיון MIT ונשארים זמינים ב-npm, PyPI, RubyGems וברשימות האחרות. השרת הוא ציבורי תחת רישיון Elastic 2.0 והפרוטוקול ביניהם מתועד, כך שכל אחד יכול להריץ אותו, ליצור ממנו פורק (fork) או לכתוב שרת נגדו. התרגומים שלך נשארים בייצוא JSON אחד בכל זמן. אם השירות המארח מפסיק לפעול: האפליקציות המותקנות ממשיכות לספק את התרגומים המטמון שלהן, לקוח חדש חוזר לשפת המקור, וכאשר מכוונים את ה-SDK למופע שלך עם API_URL הכל מוחזר לפעולה. מה שתאבד הוא את התרגום ב-AI של מחרוזות חדשות ב-i18n-keyless.com — לא את הנתונים שלך ולא את האפליקציה שלך.
קרא את התשובה המלאה, עם הקודצפו בדמו
צפו בסרטון הקצר הזה כדי לראות את i18n-keyless בפעולה