Prezentáció lokalizációjának automatizálása .NET-ben
Áttekintés
Aspose.Slides for .NET lehetővé teszi, hogy a bizonyos szövegrészekhez igazítási metaadatokat állítson be. Használja az IBasePortionFormat.LanguageId a javítási nyelv azonosításához, a BasePortionFormat.SpellCheck a helyesírás-ellenőrzés engedélyezéséhez vagy letiltásához, valamint a BasePortionFormat.ProofDisabled a szélesebb körű „nem javít” állapot szabályozásához. Mivel ezek a beállítások a rész szintjén kerülnek alkalmazásra, egy bekezdés több nyelvet és különböző ellenőrzési szabályokat tartalmazhat.
Ez a cikk bemutatja, hogyan rendeljünk nyelvet a konkrét szöveghez, hogyan állítsuk be az új szöveg alapértelmezett nyelvét a LoadOptions.DefaultTextLanguage segítségével, hogyan hozzunk létre többnyelvű bekezdéseket, hogyan válasszunk a SpellCheck és a ProofDisabled között, és hogyan őrizzük meg a kívánt beállításokat a Presentation.JoinPortionsWithSameFormatting használatakor. Ezek a tulajdonságok metaadatot tárolnak a prezentációs alkalmazások számára; nem fordítják le a szöveget, nem végeznek szótár alapú helyesírás-ellenőrzést, és nem adnak vissza hibás szavakat.
Állítsa be a javítási nyelvet a szöveghez
Hozzon létre vagy töltsön be egy Presentation objektumot, érje el a kívánt szövegrészt az IPortion.PortionFormat segítségével, és rendelje hozzá a nyelvazonosítót. Az alábbi példa egy alakzatot hoz létre, brit angolt állít be javítási nyelvként, majd a Presentation.Save segítségével elmenti az eredményt:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 320, 80);
shape.TextFrame.Text = "Set the proofing language for this text.";
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
portion.PortionFormat.LanguageId = "en-GB";
presentation.Save("proofing_language.pptx", SaveFormat.Pptx);
Állítsa be az új szöveg alapértelmezett nyelvét
Használja a LoadOptions.DefaultTextLanguage beállítást, hogy megadja az ellenőrzési nyelvet, amelyet az Aspose.Slides automatikusan hozzárendel az újonnan 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 változtatja meg a már kifejezett nyelvű szöveg metaadatait.
Az alábbi példa egy olyan prezentációt hoz létre, amelyben az új szöveg német helyesírási szabályokat használ:
using Aspose.Slides;
using Aspose.Slides.Export;
var loadOptions = new LoadOptions
{
DefaultTextLanguage = "de-DE"
};
using var presentation = new Presentation(loadOptions);
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 320, 80);
shape.TextFrame.Text = "Willkommen zur Präsentation";
presentation.Save("default_text_language.pptx", SaveFormat.Pptx);
Több nyelv használata egy bekezdésben
Egy IParagraph kollekciót tartalmaz a szövegrészekből. Hozzon létre külön Portion objektumot minden nyelvhez, és állítsa be önállóan a LanguageId-t.
Ez a példa egy bekezdést hoz létre, amely angol és francia részeket tartalmaz:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 420, 80);
var paragraph = shape.TextFrame.Paragraphs[0];
paragraph.Portions.Clear();
var englishPortion = new Portion("Welcome");
englishPortion.PortionFormat.LanguageId = "en-US";
paragraph.Portions.Add(englishPortion);
var frenchPortion = new Portion(" — Bienvenue");
frenchPortion.PortionFormat.LanguageId = "fr-FR";
paragraph.Portions.Add(frenchPortion);
presentation.Save("multilingual_text.pptx", SaveFormat.Pptx);
Egyes részek helyesírás-ellenőrzésének engedélyezése vagy letiltása
Az IPortionFormat örökli a IBasePortionFormat által meghatározott közös szövegtulajdonságokat. Egy rész formátumát az IPortion.PortionFormat segítségével érheti el, és beállíthatja a BasePortionFormat.SpellCheck értékét, hogy meghatározza, a prezentációs alkalmazás ellenőrizheti-e a helyesírást az adott részben. Az alapértelmezett érték false: a true engedélyezi a helyesírás-ellenőrzést, míg a false letiltja azt.
Ez a beállítás az egyes szövegrészekre vonatkozik. Így egy bekezdésen belül különböző részek különböző értékeket használhatnak. A BasePortionFormat.LanguageId és a SpellCheck kiegészítő célokat szolgálnak: a LanguageId az ellenőrzési nyelvet azonosítja, míg a SpellCheck meghatározza, hogy a rész helyesírás-ellenőrzése engedélyezett-e.
A BasePortionFormat.ProofDisabled szintén szabályozza a javítást, de a szélesebb körű „ne javítson” állapotot egy NullableBool formájában jeleníti meg. Használja a SpellCheck-et, ha közvetlen Boolean kapcsolót szeretne kifejezetten a helyesírás-ellenőrzéshez. Használja a ProofDisabled-et, ha a prezentáció „nem javított” 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 konzisztensen; ne kombinálja a SpellCheck = true-t a ProofDisabled = NullableBool.True-val.
Ezek a tulajdonságok a PowerPoint és más prezentációs alkalmazások által használt javítási metaadatokat konfigurálják. Az Aspose.Slides nem használja őket szótár alapú helyesírás-ellenőrzéshez, és nem ad vissza hibás szavak listáját.
Az alábbi teljes példában bemutatjuk, hogyan hozunk létre bemeneti prezentációt, töltsük be, rendeljünk különböző helyesírás-ellenőrzési beállításokat és javítási nyelveket két résznek ugyanabban a bekezdésben, mentsük el az eredményt, nyissuk meg újra, és ellenőrizzük a tárolt értékeket:
using System;
using Aspose.Slides;
using Aspose.Slides.Export;
const string inputFile = "spell_check_input.pptx";
const string outputFile = "spell_check_settings.pptx";
using (var sourcePresentation = new Presentation())
{
var sourceSlide = sourcePresentation.Slides[0];
var sourceShape = sourceSlide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 420, 80);
var sourceParagraph = sourceShape.TextFrame.Paragraphs[0];
sourceParagraph.Portions.Clear();
var sourceEnglishPortion = new Portion("Check this text. ");
sourceEnglishPortion.PortionFormat.LanguageId = "en-US";
sourceParagraph.Portions.Add(sourceEnglishPortion);
var sourceFrenchPortion = new Portion("Ignorer ce code : ZX-81.");
sourceFrenchPortion.PortionFormat.LanguageId = "fr-FR";
sourceParagraph.Portions.Add(sourceFrenchPortion);
sourcePresentation.Save(inputFile, SaveFormat.Pptx);
}
using (var presentation = new Presentation(inputFile))
{
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
var portions = shape.TextFrame.Paragraphs[0].Portions;
var checkedPortion = portions[0];
checkedPortion.PortionFormat.LanguageId = "en-US";
checkedPortion.PortionFormat.SpellCheck = true;
var suppressedPortion = portions[1];
suppressedPortion.PortionFormat.LanguageId = "fr-FR";
suppressedPortion.PortionFormat.SpellCheck = false;
presentation.Save(outputFile, SaveFormat.Pptx);
}
using var reopenedPresentation = new Presentation(outputFile);
var reopenedShape = (IAutoShape)reopenedPresentation.Slides[0].Shapes[0];
var storedPortions = reopenedShape.TextFrame.Paragraphs[0].Portions;
var firstPortionStored = storedPortions.Count == 2 &&
storedPortions[0].PortionFormat.LanguageId == "en-US" &&
storedPortions[0].PortionFormat.SpellCheck;
var secondPortionStored = storedPortions.Count == 2 &&
storedPortions[1].PortionFormat.LanguageId == "fr-FR" &&
!storedPortions[1].PortionFormat.SpellCheck;
if (firstPortionStored && secondPortionStored)
{
Console.WriteLine("The proofing settings were stored correctly.");
}
else
{
Console.WriteLine("The proofing settings could not be verified.");
}
A Presentation.JoinPortionsWithSameFormatting összevonja az egymás melletti, azonos formázású részeket. Az SpellCheck különbözősége önmagában nem tartja szét ezeket a részeket; az egyesítés után a keletkező rész megtartja az első rész 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-et a beállítások hozzárendelése előtt, vagy ellenőrizze a keletkező rész határait, és utólag állítsa be újra a beállításokat. A különböző LanguageId értékű részek külön maradnak, mivel a javítási nyelv formázása eltér.
GYIK
A nyelvazonosító lefordítja a szöveget?
Nem. Az IBasePortionFormat.LanguageId metaadatot tárol a helyesírási és nyelvtani ellenőrzéshez; nem módosítja a szövegtartalmat. A szöveget külön kell lefordítani, majd állítsa be a megfelelő nyelvazonosítót minden lefordított részhez.
A javítási nyelv befolyásolja a betűtípusokat, elválasztást vagy sortörést?
Nem. A nyelvazonosító csak a javításhoz szolgál. A szöveg megjelenítése és elrendezése elsősorban a rendelkezésre álló fonts, az írásrendszer, és a szövegkeret beállítások függvénye. A megbízható megjelenítéshez biztosítsa a szükséges betűtípusokat, konfigurálja a font substitution, vagy embed fonts a prezentációba.
Használhat egy bekezdés több javítási nyelvet?
Igen. Rendelje minden nyelvet egy külön részhez, ahogyan a többnyelvű bekezdés példában is látható.
Használjam a DefaultTextLanguage-t vagy a LanguageId-t?
Használja a LoadOptions.DefaultTextLanguage beállítást, ha alapértelmezett nyelvet szeretne az újonnan létrehozott szöveghez. Használja az IBasePortionFormat.LanguageId beállítást, ha egy adott résznek kifejezett javítási nyelvre van szüksége, vagy ha egy bekezdés több nyelvet tartalmaz.