如何通过API设置Google Slide演示文稿的语言
问题原因
你直接修改本地获取的presentation对象的Locale属性不会生效,因为该操作仅修改了内存中的对象值,没有将变更同步到Google云端,且Google Slides API本身未提供直接更新演示文稿全局Locale的独立端点。
正确实现步骤
1. 修改演示文稿全局Locale
通过Google Drive API的Files.Update接口修改复制生成的新演示文稿的locale属性即可,示例代码如下:
var driveService = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = GetCredentials(), ApplicationName = ApplicationName }); var newFile = new File { Name = "new presentation", }; // template 对应原始模板演示文稿 var duplicatedFile = driveService.Files.Copy(newFile, template.Id).Execute(); // 新增:调用Drive API更新文件Locale为法语 var updateFileMetadata = new File() { Locale = "fr" }; var updateRequest = driveService.Files.Update(updateFileMetadata, duplicatedFile.Id); updateRequest.Fields = "id, locale"; var updatedFile = updateRequest.Execute(); // 此时查看updatedFile.Locale即可确认全局Locale已修改完成
2. (可选)修改演示文稿内已有文本的拼写检查语言
如果需要让模板内原有文本的拼写检查规则也适配新的语言,还需要通过Slides API的批量更新接口遍历所有文本元素修改语言标识,示例代码如下:
var slideService = new SlidesService(new BaseClientService.Initializer() { HttpClientInitializer = GetCredentials(), ApplicationName = ApplicationName }); var presentation = slideService.Presentations.Get(duplicatedFile.Id).Execute(); var requests = new List<Request>(); // 遍历所有幻灯片 foreach (var slide in presentation.Slides) { // 遍历所有页面元素 foreach (var element in slide.PageElements) { if (element.Shape?.Text != null) { // 遍历所有文本段 foreach (var paragraph in element.Shape.Text.Paragraphs) { foreach (var textRun in paragraph.Elements.Where(e => e.TextRun != null)) { // 构造更新文本语言的请求 requests.Add(new Request() { UpdateTextStyle = new UpdateTextStyleRequest() { ObjectId = element.ObjectId, Style = new TextStyle() { LanguageId = "fr" }, Fields = "languageId" } }); } } } } } // 执行批量更新 if (requests.Any()) { var batchUpdateRequest = new BatchUpdatePresentationRequest() { Requests = requests }; slideService.Presentations.BatchUpdate(batchUpdateRequest, duplicatedFile.Id).Execute(); }
注意事项
- 语言标识需要符合BCP 47规范,比如法语是
fr,意大利语是it,简体中文是zh-CN - 后续新插入的文本会默认继承演示文稿的全局Locale设置,不需要额外修改语言属性
内容的提问来源于stack exchange,提问作者Thomas PIART
相关产品推荐
相关产品推荐

