MDN翻訳での不具合: ライブサンプルに指定した見出しのid属性だけが書き換えられる

18 views
Skip to first unread message

sutara79

unread,
Aug 20, 2018, 6:37:26 PM8/20/18
to Mozilla 翻訳グループ
はじめまして、sutara79 と申します。

以前はこんな不具合はなかったのですが、
ここ数日になって起こるようになりました。

不具合の詳細は Qiita に書いています
簡単に説明しますと、
ライブサンプルに指定した見出しに限って、そのid属性がテキストコンテンツの内容で書き換えられてしまうのです。
このグループでも、同じ不具合が過去に報告されていました。

返答は、「その挙動は仕様です。また、ライブサンプルに未来はないので修正しません」でした。

よって現状の対応策としては、
ライブサンプルに指定する見出しだけは、あらかじめ id属性とテキストコンテンツとマクロの指定を同じにしておく
というだと思います。

<!-- 原文原文 -->
<h2 id="Syntax">Syntax</h2> <!-- 他の見出し -->
<h2 id="Examples">Examples</h2> <!-- ライブサンプルに指定する見出し -->
{{EmbedLiveSample("Examples")}}


<!-- 日本語訳 -->
<h2 id="Syntax">構文</h2> <!-- こちらのidには触らない -->
<h2 id="例"></h2>
{{EmbedLiveSample("例")}

JP Uemmra3

unread,
Aug 21, 2018, 8:09:23 PM8/21/18
to Mozilla 翻訳グループ
Uemmra3です。

 まったく詳しく見てないのですが、
 対処療法として

<h2 id="Examples">Examples</h2>
 を
<h2 id="Examples" name="Examples">Examples</h2>
 のように、テキスト翻訳前にname属性をつける方法では
 うまくいかないでしょうか?
 (UserScriptでやってくれるはず)

 テキストを翻訳すると勝手にid名も変わってしまうのは前からあったと思うのですが、
 そのへんの挙動が最近ライブサンプルだけに復活したのなら、謎ですね。。

ではでは

2018年8月21日火曜日 7時37分26秒 UTC+9 sutara79:

sutara79

unread,
Aug 22, 2018, 5:47:28 AM8/22/18
to Mozilla 翻訳グループ
今日改めて試してみたところ、Uemmra3さんの指摘どおり、
name属性も存在する場合は書き換えが発生しませんでした。

ユーザースクリプトはずっと愛用しています。
今日気がついたのは、
ユーザースクリプトの「Translation Helper」をクリックした時、
ライブサンプルに指定した見出しに限って、
name属性が追加される場合とされない場合があるということです。
そして、name属性が追加されなかった場合、id属性が書き換わります。

今日、「border-right-width」で試してみました。
1回目の編集で「Translation Helper」をクリックした時、
name属性が追加されませんでした。
それをあえて見逃して「公開」したところ、id属性が書き換わりました。
2回目の編集でid属性を手動で英語に戻し、 name="Example" も追加したところ、
id属性が書き換わることはなく、正常にライブサンプルが表示されました。

よって、最初の投稿を訂正します。
現状の対応策は、name属性を追加することです。

<!-- 原文 -->

<h2 id="Examples">Examples</h2>

<!-- 日本語訳 -->
<h2 id="Examples" name="Examples"></h2> <!-- 必ずname属性を追加する -->

GitHubのWikiはこれから私が修正します。

ただ...、不思議な事が一つ。
1回目と2回目の差分を表示したところ、
1回目の「公開」後、ページのソースコードをブラウザで表示して、
たしかに id="例" に書き換わったのを確認したのに、
履歴では id="Example" のままなのです。

差分のための記録をとる処理が、
内部でid属性を書き換える前のタイミングで行われているだけ、
なのかもしれませんが。

unarist

unread,
Aug 22, 2018, 6:14:00 AM8/22/18
to mozilla-tra...@googlegroups.com
ユーザースクリプトの当該処理を実装したunaristです。

> ライブサンプルに指定した見出しに限って、
> name属性が追加される場合とされない場合があるということです。

これバグですね。次の開始タグまでにスペースがない場合、
その間の文字列を「id以外の属性」として扱ってコピーしてしまうようです。
Example以外には見出しが連続することもないので気づかなかったのでしょうね。

後で直しておきます……。

> たしかに id="例" に書き換わったのを確認したのに、
> 履歴では id="Example" のままなのです。

EmbedLiveSampleなどのマクロも訪問者が目にするHTMLでは展開されていますが、
編集する際や履歴ではマクロのままですよね。
idの書き換えも同じようなタイミングで変換されていると思います。
2018年8月22日(水) 18:47 sutara79 <toum...@gmail.com>:
> --
> このメールは Google グループのグループ「Mozilla 翻訳グループ」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには mozilla-translati...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

unarist

unread,
Aug 23, 2018, 10:40:01 AM8/23/18
to mozilla-tra...@googlegroups.com
unaristです。

sutara79さんにご指摘頂いた件を昨夜修正したのですが、逆にバグを仕込んでしまったようです。

UserScriptは先程修正を行いましたが、もし今日翻訳された記事があれば
id=...がundefinedid=...に変更されてしまっていないか一度確認をお願いします。

大変失礼致しました……。

2018年8月22日(水) 19:13 unarist <m.un...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages