1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Apps ScriptAdvent Calendar 2023

Day 16

小学校に段々と増えてきた外国人のおともだちと親御さんに渡すプリントをGASで翻訳する。

Last updated at Posted at 2023-12-15

学校のプリントってさ、全然外国人の子どもにやさしくないよね

てなわけで、昨年に引き続きPTAで「こんなんできるから外国人家庭向けに外国語翻訳したプリント配ろうよ」って提案したけど誰も反応しなかったのでここで成仏させよう・・。

function onOpen() {
const ui = SlidesApp.getUi();
ui.createMenu('マルチ翻訳')
.addItem('日本語→英語', 'jaToEn')
.addItem('英語→日本語', 'enToJa')
.addItem('日本語→ドイツ語', 'jaToDe')
.addItem('ドイツ語→日本語', 'deToJa')
.addItem('日本語→スペイン語', 'jaToEs')
.addItem('スペイン語→日本語', 'esToJa')
.addToUi();
}

function jaToEn(){
  multitranslate("ja","en")
}

function enToJa(){
  multitranslate("en","ja")
}

function jaToDe(){
  multitranslate("ja","de")
}

function deToJa(){
  multitranslate("de","ja")
}

function jaToEs(){
  multitranslate("ja","es")
}

function esToJa(){
  multitranslate("es","ja")
}



function multitranslate(ori,tar){

  const slide = SlidesApp.getActivePresentation();
  const kekka = slide.getSlides().map(x => x.getShapes().map(y => translate(y.getText().asString(),ori,tar)))
  slide.getSlides().map(x => x.getShapes().map(y => translate(y.getText().asString(),ori,tar)))
  for(let i=0;i<kekka.length;i++){
    for(let j=0;j<kekka[i].length;j++){
      slide.getSlides()[i].getShapes()[j].getText().setText(kekka[i][j])
    }}}
  
 function translate(txt,source,target){
    return LanguageApp.translate(txt,source,target)}

日本語
image.png

スペイン語
image.png

英語
image.png

あんまり大量にやると呼び出し上限食らうからほどほどに。
Google翻訳の対象言語は全部カバーしています。

でわ!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?