Prezentációi lokalizáció automatizálása JavaScriptben

Áttekintés

Az Aspose.Slides for Node.js via Java lehetővé teszi, hogy egyes szövegrészekhez helyesírási metaadatokat konfiguráljon. Használja a BasePortionFormat.setLanguageId metódust a helyesírási nyelv azonosításához, a BasePortionFormat.setSpellCheck metódust a helyesírás-ellenőrzés engedélyezéséhez vagy letiltásához, valamint a BasePortionFormat.setProofDisabled metódust a szélesebb körű „ne ellenőrizze” állapot vezérléséhez. Mivel ezek a beállítások a részlet szintjén kerülnek alkalmazásra, egy bekezdés több nyelvet és különböző helyesírási szabályokat tartalmazhat.

Ez a cikk bemutatja, hogyan rendeljen nyelvet egy adott szöveghez, hogyan állítsa be az új szöveg alapértelmezett nyelvét a LoadOptions.setDefaultTextLanguage metódussal, hogyan hozzon létre többnyelvű bekezdéseket, hogyan válasszon a SpellCheck és a ProofDisabled között, valamint hogyan őrizze meg a kívánt beállításokat a Presentation.joinPortionsWithSameFormatting használata közben. Ezek a tulajdonságok a prezentációs alkalmazások számára tárolnak metaadatokat; nem fordítanak szöveget, nem hajtanak végre szótári alapú helyesírás-ellenőrzést, és nem adnak vissza helytelenül írt szavakat.

A helyesírási nyelv beállítása a szöveghez

Hozzon létre vagy töltön be egy Presentation objektumot, érje el a kívánt szövegrészt a Portion.getPortionFormat metódussal, és állítsa be a nyelvi azonosítót. Az alábbi példa egy alakzatot hoz létre, brit angolt állít be helyesírási nyelvként, majd az eredményt a Presentation.save segítségével menti:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation();
try {
    const slide = presentation.getSlides().get_Item(0);
    const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 320, 80);
    shape.getTextFrame().setText("Set the proofing language for this text.");

    const portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
    portion.getPortionFormat().setLanguageId("en-GB");

    presentation.save("proofing_language.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Az alapértelmezett nyelv beállítása az új szöveghez

Használja a LoadOptions.setDefaultTextLanguage metódust annak meghatározásához, hogy az Aspose.Slides milyen helyesírási nyelvet adjon az újból létrehozott szöveghez. Ez a beállítás akkor hasznos, ha a prezentációban a legtöbb vagy az összes új szöveg ugyanazt a nyelvet használja. Nem módosítja azoknak a szövegeknek a nyelvi metaadatait, amelyek már rendelkeznek kifejezett nyelvvel.

Az alábbi példa egy prezentációt hoz létre, amelyben az új szöveg német helyesírási szabályokat használ:

const aspose = { slides: require("aspose.slides.via.java") };

const loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDefaultTextLanguage("de-DE");

const presentation = new aspose.slides.Presentation(loadOptions);
try {
    const slide = presentation.getSlides().get_Item(0);
    const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 320, 80);
    shape.getTextFrame().setText("Willkommen zur Präsentation");

    presentation.save("default_text_language.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Több nyelv használata egy bekezdésen belül

Egy Paragraph a szövegrészek gyűjteménye. Hozzon létre minden nyelvhez külön Portion elemet, és állítsa be annak LanguageId tulajdonságát önállóan.

Ez a példa egy bekezdést hoz létre, amelyben angol és francia részek szerepelnek:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation();
try {
    const slide = presentation.getSlides().get_Item(0);
    const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 80);
    const paragraph = shape.getTextFrame().getParagraphs().get_Item(0);
    paragraph.getPortions().clear();

    const englishPortion = new aspose.slides.Portion("Welcome");
    englishPortion.getPortionFormat().setLanguageId("en-US");
    paragraph.getPortions().add(englishPortion);

    const frenchPortion = new aspose.slides.Portion(" — Bienvenue");
    frenchPortion.getPortionFormat().setLanguageId("fr-FR");
    paragraph.getPortions().add(frenchPortion);

    presentation.save("multilingual_text.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Egyes részek helyesírás-ellenőrzésének engedélyezése vagy letiltása

A PortionFormat örökli a BasePortionFormat által meghatározott közös szövegtulajdonságokat. Egy részlet formátumához a Portion.getPortionFormat segítségével férhet hozzá, majd a BasePortionFormat.setSpellCheck metódussal szabályozhatja, hogy a prezentációs alkalmazás ellenőrizze-e a helyesírást az adott részleten. Az alapértelmezett érték false: a true engedélyezi a helyesírás-ellenőrzést, míg a false letiltja azt.

A beállítás egyedi szövegrészekre vonatkozik. Így ugyanabban a bekezdésben különböző részek eltérő értéket kaphatnak. A BasePortionFormat.setLanguageId és a setSpellCheck kiegészítő célokra szolgálnak: a setLanguageId határozza meg a helyesírási nyelvet, míg a setSpellCheck azt, hogy a részlet helyesírása ellenőrizhető‑e.

A BasePortionFormat.setProofDisabled szintén a helyesírást szabályozza, de egy szélesebb körű „ne ellenőrizze” állapotot reprezentál egy NullableBool értékkel. Használja a setSpellCheck‑et, ha egy közvetlen Boolean kapcsolóra van szüksége kifejezetten a helyesírás-ellenőrzéshez. Használja a setProofDisabled‑et, ha a prezentáció „nem ellenőrzött” metaadatait szeretné megőrizni vagy kifejezetten szabályozni, beleértve a NotDefined állapotot is. Ha mindkét tulajdonságot beállítja, tartsa értékeiket egységesen; ne kombinálja a setSpellCheck(true)‑t a setProofDisabled(NullableBool.True)‑val.

Ezek a tulajdonságok a PowerPoint és más prezentációs alkalmazások által használt helyesírási metaadatokat konfigurálják. Az Aspose.Slides nem használja őket szótári alapú helyesírás-ellenőrzésre, sem nem ad vissza hibás szavak listáját.

Az alábbi teljes példa bemutat egy bemeneti prezentáció létrehozását, annak betöltését, különböző helyesírás-ellenőrzési beállítások és helyesírási nyelvek hozzárendelését két részlethez ugyanabban a bekezdésben, az eredmény mentését, újranyitását, valamint a tárolt értékek ellenőrzését:

const aspose = { slides: require("aspose.slides.via.java") };

const inputFile = "spell_check_input.pptx";
const outputFile = "spell_check_settings.pptx";

const sourcePresentation = new aspose.slides.Presentation();
try {
    const sourceSlide = sourcePresentation.getSlides().get_Item(0);
    const sourceShape = sourceSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 80);
    const sourceParagraph = sourceShape.getTextFrame().getParagraphs().get_Item(0);
    sourceParagraph.getPortions().clear();

    const sourceEnglishPortion = new aspose.slides.Portion("Check this text. ");
    sourceEnglishPortion.getPortionFormat().setLanguageId("en-US");
    sourceParagraph.getPortions().add(sourceEnglishPortion);

    const sourceFrenchPortion = new aspose.slides.Portion("Ignorer ce code : ZX-81.");
    sourceFrenchPortion.getPortionFormat().setLanguageId("fr-FR");
    sourceParagraph.getPortions().add(sourceFrenchPortion);

    sourcePresentation.save(inputFile, aspose.slides.SaveFormat.Pptx);
} finally {
    sourcePresentation.dispose();
}

const presentation = new aspose.slides.Presentation(inputFile);
try {
    const shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
    const portions = shape.getTextFrame().getParagraphs().get_Item(0).getPortions();

    const checkedPortion = portions.get_Item(0);
    checkedPortion.getPortionFormat().setLanguageId("en-US");
    checkedPortion.getPortionFormat().setSpellCheck(true);

    const suppressedPortion = portions.get_Item(1);
    suppressedPortion.getPortionFormat().setLanguageId("fr-FR");
    suppressedPortion.getPortionFormat().setSpellCheck(false);

    presentation.save(outputFile, aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

const reopenedPresentation = new aspose.slides.Presentation(outputFile);
try {
    const reopenedShape = reopenedPresentation.getSlides().get_Item(0).getShapes().get_Item(0);
    const storedPortions = reopenedShape.getTextFrame().getParagraphs().get_Item(0).getPortions();

    const firstPortionStored = storedPortions.getCount() === 2 && 
        storedPortions.get_Item(0).getPortionFormat().getLanguageId() === "en-US" && 
        storedPortions.get_Item(0).getPortionFormat().getSpellCheck();

    const secondPortionStored = storedPortions.getCount() === 2 && 
        storedPortions.get_Item(1).getPortionFormat().getLanguageId() === "fr-FR" && 
        !storedPortions.get_Item(1).getPortionFormat().getSpellCheck();

    if (firstPortionStored && secondPortionStored) {
        console.log("The proofing settings were stored correctly.");
    } else {
        console.log("The proofing settings could not be verified.");
    }
} finally {
    reopenedPresentation.dispose();
}

A Presentation.joinPortionsWithSameFormatting összevonja a szomszédos részeket, ha azok formázása megegyezik. A SpellCheck értékének eltérése önmagában nem tartja szét ezeket a részeket; az összevonás után az eredményrészlet megtartja az első részlet SpellCheck értékét. Ha a részeknek különböző helyesírás-ellenőrzési beállításokra van szükségük, hívja meg a joinPortionsWithSameFormatting‑t a beállítások hozzárendelése előtt, vagy vizsgálja meg az eredményrészlet határait, és alkalmazza a beállításokat később. A különböző LanguageId értékű részek a formázásukban lévő helyesírási nyelv különbsége miatt továbbra is külön maradnak.

GYIK

A nyelvi azonosító lefordítja a szöveget?

Nem. A BasePortionFormat.setLanguageId a helyesírási és nyelvtani metaadatokat tárolja; nem módosítja a szövegtartalmat. A szöveget külön le kell fordítania, majd minden lefordított részlethez a megfelelő nyelvi azonosítót kell beállítania.

A helyesírási nyelv szabályozza a betűtípusokat, elválasztást vagy sortörést?

Nem. A nyelvi azonosító a helyesírásra vonatkozik. A szöveg megjelenítése és elrendezése elsősorban a rendelkezésre álló fonts, a írásrendszer és a szövegkeret beállításaitól függ. A megbízható megjelenítéshez biztosítsa a szükséges betűtípusokat, konfigurálja a font substitution beállítását, vagy ágyazza be a fonts a prezentációba.

Egy bekezdés használhat több helyesírási nyelvet?

Igen. Minden nyelvet rendelje egy külön részlethez, ahogyan a többnyelvű bekezdés példában látható.

Használjam a setDefaultTextLanguage‑t vagy a setLanguageId‑t?

Használja a LoadOptions.setDefaultTextLanguage‑t, ha az újonnan létrehozott szövegekhez alapértelmezett nyelvet szeretne meghatározni. Használja a BasePortionFormat.setLanguageId‑t, ha egy konkrét részletnek explicit helyesírási nyelvre van szüksége, vagy ha egy bekezdésben több nyelvet használ.