質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

864閲覧

【jquery】追加するテキストを翻訳する方法

marimon

総合スコア32

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2019/06/04 14:56

編集2019/06/04 14:58

jqueryで要素を.prepend()などするとき、その中にテキストがあるとします。
これを翻訳するとき、何かよい方法はありませんか?

わたしはいま下記のように.prepend()しています。

jqeury

1var guide = getLanguage()['guide']; 2$('p').prepend(guide); 3 4// <p>この項目は必須です</p> となる

上のgetLanguage()ですが、下記の感じです。下記のような翻訳専用の関数を作って、上のように.prepend()しているのですが、これって普通の方法ですか?

jquery

1function getLanguage(){ 2 let textarea, 3 guide; 4 5 if( getBrowserLanguage()=='ja' ){ 6 textarea = "住所を入力してください"; 7 guide = "この項目は必須です" 8 } 9 else{ 10 textarea = "Enter your address"; 11 guide = "This field is required" 12 } 13 return { 14 'textarea': textarea, 15 'guide': guide 16 }; 17}

自分で考えた方法で、これでいいのかなって不安に思いました。

たとえばPHPでは翻訳専用のファイルを作っておくなどの方法があるように、もっとよい方法や普通の方法があったら教えて頂ければと思いました。

よろしくお願い致します。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

別にそうやってもいいですけどいつか限界が来ます。それに加えて、半端ない量を書かなくてはいけません。それでもよければどうぞ...
もしも、楽して正しく(?)翻訳したいのであれば、Google大先生のAPIを使ってください。
Google大先生のAPIは他の回答者がURLを貼っていらっしゃるのでそちらを参照にすれば良いかと

投稿2019/06/04 21:50

編集2019/06/04 21:52
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

textarea = "住所を入力してください";
guide = "この項目は必須です"


textarea = "Enter your address";
guide = "This field is required"

htmlとjsのみでの言語対応はやった事無いので、普通かどうかについての回答は出来ませんが、
自分ならこれらの各言語の文章を切り出してjsonファイルにまとめてサーバーに置いといて読み込んで使いますね。(直接js内に吐き出してもいいけど)
まとめ方はページ(url)ごとにjsonを分けるとか似たようなページごとにjsonを分けるとか色々あるでしょうが、そこはその時々の作りに合わせて設計ですね。

サンプルjson

{"jp":{"textarea":"jpjpjpjpjp","guide":"guideguide"},"en":{"textarea":"Enter your address","guide":"This field is required"}} とか {"textarea":{"jp":"jpjpjpjp","en":"enenenenen"},"guide":{"jp":"jpguide","en":"enguide"}}

投稿2019/06/04 17:21

hentaiman

総合スコア6415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marimon

2019/06/05 10:18

jsonにまとめておくのはよさそうですね。どうもありがとうございます。
guest

0

ベストアンサー

私なら、そもそも自分で翻訳定義はしないですが 笑
(どっかこっかの翻訳サイトがAPI提供してると思うので、それ使います)

自分で翻訳情報を定義するとしたら、下記の感じでしょうか。

javascript

1const translationList = {}; 2const jp = [ 3 ['林檎', 'りんご', 'リンゴ'], 4 ['住所'], 5 ['名前', 'なまえ'] 6]; 7const en = ['apple', 'address', 'name']; 8 9jp.forEach((val, index)=>{ 10 val.forEach((valIn)=>{ 11 translationList[valIn] = en[index]; 12 }); 13}); 14 15console.log(translationList['リンゴ']); // 出力:apple

ですが、上記って、あくまで単語なんで(しかもなまらてきとうに書いてます)、文章を翻訳するってんなら、英語に堪能であることと、
英語の文法をしっかり出力できるロジックか、
AIに学習させるとかしないと、正確なものはでないと思います。
そんなん自分でやってられんので、外部のAPIを使うわけです。

投稿2019/06/04 15:47

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2019/06/04 16:01 編集

ちなみに、私の回答のやり方だと、単語増えると、バカスカ メモリ食うので、まったくお勧めできません。 100語くらいなら、なんとでもなりますが、1万語とかだと、とんでもないことになります。 やっぱり、翻訳サイトとかのAPIを利用されることをお勧めします。 (それでも100%正確なものは出ないと思いますが)
marimon

2019/06/05 10:26

自分でやるとしたらそちらの書き方でも良さそうに思いましたが、やはりAPIがおすすめですか。なまらありがとうございます。APIですと「すでに表示されているテキストを翻訳する」ような翻訳かと思ったのですが、「翻訳されたテキストが挿入される」ような場合でも使えるでしょうか?GoogleのAPIを読むと、「翻訳ボタン」をクリックしたときにすでに表示されているテキストを翻訳するという機能に思えたので。
miyabi_takatsuk

2019/06/05 10:41

手で作るととんでもない時間と労力必要になりますからね・・・。 API使う方が絶対いいと思いますよ。 http://unokun.hatenablog.jp/entry/2015/08/08/103841 こちら(だいぶ記事古いですが・・・)をご覧いただければわかるとおり、ポスト送信した際にJSONで返してもらうって方法は必ずあるはずなので、Google Translation APIのサイト内をくまなく探してみてはいかがでしょうか。 また、Google Translation APIでなくても、他にもちょいちょい、APIを提供しているものも存在するようです。 https://developer.ntt.com/ja/blog/668e33c7-f1b1-4910-978e-d6cd55c976a0
marimon

2019/06/05 10:51

ありがとうございます。今GoogleAPI挑戦しようとしたら、有効化のために課金が必要らしく断念しましたw他のをちょいちょい見てみます。
miyabi_takatsuk

2019/06/05 10:57

まぁ、正直なところ、高いですよね・・・ 汗 その分、高性能・多機能なうえ保証もされてるでしょうけどね。 時間と気力があり、ロジック組んでいく自信がおありなら、 自分で作ってもいいかとは思いますけどねw ただし、とにかく時間は間違いなく膨大にかかりますね。 どうか頑張ってください。
marimon

2019/06/05 11:20

今回はちょこちょこっとやっていきます。ありがとうございます(◍•ᗜ•́)✧
guest

0

普通ではないです。
普通はGoogle Translation APIを使用します。
https://cloud.google.com/translate/?hl=ja
イメージ説明

これって普通の方法ですか?

投稿2019/06/04 21:17

yasutomi

総合スコア2937

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasutomi

2019/06/05 00:32

低評価を押されている方はGoogle Translation APIを使用するよりも 良い方法をご存知だと思われますので、ぜひコメント投稿で教えていただきたいです。 まさかとは思いますが、ただのGoogle翻訳と勘違いして 低評価を押したわけではありませんよね?
miyabi_takatsuk

2019/06/05 00:37

ぶっちゃけ、API使うのが一番ですよね。 自分で定義するのは、練習にはいいかもしれないですが 汗 単語の検索、あいまい検索など、 英文の文法までしっかり算出するロジックとかかなり練習になりそうです。
marimon

2019/06/05 10:17

ありがとうございます。そちらは「翻訳ボタン」をクリックしたら翻訳されるようなものでしょうか? たとえばホバーしたときにHTMLとテキストがJSから呼び出される場合、そのテキストを翻訳するというわけにはいきませんよね?
miyabi_takatsuk

2019/06/05 10:26 編集

横槍失礼します。 yasutomiさんが掲示していただいているURLのページを上から下まで一通りご覧ください。 ページ冒頭のボックスはあくまで"デモ"ですので、 おそらくですが、APIの使い方、JSの組み方によっては、ホバーでも全然いけると思います。 APIとはなんなのか?はご存知でしょうか??
marimon

2019/06/05 10:37 編集

miyabi_takatsukさんありがとうございます。じっくり読んでみます。YouTubeのAPIだけ使ったことがある程度です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問