PTC

תרגמו אפליקציות Java בעזרת בינה מלאכותית

PTC (Private Translation Cloud) מתרגמת קובצי .properties של Java ואת שאר סטאק ה־Java שלכם ל־40+ שפות בעזרת בינה מלאכותית, מתחברת ל־Maven או ל־Gradle, ובעלת הסמכת ISO 27001 לשימוש ארגוני. סקירה חזותית של התרגום מאמתת את האפליקציה הרצה בכל שפה, כך שאתם משחררים ללא QA ידני בכל גרסה.

Spring Boot, Quarkus, Micronaut, Jakarta EE, JavaFX, legacy Swing - PTC תומכת בכל תבנית i18n נפוצה של Java. PTC מכסה שליפות מ־ResourceBundle, חבילות הודעות (message bundles), מחרוזות FXML, ואת אינטגרציית כלי ה־build שאתם כבר משתמשים בה.

צוותי בנקאות, ביטוח, בריאות ותקשורת שמשחררים אפליקציות Java לשווקים מפוקחים משתמשים ב־PTC משום שתהליך העבודה משתלב בצינור ה־build שלהם, והסמכת ISO 27001 עונה על שאלת התאימות עוד לפני שהרכש שואל.

התחילו תקופת ניסיון של 30 יום - תרגמו את אפליקציית ה־Java שלכם עכשיו

  • 20,000 מילים ל־2 שפות
  • 40+ שפות נתמכות
  • סקירה חזותית של התרגום של אפליקציית ה־Java הרצה כלולה
  • הסמכת ISO 27001 - אבטחה ארגונית ותאימות יורדות מהרשימה שלכם
  • אין צורך בכרטיס אשראי

התחל תקופת ניסיון

תרגמו את פרויקט ה־Java שלכם ב־3 שלבים

  1. התחילו פרויקט בלוח הבקרה שלכם ב־PTC. בחרו את שפת המקור שלכם. PTC משתמשת בשפת המקור כדי לבחור את מנוע התרגום הנכון ולדלג על מחרוזות שאינן דורשות תרגום (שמות מותג, כתובות URL, מזהים שאינם ניתנים לתרגום).
  2. העלו את קובצי ה־.properties שלכם או חברו את מאגר ה־Git שלכם. PTC מנתחת כל ResourceBundle ומחלצת רק את הערכים הניתנים לתרגום. היא מחזירה תרגומים כ־messages_xx.properties שתואמים למוסכמת השמות ש־Java מצפה לה. ספירת המילים מוצגת לפני שאתם מנצלים מכסה כלשהי מתקופת הניסיון.
  3. בחרו שפות יעד ואשרו. PTC מתרגמת ברקע. עבור צוותי Maven ו־Gradle, ה־bundles המתורגמים מגיעים כ־merge request למאגר שלכם.

תקופת הניסיון מכסה 20,000 מילים ל־2 שפות ללא כרטיס אשראי. זה מספיק כדי לתרגם סט ResourceBundle משמעותי מקצה לקצה לפני שאתם מפעילים Pay-As-You-Go.

מה מייחד את PTC בתרגום Java

כל סעיף להלן מקשר לחלק המפורט בהמשך העמוד.

PTC לומדת את אוצר המילים וטון המותג של המוצר שלכם

PTC מנתחת את קובצי ה־.properties של המקור שלכם בעת ההעלאה. היא מייצרת אוטומטית תיאור מוצר ומשתמשת בתיאור זה כדי לתרגם עם הטון והטרמינולוגיה הנכונים.

אם אפליקציית הבנקאות שלכם קוראת לרשומה "Statement" ולא "Transaction Summary", PTC שומרת על ההבחנה הזו בכל שפת יעד. אותו תיאור נשמר לכל שחרור של אותו פרויקט. אתם יכולים לסקור ולערוך את התיאור שנוצר אוטומטית לפני הרצת התרגום.

רוב כלי הבינה המלאכותית הגנריים רואים מפתח כמו error.user_locked ומתרגמים את הערך מבלי לדעת אם המשתמש הוא אדם או בעל חשבון. PTC לומדת קודם את אוצר המילים של תחום התוכן שלכם. 99.5% מהתרגומים עולים לאוויר ללא עריכות.

סקירה חזותית של התרגום של אפליקציית ה־Java הרצה שלכם - שחררו ללא QA ידני לכל שפה

קובץ .properties מתורגם הוא הכרחי אך לא מספיק. התווית המתורגמת עלולה לגרום להצפה בכפתור בעל רוחב קבוע באפליקציית שולחן עבודה של JavaFX. הודעת שגיאה בגרמנית עשויה להיקרא כשם עצם כאשר תהליך העבודה דרש פועל. מחרוזת אנגלית hardcoded מחוץ ל־ResourceBundle.getString() תוצג על המסך ללא תרגום, ללא קשר למספר השפות שאתם משחררים.

ה־AI Visual QA של PTC מכסה את שני הסוגים הנפוצים של אפליקציות Java:

  • תוסף דפדפן לאפליקציות רשת של Spring Boot, אפליקציות רשת של Jakarta EE, וכל backend של Java שמגיש HTML. התקינו פעם אחת, הקליטו מעבר על מסכי האפליקציה שלכם בסביבת staging. PTC מריצה מחדש את ההקלטה לאחר כל עדכון תרגום.
  • העלאת צילומי מסך עבור JavaFX, Swing, או כל אפליקציית Java שאינה מבוססת דפדפן. העלו צילום מסך אחד לכל שפה לכל מסך. ה־AI החזותי של PTC בודק את התוצאה המרונדרת באותו אופן.

תקלות ש־PTC יכולה לתקן בקובץ ה־.properties (חוסר התאמה בין פועל לשם עצם, הצפת תוכן בפריסה, חוסר התאמה בצורות רבים) מתוקנות אוטומטית. תקלות שנמצאות בקוד ה־Java שלכם (מעטפות ResourceBundle.getString() חסרות, ערכים ליטרליים hardcoded, שרשור משפטים שאמור להשתמש ב־MessageFormat) חוזרות כפרומפטים מוכנים להדבקה עבור Cursor או Claude Code.

אתם לא משחררים קובץ .properties מתורגם ומקווים לטוב. אתם משחררים אפליקציית Java רב־לשונית ומאומתת.

הסמכת ISO 27001 לשימוש ארגוני

PTC מטפלת בנתונים שלכם ואת נתוני המשתמשים שלכם בהתאם לתקני אבטחה המוכרים בינלאומית. עבור צוותי בנקאות, ביטוח, בריאות ותקשורת, ההסמכה עונה על שאלת התאימות עוד לפני שהרכש שואל אותה.

מחרוזות המקור שלכם מכילות לעתים קרובות שמות מוצרים, טרמינולוגיה הפונה ללקוח, ודוגמאות אקראיות הכוללות נתוני לקוחות. ISO 27001 מעיד על כך ש־PTC מטפלת בכל בייט מזה באמצעות בקרות מתועדות: רישום גישה, הצפנה בתעבורה ובמנוחה, הערכות ספקים, ותגובה לאירועים. צוות סקירת האבטחה שלכם רואה את התעודה; הוא מאשר; אתם משחררים.

אינטגרציה עם Maven, Gradle ו־Spring Boot

עבור פרויקטי Maven, הגדירו שלב תרגום ב־build שלכם:

source_locale: en
files:
  - file: src/main/resources/messages.properties
    output: src/main/resources/messages_{{lang}}.properties
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <executions>
    <execution>
      <id>ptc-translate</id>
      <phase>prepare-package</phase>
      <goals><goal>exec</goal></goals>
      <configuration>
        <executable>./ptc-cli.sh</executable>
        <arguments>
          <argument>--config-file</argument><argument>.ptc-config.yml</argument>
          <argument>--api-token=${env.PTC_API_TOKEN}</argument>
        </arguments>
      </configuration>
    </execution>
  </executions>
</plugin>

עבור Gradle, אותו תהליך רץ מתוך build.gradle.kts:

tasks.register<Exec>("ptcTranslate") {
  commandLine(
    "./ptc-cli.sh",
    "--config-file", ".ptc-config.yml",
    "--api-token=${System.getenv("PTC_API_TOKEN")}"
  )
}

tasks.named("processResources") {
  dependsOn("ptcTranslate")
}

עבור Spring Boot, הפנו את MessageSource אל ה־bundles המתורגמים ו־Spring טוען אותם אוטומטית על סמך Accept-Language:

@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource();
    source.setBasename("classpath:i18n/messages");
    source.setDefaultEncoding("UTF-8");
    return source;
}

PTC מסנכרנת מחרוזות חדשות, מתרגמת רק את מה שהשתנה, ופותחת merge request עם ה־bundles המעודכנים. ראו את תיעוד ה־API של PTC עבור תהליך ה־webhook וה־REST המלא.

שימור של ResourceBundle, צורות רבים ופורמטים

PTC תומכת בכל מוסכמת i18n של Java מהקופסה:

  • תחביר .properties. הערות, צמדי key = value, המשכי שורות, ורצפי escape של Unicode (\u00FC) נשמרים כולם.
  • מצייני מיקום של ChoiceFormat ו־MessageFormat. תבניות {0}, {0,number}, {1,date,short} נשמרות במיקום הנכון עבור כל שפת יעד.
  • צורות רבים דרך ICU4J. PTC מייצרת את קטגוריות הרבים הנכונות לכל שפה (פולנית: one/few/many/other; יפנית: other בלבד; ערבית: שש צורות).
  • מוסכמת הארגומנטים הממוספרים של Spring. {0}, {1} עבור קריאות MessageSource.getMessage(code, args, locale).
  • שפות מימין לשמאל. ערבית, עברית, פרסית ואורדו מתורגמות כראוי. ה־rtl.css ועבודת הפריסה הדו־כיוונית שלכם נכנסים לאחר מכן לפעולה.

תרגמו הערות גרסה, קובצי README, וטקסטים אחרים מחוץ לקובצי המשאבים שלכם

הערות גרסה של Java, קובץ ה־README במאגר ה־Maven הפנימי שלכם או ב־GitHub, אימיילים הפונים ללקוח שנשלחים מהאפליקציה שלכם, תיעוד תמיכה - כולם נמצאים מחוץ ל־.properties. תכונת Paste to Translate של PTC מטפלת בכל אחד מהם. הדביקו את טקסט המקור בלוח הבקרה של PTC, בחרו את שפות היעד שלכם, וקבלו חזרה תרגומים שמשתמשים באותו מילון מונחים וטון מותג כמו המחרוזות בתוך האפליקציה שלכם. עקביות ממסך האפליקציה ועד לאימייל השחרור ולמאמר התמיכה.

תרגמו תוכן דינמי ותוכן שנוצר על ידי משתמשים בעזרת ה־API של PTC

אפליקציות Java ארגוניות מתמודדות לעתים קרובות עם תוכן שנוצר על ידי משתמשים ודורש תרגום עם הגעתו: פניות תמיכה, ערכי מאגר מידע, דפי ויקי פנימיים, ביקורות מוצר שנשלחו על ידי לקוחות, צ'אט רב־לשוני. ה־REST API של PTC מתרגם את התוכן הזה לפי דרישה:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://app.ptc.wpml.org/api/v1/content_translation"))
    .header("Authorization", "Bearer " + apiKey)
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(
        "{\"data\": {\"ticket\": \"" + ticketText + "\"}, \"name\": \"Support ticket\", \"target_languages\": [\"es\", \"de\"]}"
    ))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
// Poll GET /api/v1/content_translation/{id}/status until completeness == 100,
// then GET /api/v1/content_translation/{id} to retrieve the translated fields.

אימות מבוסס טוקן (Bearer), בקשות/תשובות JSON, ואותו אימון של מילון מונחים וטון מותג שבהם משתמשים קובצי ה־.properties שלכם. ראו את תיעוד ה־API של PTC לקטלוג ה־endpoints המלא, מגבלות קצב, ומוסכמות קודי שפה.

הפכו את התרגום ממאגר ה־Git שלכם לאוטומטי

PTC מבצעת אינטגרציה עם GitHub, GitLab ו־Bitbucket. מחרוזות חדשות ב־messages.properties שלכם מפעילות הרצת תרגום אוטומטית. ה־bundles המתורגמים שמתקבלים חוזרים כ־merge request. סקרו ומזגו כחלק מתהליך סקירת הקוד הרגיל שלכם.

תמחור: תקופת ניסיון של 30 יום, ולאחר מכן Pay-As-You-Go

תקופת הניסיון מכסה 20,000 מילים ל־2 שפות ללא כרטיס אשראי. כאשר תקופת הניסיון מסתיימת, PTC מציעה Pay-As-You-Go. ללא מנוי. ללא התחייבות למינימום. 500 המילים הראשונות בכל חודש הן בחינם, ואתם משלמים רק על השאר. בעמוד התמחור יש מחשבון עלויות. עבור רכש ארגוני שדורש חוזה שנתי, הירשמו עם אימייל חברה לקבלת תקופת ניסיון עסקית מורחבת.

מוכנים לשחרר אפליקציית Java מאומתת?

העלו את קובצי ה־.properties שלכם. PTC מתרגמת אותם ל־40+ שפות וסוקרת חזותית את אפליקציית ה־Java הרצה בכל אחת מהן. ISO 27001 דואג לתאימות. אתם משחררים בביטחון.

התחל תקופת ניסיון של 30 יום - 20,000 מילים על חשבוננו, ללא צורך בכרטיס אשראי.

למדריך המלא שלב־אחר־שלב לבינאום אפליקציית Java, ראו את מדריך הבינאום של Java. לסיפור הרחב יותר של לוקליזציה ב־CI/CD, ראו לוקליזציית תוכנה מבוססת בינה מלאכותית שנבנתה עבור צינורות CI/CD.