Wikibooks
jawikibooks
https://ja.wikibooks.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
MediaWiki 1.44.0-wmf.1
first-letter
メディア
特別
トーク
利用者
利用者・トーク
Wikibooks
Wikibooks・トーク
ファイル
ファイル・トーク
MediaWiki
MediaWiki・トーク
テンプレート
テンプレート・トーク
ヘルプ
ヘルプ・トーク
カテゴリ
カテゴリ・トーク
Transwiki
Transwiki‐ノート
TimedText
TimedText talk
モジュール
モジュール・トーク
物理学
0
1936
263024
262712
2024-11-04T12:39:49Z
ざっとの編集所
57725
/* 一般教養課目 */ 未執筆部があったので、物理数学の進捗を75%にしました
263024
wikitext
text/x-wiki
{{Pathnav|メインページ|自然科学|frame=1|small=1}}
{| style="float:right"
|-
|{{Wikipedia|物理学|物理学}}
|-
|{{Wikiversity|School:物理学|物理学}}
|-
|{{Wikiquote|Category:物理学者|物理学者}}
|-
|{{Wiktionary|Category:物理学|物理学}}
|-
|{{Commons|Category:Physics}}
|-
|{{蔵書一覧}}
|-
|{{進捗状況}}
|}
[[w:物理学|物理学]]に関する文書・資料・教科書が収められる書庫です。収録内容は以下をご覧ください。
== 初等教育用教科書 ==
* [[小学校理科]] {{進捗|25%|2015-03-13}}
* [[中学校理科]] {{進捗|25%|2015-03-13}}
* [[高等学校物理]] {{進捗|75%|2024-05-10}}
* [[大学受験物理]] {{進捗|00%|2015-03-13}}
=== 付録 ===
* [[初等物理学公式集]] {{進捗|25%|2015-03-13}}
== 一般教科書 ==
=== 一般教養課目 ===
* [[物理数学I]] {{進捗|75%|2023-11-05}}
* [[古典力学]] {{進捗|50%|2023-11-05}}
* [[電磁気学]] {{進捗|50%|2023-11-05}}
* [[熱力学]] {{進捗|25%|2023-11-05}}
* [[振動と波動]] {{進捗|50%|2023-11-05}}
* [[特殊相対論]] {{進捗|100%|2024-8-8}}
* [[量子力学]] {{進捗|50%|2023-11-05}}
**[[相対論的量子力学]]
**[[場の量子論]]{{進捗|75%|2023-11-05}}
=== 専門科目 ===
* [[解析力学]] {{進捗|25%|2015-03-13}}
* [[電磁気学II]] {{進捗|25%|2015-03-13}}
* [[量子力学II]]
* [[物理数学II]]
* [[統計力学I]]
* [[統計力学II]]
**[[量子統計力学]]
**[[非平衡統計力学]]
*[[天体力学]]
*[[光学]]
*[[一般相対性理論]]
* [[音響学]]{{進捗|25%|2023-11-05}}
* [[/流体力学/]]{{進捗|00%|2023-11-05}}
* [[/連続体の力学/]]{{進捗|00%|2023-11-05}}
<!--
*[[原子物理学]]
**[[分子物理学]]
**[[高分子物理学]]
* [[物性物理学]]
**[[固体物理学]]
**[[磁性物理学]]
**[[金属物理学]]
**[[半導体物理学]]
**[[低温物理学]]
**[[表面物理学]]
**[[非線形物理学]]
* [[プラズマ物理学]]
**[[電磁流体力学]]
-->
=== 大学院科目===
* [[場の量子論]]
* [[一般相対性理論]]
* [[超対称性]]
<!--:[http://arxiv.org/abs/hep-ph/9709356 レビュー論文:Supersymmetry Primerへのリンク]-->
* [[弦理論]]
<!--:[http://arxiv.org/abs/hep-th/9709062 レビュー論文:Introduction to Superstring Theoryへのリンク]-->
* [[物理学のための計算機とオープンソース]]
=== 未分類 ===
* [[光の偏極]]
* [[デコヒーレンスの本]]
=== 関連分野 ===
*[[数学]]
**[[数値解析]]
*[[天文学]]
*[[化学]]
*[[生物学]]
*[[工学]]
*[[地球科学]]
*[[医学]]
*[[哲学]]
*[[心理学]]
*[[経済学]]
== カテゴリツリー ==
{{#カテゴリツリー:物理学}}
{{NDC|420|*}}
[[Category:自然科学|ふつりかく]]
[[Category:物理学|! ふつりかく]]
[[Category:物理学教育|! ふつりかく]]
[[Category:書庫|ふつりかく]]
kj4cvirt4rrl6ithmvpal3epnruxu7z
電磁気学
0
1979
263036
258872
2024-11-04T16:46:54Z
Nermer314
62933
263036
wikitext
text/x-wiki
{{半保護S}}
{{Pathnav|メインページ|自然科学|物理学|frame=1|small=1}}
{{Wikiversity|Topic:電磁気学|電磁気学|}}
[[ファイル:Michael_Faraday_sitting_crop.jpg|サムネイル|Michael Faraday]]
本項は物理学 電磁気学 (Electromagnetism) の解説である。
ここでは電気・磁気が関連する現象を扱う。歴史的には電場と磁場による相互作用は早くから知られており、現代の技術の多くはこれらの力によっている。また、それだけではなく、世の中に存在する力のうちのほとんどは電磁気力で書かれることが知られている。これは、電磁気力が他の相互作用と比べて、巨視的に見た場合に相対的に強い力によるものであるからである。例外的に、天体と天体の間の相互作用は重力によって記述されるが、これは星が全体として電気的に中性であり、他の天体と比較的小さい電磁的な相互作用しか持たないことによる。
ここでは、特に電磁気による力のうちの初等的な記述法を見て行く。この部分は、化学、生物、電気などあらゆる分野に応用があるため、理系分野に進む全ての学生がよく習熟しておかねばならない。
また、この分野は高等教育の[[高等学校_物理#電気と磁気|電気と磁気]]に当たる。初学者は該当教科書が理解の助けとなるため学習に行き詰まったら参照をお願いしたい。
[[物質の電磁気学]]までは、ベクトル解析を用いた電磁気学を扱う。
[[特殊相対論#電磁気学|四元形式の電磁気学]]では、特殊相対論を前提としてテンソルを使って電磁気学を記述する。物理学科に進む学生は、これを学ぶことになる。
== 目次 ==
# [[電磁気学/静電場|静電場]]{{進捗|75%|2023-11-05}}
## [[電磁気学/静電場#電荷の間に働く力|電荷の間に働く力]]
## [[電磁気学/静電場#電界|電界]]
## [[電磁気学/静電場#電位|電位]]
## [[電磁気学/静電場#誘電体|誘電体]]
# [[電磁気学/静磁場|静磁場]]{{進捗|75%|2023-11-05}}
## [[電磁気学/静磁場#磁気的な力の導入|磁気的な力の導入]]
## [[電磁気学/静磁場#磁界|磁界]]
## [[電磁気学/静磁場#ビオ-サバールの法則|ビオ-サバールの法則]]
# [[電磁気学/電磁誘導|電磁誘導]]{{進捗|25%|2023-11-05}}
# [[電磁気学/マクスウェルの方程式|マクスウェルの方程式]]
# [[電磁気学/電磁波の式の導出|電磁波の式の導出]]{{進捗|100%|2023-11-05}}
# [[物質の電磁気学]]
# [[特殊相対論#電磁気学|四元形式の電磁気学]]
{{DEFAULTSORT:てんしきかく}}
[[Category:電磁気学|*]]
{{NDC|427}}
cxwjag0xl3xgtsvxa9r6gqet3x90jb6
C++
0
2733
263096
250110
2024-11-05T04:26:45Z
Ef3
694
/* 附録 */ * [[/型安全|型安全]] * [[/メモリ安全|メモリ安全]] * [[/NULL安全|NULL安全]]
263096
wikitext
text/x-wiki
{{半保護S}}
* [[情報技術]] > [[プログラミング]] > C++
* [[大学の学習]] > C++
本書は、C++プログラミング言語の初心者から中級・上級者までを対象にした、段階的な学習ガイドです。C++は強力で柔軟な言語であり、システムプログラミングからゲーム開発、科学技術計算まで幅広い分野で活用されています。しかし、その豊富な機能と複雑な構文から、学び始める際には戸惑うことも少なくありません。
本書の前半では、初心者がC++の基礎を理解し、実際にコードを書く力を身につけることを目指しています。基本的な文法やデータ型、制御構造、関数といった基礎的なトピックを、具体的な例とともにわかりやすく解説します。また、オブジェクト指向プログラミングや標準ライブラリの使い方についても丁寧に説明し、実践的なスキルを養います。
後半では、中級・上級者向けに、C++特有の高度な概念や最新の技術について詳しく解説します。クラスの継承や関数オーバーロード、スマートポインタ、ラムダ式、テンプレート、例外処理など、より複雑なトピックを扱い、実践的なアプリケーションの開発に必要な知識を提供します。
さらに、附録には、C++の歴史や開発環境の整備、他の言語からの移行ガイド、機能テストマクロ、参考文献など、実務に役立つ情報を豊富に盛り込みました。特に、C++03からC++23への移行に関する手引きは、最新の標準に対応したプログラムを書く上で非常に有用です。
C++は、しっかりとした基礎を築き、継続的に学び続けることで、その真価を発揮する言語です。本書が、皆様のC++学習の道しるべとなり、実際のプロジェクトに役立つ知識とスキルを提供できることを願っております。
== 初心者むけの内容 ==
; 目次
* [[/構文の基礎|構文の基礎]]
* [[/データ型と変数|データ型と変数]]
** [[/データ型と変数#基本データ型|基本データ型]] -- [[/データ型と変数#整数型|整数型]]・[[/データ型と変数#浮動小数点数型|浮動小数点数型]]・[[/データ型と変数#文字型|文字型]]・[[/データ型と変数#ブール型|ブール型]]
** [[/データ型と変数#複合データ型|複合データ型]] -- [[/データ型と変数#配列|配列]]・[[/データ型と変数#構造体 (struct)|構造体 (struct)]]・[[/データ型と変数#共用体 (union)|共用体 (union)]]・[[/データ型と変数#列挙型 (enum)|列挙型 (enum)]]・[[/データ型と変数#タプル (tuple)|タプル (tuple)]]・[[/データ型と変数#スマートポインタ (smart pointer)|スマートポインタ (smart pointer)]]
* [[/式と演算子|式と演算子]]
* [[/制御構造|制御構造]]
* [[/関数|関数]]
* [[/スコープ|スコープ]]
* [[/配列とベクトル|配列とベクトル]]
* [[/ポインターと参照|ポインターと参照]]
* [[/文字列とstd::string|文字列とstd::string]]
* [[/構造体|構造体]]
* [[/共用体|共用体]]
* [[/列挙型と列挙クラス|列挙型と列挙クラス]]
* [[/オブジェクト指向プログラミング|オブジェクト指向プログラミング]]
== リファレンス ==
* [[/キーワード|C++のキーワード一覧]]
* [[/標準ライブラリ|標準ライブラリ]]
* [[/Boost|Boost]]
* [[/パッケージマネージャ|パッケージマネージャ]]
== 中級〜上級者むけの内容 ==
; 目次
* [[/C++特有の概念|C++特有の概念]]
* [[/クラスの定義や継承|クラスの定義や継承]]
* [[/アクセス指定子|アクセス指定子]]
* [[/特殊メンバー関数|特殊メンバー関数]]
* [[/純粋仮想関数|純粋仮想関数]]
* [[/override|override]] <sup>(C++11:core)</sup> ⇒ [[/キーワード#override]]
* [[/final|final]] <sup>(C++11:core)</sup> ⇒ [[/キーワード#final]]
* [[/RAII|RAII(Resource Acquisition Is Initialization)]]
* [[/テンプレート|テンプレートの基礎]]
* [[/関数オーバーロード|関数オーバーロード]]
* [[/演算子オーバーロード|演算子オーバーロード]]
* [[/名前修飾|名前修飾]]
* [[/コンパイル時評価|コンパイル時評価]]
* [[/インライン関数|インライン関数]]
* [[/constexpr|constexpr]]<sup>(C++11:core)</sup> ⇒ [[/キーワード#constexpr]]
* [[/consteval|consteval]]<sup>(C++20:core)</sup> ⇒ [[/キーワード#consteval]]
* [[/アトリビュート|アトリビュート]]
* [[/アライメント|アライメント]]
* [[/不変性|不変性]]
* [[/ムーブセマンティクス|ムーブセマンティクス]]
* [[/スマートポインタ|スマートポインタ]]
* [[/型推論|型推論]]
* [[/RTTI|RTTI: Run-Time Type Information]] typeid
* [[/コンテナ|コンテナ]]
* [[/範囲ベースfor|範囲ベースfor]]
* [[/トレイト|トレイト]]
* [[/コンセプト|コンセプト]]
* [[/decltype|decltype]] ⇒ [[/キーワード#decltype]]
* [[/using|using]] ⇒ [[/キーワード#using]]
* [[/ラムダ式|ラムダ式]]
* [[/ジェネリックラムダ|ジェネリックラムダ]]
* [[/ムーブキャプチャ|ムーブキャプチャ]]
* [[/フォールディング式|フォールディング式]]
* [[/nullptr|nullptr]] ⇒ [[/キーワード#nullptr]]
* [[/Uniform initialization|Uniform initialization]] <sup>(C++17:core)</sup>
* [[/構造化束縛宣言|構造化束縛宣言]] <sup>(C++17:core)</sup>
* [[/テンプレートメタプログラミング|テンプレートメタプログラミング]]
* [[/SFINAE|SFINAE: Substitution Failure Is Not An Error]] -- テンプレートの置換中に失敗が発生した場合に、エラーを生成せずに代替処理を行う。
* [[/例外処理|例外処理]]
* [[/名前空間|名前空間]]
* [[/三方比較演算子|三方比較演算子]] <code><=></code><sup>(C++20:core)</sup>
* [[/コルーチン|コルーチン]] <code><=></code><sup>(C++20:core)</sup>
* [[/標準テンプレートライブラリ|標準テンプレートライブラリ(STL; Standard Template Library)]]
== 附録 ==
* [[/C++の変遷|C++の変遷]]
* [[/C++開発環境の整備|C++開発環境の整備]]
* [[/CからC++への移行|CからC++への移行]]
* [[/JavaやC Sharpなどの中間コード型言語からC++への移行|JavaやC Sharpなどの中間コード型言語からC++への移行]]
* [[/C++03(JIS C++)からC++23への移行の手引|C++03(JIS C++)からC++23への移行の手引]]
* [[/型安全|型安全]]
* [[/メモリ安全|メモリ安全]]
* [[/NULL安全|NULL安全]]
* [[/機能テストマクロ|機能テストマクロ]]
* [[/コードギャラリー|コードギャラリー]]
== 参考文献 ==
* {{cite book
| url=https://open-std.org/jtc1/sc22/wg21/docs/standards
| title= C++ - Standards
| publisher=ISO/IEC
| date = 2024-01-17}}
* {{cite book
| url=https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4950.pdf
| title= Working Draft, Standard for Programming Language C++
| publisher=ISO/IEC
| date = 2023-05-10
}}
== 関連書籍 ==
* [[More C++ Idioms]] -- C++11以前の内容なので、現在はコア言語および標準ライブラリがよりロバストなイディオムを提供しています。
== 外部リンク ==
{{Wikipedia|C++}}
{{Wikiversity|Topic:C++|C++}}
<hr style="clear: both">
== 脚註 ==
<references />
[[Category:C++|*]]
[[カテゴリ:プログラミング言語]]
{{NDC|007.64}}
mjtpbkqpcjv52pog6loklg27f920td9
ガリア戦記
0
3514
263032
262807
2024-11-04T15:29:33Z
Linguae
449
/* 各巻対訳 */
263032
wikitext
text/x-wiki
__notoc__
<!--【2006年4月23日起稿】-->
*[[古典ラテン語]]>'''ガリア戦記'''
*[[ラテン文学]]>'''ガリア戦記'''
{{NDC|992|かりあせんき}}
<div style="font-family:Arial Black;font-style:normal;font-size:17pt;color:#990033;text-align:center;background-color:#fee;">C · IVLII · CAESARIS · COMMENTARII · DE · BELLO · GALLICO</div>
[[画像:Commentarii_de_Bello_Gallico.jpg|thumb|right|240px|1783年刊行の『ガリア戦記』と『内乱記』]]
[[画像:Siege-alesia-vercingetorix-jules-cesar.jpg|thumb|right|280px|カエサル(右)と対面するウェルキンゲトリクス(左)<br>(リオネル=ノエル・ロワイエ [[w:fr:Lionel Royer|(fr)]] 画、1899年)]]
[[w:古代ローマ|古代ローマ]]の政治家・武将・著述家である[[w:ガイウス・ユリウス・カエサル|ガイウス・ユリウス・カエサル4世]]([[w:la:Gaius_Iulius_Caesar|Gaius Iulius Caesar IV]])が[[w:ガリア戦争|ガリア戦争]]([[w:la:Bellum_Gallicum|Bellum Gallicum]])の経過を[[w:古典ラテン語|古典ラテン語]]で著述した[[w:ラテン文学|ラテン文学]]の古典的名著『ガリア戦記』([[wikt:la:Commentarii_de_bello_Gallico|Commentarii de bello Gallico]])の[[ラテン語]]・[[日本語]]対訳。第8巻のみ[[w:アウルス・ヒルティウス|アウルス・ヒルティウス]]([[w:la:Aulus_Hirtius|Aulus Hirtius]])による著作。
刊行当時の書名は、『ガイウス・ユリウス・カエサルの業績(戦績)に関する覚え書』(C. Iulii Caesaris Commentarii Rerum Gestarum)であったと推定され、『'''[[内乱記]]'''』と併せたものであった。
ルネサンス期以降は『ガイウス・ユリウス・カエサルのガリア戦争および内戦に関する覚え書』(C. Iulii Caesaris Commentarii de Bello Gallico et Civili)と題して刊行されていた(右の画像)。
<div style="background-color:#dfd;"> 『ガリア戦記』は、ガリア戦争の当事者であるカエサルが、簡潔明晰かつ客観的に描写することにより自らの戦争の正当性を示し<ref name="ガリア戦記">[https://kotobank.jp/word/%E3%82%AC%E3%83%AA%E3%82%A2%E6%88%A6%E8%A8%98-47339 ガリア戦記(がりあせんき)とは? 意味や使い方 - コトバンク]</ref>、自らに対する種々の非難に対する弁明を意図したものである<ref name="ガリア戦記"/>。簡潔雄渾な名文として名高く<ref name="ガリア戦記"/>、第一級の歴史書であるとともにラテン文学の傑作とされている<ref name="ガリア戦記"/>。</div>
<br><br>
<div style="border:solid #999 1px;background:#F8F8F8;max-width:60%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
『ガリア戦記』冒頭部分の英語圏の人による朗読を聴いてみよう。
Gallia est omnis<!--omnes--> dīvīsa in partēs trēs; quārum ūnam incolunt Belgae, aliam Aquītānī, tertiam quī<!--qui--> ipsōrum linguā Celtae, nostrā Gallī appellantur. Hī omnēs linguā, īnstitūtīs, lēgibus inter sē differunt. Gallōs ab Aquītānīs Garumna flūmen, ā Belgīs Mātrona et Sēquana dīvidit.
::::: [[File:La-cls-de-bello-gallico.ogg]]
::::::([[w:Vorbis|Ogg Vorbis]] 音声ファイル、<strong>長さ 54秒</strong>、155 kbps)
</div>
<br>
== 各巻対訳 ==
*[[ガリア戦記 第1巻]](54節){{進捗|25%|2009-07-28}}<u>(作成途上)</u>:[[w:ヘルウェティイ族|ヘルウェティイー族]]との戦役。[[w:アリオウィストゥス|アリオウィストゥス]]との戦役。
*[[ガリア戦記 第2巻]](35節){{進捗|75%|2022-04-25}}:[[w:ベルガエ人|ベルガエ人]]同盟軍との戦役、大西洋岸の征服。
*[[ガリア戦記 第3巻]](29節){{進捗|75%|2022-10-31}}:アルプスの戦い、[[w:アレモリカ|大西洋岸]]および[[w:アクィタニア|アクィータニア]]の平定。 <!--【2007年4月30日から】-->
*[[ガリア戦記 第4巻]](38節){{進捗|75%|2023-07-24}}:[[w:ゲルマニア|ゲルマーニア]]人との戦役。[[w:ブリタンニア|ブリタンニア]]への初めての遠征。
*[[ガリア戦記 第5巻]](58節){{進捗|75%|2024-09-23}}:ブリタンニアへの再遠征。[[w:エブロネス族|エブローネース族]]ら諸部族の蜂起。
*[[ガリア戦記 第6巻]](44節){{進捗|50%|2024-11-04}}:ガッリアと[[w:ゲルマニア|ゲルマーニア]]の社会と風習。エブローネース族らの平定。
*[[ガリア戦記 第7巻]](90節){{進捗|50%|2011-04-16}}:[[w:ウェルキンゲトリクス|ウェルキンゲトリクス]]らが率いるガッリア同盟軍との戦役。
*ガリア戦記 第8巻(55節):<u>(掲載未定)</u>
== 注解編と用例集 ==
;注解編
*<span style="background-color:#ffd;">[[/注解編]] {{進捗|25%|2024-09-23}}</span> <small>(2020年3月27日から)</small>
**<span style="background-color:#ffd;">[[/注解編/写本と校訂版|/写本と校訂版]] {{進捗|25%|2024-09-23}}</span><!-- 2020-04-17 --> <small>(2020年4月17日から)</small>
*各巻の注解
**<span style="background-color:#ffd;">[[ガリア戦記 第1巻/注解|/第1巻注解]] {{進捗|25%|2020-06-01}}</span> <small>(2020年3月27日から)</small>
**<span style="background-color:#ffd;">[[ガリア戦記 第2巻/注解|/第2巻注解]] {{進捗|25%|2022-05-05}}</span> <small>(2021年8月26日から)</small>
**<span style="background-color:#ffd;">[[ガリア戦記 第3巻/注解|/第3巻注解]] {{進捗|25%|2022-10-27}}</span> <small>(2022年3月27日から)</small>
**<span style="background-color:#ffd;">[[ガリア戦記 第4巻/注解|/第4巻注解]] {{進捗|25%|2023-07-10}}</span> <small>(2022年10月20日から)</small>
**<span style="background-color:#ffd;">[[ガリア戦記 第5巻/注解|/第5巻注解]] {{進捗|25%|2024-09-23}}</span> <small>(2023年07月20日から)</small>
**<span style="background-color:#ffd;">[[ガリア戦記 第6巻/注解|/第6巻注解]] {{進捗|00%|2024-10-30}}</span> <small>(2024年09月09日から)</small>
;用例集
*<span style="background-colo:#ffd;">[[/用例集]] {{進捗|00%|2020-03-29}}</span><!-- 2020-03-29 -->
;ガリア語
*<span style="background-colo:#ffd;">[[/ガリア語の名前]] {{進捗|00%|2021-12-11}}</span><!-- 2021-09-25 -->
== 付録1 ==
{{Wikipedia|ガリア戦記|ガリア戦記}}
{{Wiktionary|la:Commentarii_de_bello_Gallico|ガリア戦記}}
{{Commons|Category:Gallic_War|ガリア戦争}}
<!--
*[[/あらすじ]]:各巻のあらすじ
-->
*[[/内容目次]]:巻・章・節の内容を記した目次 {{進捗|75%|2011-04-02}}
*[[/参照画像一覧]]:本文で参照した画像一覧 {{進捗|75%|2023-11-05}}
*[[/ガリアの河川]]:本書で言及される河川 {{進捗|00%|2023-01-07}}<!--【2021年11月22日より】-->
*[[/関連年表]]
*[[/対訳語彙集 (羅和)]] - [[/対訳語彙集 (羅英)]]
**[[/人物一覧 (羅和)]]
**[[/部族一覧 (羅和)]]
**[[/地名一覧 (羅和)]] {{進捗|25%|2010-04-07}}
== 付録2 ==
*<span style="background-color:#ffa;">'''[[古代ローマの不定時法]]''' {{進捗|50%|2020-08-24}}</span> <!-- 2016-12-31 -->
*<span style="background-color:#ffb;">[[ガイウス・ユリウス・カエサルの著作/ラテン語の紀年法|/ラテン語の紀年法]] {{進捗|75%|2009-01-12}}</span>
*<span style="background-color:#ffb;">[[ガイウス・ユリウス・カエサルの著作/古代ローマの攻城兵器|/古代ローマの攻城兵器]] {{進捗|00%|2019-08-06}}</span>
*<span style="background-color:#ffffcc;">[[ガイウス・ユリウス・カエサルの著作/古代ローマの軍旗類|/古代ローマの軍旗類]] {{進捗|00%|2022-01-22}}</span><!--【2022年1月22日より】-->
*[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位|/通貨・計量単位]] {{進捗|25%|2020-12-27}}</span>
== 原文出典 ==
{{Wikisource|la:Commentarii de bello Gallico|ガリア戦記}}
{{進捗状況}}
*ラテン語版ウィキソース:[[s:la:Commentarii_de_bello_Gallico|Commentarii de bello Gallico]](ただし、校訂本の出典記載なし! しかも誤植が多いので注意! α系写本の影響が強いと思われる。)
:以下の校訂本を参照しながら、できるだけα系写本の影響を尊重しつつ、原文を修整した。
*トイプナー古典叢書(<small>[[w:la:Bibliotheca_scriptorum_Graecorum_et_Romanorum_Teubneriana|Bibliotheca scriptorum Graecorum et Romanorum Teubneriana]]</small>)
**C. Iulii Caesaris Commentarii Rerum Gestarum, edidit [[w:de:Otto_Seel|Otto Seel]], vol.I. Bellum Gallicum, [[w:la:Lipsia|Lipsiae]], Teubner, 1961.
*:(オットー・ゼール(1907-1975)編。現代の代表的な校訂本。β系写本の影響がやや強い。絶版。)
**C. Iulii Caesaris Commentarii Rerum Gestarum, edidit [[w:de:Wolfgang_Hering|Wolfgang Hering]], vol.I. Bellum Gallicum, Lipsiae, Teubner, 1987.
*: ISBN 978-3-322-00351-5 (ISBN 3-322-00351-5)
*:(ヴォルフガング・ヘーリンク編。最近の校訂本。写本の異同などの情報量、文の完成度はゼール版より劣ると思われる。)
== 参考文献 ==
*ラテン語・英語対訳
**CAESAR: The Gallic War (with an English translation), by H. J. Edwards, [[w:en:Loeb_Classical_Library|Loeb Classical Library]](#72), [[w:en:Harvard_University_Press|Harvard University Press]], ISBN 979-0-674-99080-7
**:(1917年の初版以来、[[w:ローブ・クラシカルライブラリー|ローブ古典叢書]]の一冊として刊行され続けている読み物としての普及版)
*ラテン語・日本語対訳
**『カエサル『ガリア戦記』第I巻』遠山一郎 訳注、大学書林、2009年、ISBN 978-4-475-02446-4
*日本語訳
**『ガリア戦記』 カエサル著、近山金次訳、岩波文庫(岩波書店)、1964年、ISBN 978-4-00-334071-4
**『ガリア戦記』 カエサル著、國原吉之助訳、講談社学術文庫、1994年、ISBN 978-4-06-159127-1
*英語訳
**CAESAR: The Gallic War (A new English translation) by Carolyn Hammond, [[w:en:Oxford World's Classics|Oxford World's Classics(OWC)]], [[w:en:Oxford University Press|Oxford University Press]], First published 1996 ; Reissued 2008、ISBN 978-0-19-954026-6(近年の新訳)
*注釈書
**Gould, H.E. & J.L. Whiteley. C. Iuli Caesaris Commentariorum De Bello Gallico. Liber Quartus. (London: Macmillan & Co Ltd., 1968).;初級者向けの英文注釈がある。
**Caesar: De Bello Gallico V, Edited by R.C.Carrington (再版Bristol Classical Press, 1984), ISBN 0-86292-136-8
etc.
== 関連項目 ==
*<span style="background-color:#ffea;">[[古典ラテン語]] {{進捗|00%|2018-04-18}} </span><!-- 2018-04-18 --> <small>(2018年4月18日から)</small>
*<span style="background-color:#ffe;">[[羅馬史略]] {{進捗|00%|2022-08-18}}</span><!-- 2022-08-18 --> <small>(2022年8月18日から)</small>
== 関連記事 ==
*英語版ウィキソース:[[s:en:Commentaries_on_the_Gallic_War|Commentaries on the Gallic War]](英語訳)
*フランス語版ウィキソース:[[s:fr:La_Guerre_des_Gaules|La Guerre des Gaules]](仏語訳)
:
*ラテン語版ウィクショナリー:[[wikt:la:Commentarii_de_bello_Gallico|wikt:la:Commentarii de bello Gallico]]
== 脚注 ==
<references />
== 外部リンク ==
*[http://www.forumromanum.org/literature/caesar/gallic.html Commentaries on the Gallic War]("corpus scriptorum latinorum" ラテン文学のデジタルライブラリー;英仏訳と地図付)
*[http://www.debellogallico.org/index.cgi/bgtext Commentarii de Bello Gallico](ガリア戦記の日本語対訳サイト)
*[http://itunes.apple.com/jp/podcast/classics-texts-caesar-de-bello/id183722640 Classics Texts :: Caesar, De Bello Gallico 2 (Study Speed)](『[[ガリア戦記 第2巻]]』の各節を[[w:ITunes|iTunes]]向けに読み上げた音声ファイルのダウンロードサイト)
=== Latein.me ===
*[https://www.latein.me/ Latein-Wörterbuch - Latein.me] (ラテン語-ドイツ語オンラインリソース)
**[https://www.latein.me/text/3/Caesar Caesar - Übersetzungen] (カエサルの著作)
***[https://www.latein.me/text/3/Caesar/33/De+Bello+Gallico+%28I%29/p/0 De Bello Gallico (I)] (第1巻)
***[https://www.latein.me/text/3/Caesar/34/De+Bello+Gallico+%28II%29/p/0 De Bello Gallico (II)] (第2巻)
***[https://www.latein.me/text/3/Caesar/35/De+Bello+Gallico+%28III%29/p/0 De Bello Gallico (III)] (第3巻)
***[https://www.latein.me/text/3/Caesar/36/De+Bello+Gallico+%28IV%29/p/0 De Bello Gallico (IV)] (第4巻)
***[https://www.latein.me/text/3/Caesar/37/De+Bello+Gallico+%28V%29/p/0 De Bello Gallico (V)] (第5巻)
***[https://www.latein.me/text/3/Caesar/38/De+Bello+Gallico+%28VI%29/p/0 De Bello Gallico (VI)] (第6巻)
***[https://www.latein.me/text/3/Caesar/39/De+Bello+Gallico+%28VII%29/p/0 De Bello Gallico (VII)] (第7巻)
***[https://www.latein.me/text/3/Caesar/40/De+Bello+Gallico+%28VIII%29/p/0 De Bello Gallico (VIII)] (第8巻)
[[Category:ガリア戦記|*]]
[[Category:ラテン語|かりあせんき]]
[[Category:古典ラテン文学|かりあせんき]]
[[Category:ガイウス・ユリウス・カエサルの著作|かりあせんき]]
q1e8phftgojqfevtlv65pp05t8zgyyl
千葉大対策
0
6561
263023
263020
2024-11-04T12:27:56Z
Ayhxuknbsijceivzdjhswh
66317
/* 前期日程 */
263023
wikitext
text/x-wiki
{{wikipedia|千葉大学}}
*[[日本の大学受験ガイド]] > [[千葉大対策]]
本項は、[[w:千葉大学|千葉大学]]の入学試験対策に関する事項である。
千葉大学は千葉県千葉市に拠点を置く総合大学である。東京高等工芸学校、千葉高等園芸学校を前身としているという背景から理系色の強い大学である。その他にも国立大学では唯一の法政経学部・園芸学部・看護学部・国際教養学部を有するユニークな学部・学科を多数持ち合わせている大学である。
また、全学部で留学を必須としている。
入試試験に関してであるが、上位受験生にとっては、どの科目も基礎を押さえておけば合格にたどりつけるが、一部難問も見られる。
== 共通テスト ==
学部で差はあるものの共通テストと2次試験の配点率は前期で概ね1:2、後期で概ね1:1としているところが多いので、少なくとも前期で75~80%かそれ以上、後期においては80%以上取れれば合格への希望が大きく開けてるだろう。ただし、これは一般的な目安であり上記の共通テスト得点率よりも低い場合でも2次試験で挽回できるので頑張って欲しい。
== 前期日程 ==
'''英語'''<br />
合格への鍵を握る科目は英語である。近年は全3問からなり、第1問と第2問は読解、第3問は文法(熟語)問題という形式が定着している。近年は和文英訳は出題されてない。千葉大の読解問題は非常にシンプルな出題内容(例えば、下線部が指している内容を日本語で具体的かつ簡潔に記述・説明する、など)であるが、『超』長文と呼ぶべき量が出題される場合もあるので、対策をしておかないと時間内に終わらない可能性が高い。また、センターや私大型の勉強もそれなりに補完関係にあるが、記述力をつけるために必ず過去問にも当たるべきである。
英検習得による加点がある。特に国際教養学部では英検準一級or一級取得かつCSEスコアが2500を超えるか、TEAPで375点以上取ると満点換算され、大きなアドバンテージとなる。
それ以外の学部でも(医学部除いて)実施されているが、持っていなくてもあまり差はつかないと思われる。
教育学部英語教育コースのみライティングが課される。
'''数学'''<br />
微分積分は毎年必ず出るので落とさないようにしたい。また、整数問題も頻出である。学部学科によって解答する問題が異なり、解法パターンの決まった問題から難度の高い問題まで出題される。文系学部は平素の学習は黄色チャートで十分であるが、理系学部は難度の高い問題も出題されるため青チャートを使用するとよい。今までの記述模試の復習も有効である。数学が苦手な受験生は教科書レベルにさかのぼって学習することで部分点は取れるだろう。
数学科と医学部専用問題は上位旧帝に匹敵するほどの難問になることがある。これらの学部を志望してる生徒は千葉大に限らずさらに上の大学の数学の問題も解くと良いだろう。
'''国語'''<br />
例年、現代文、古文、漢文の大問3問が出題されるパターンである。字数制限が付された上で記述解答させる問題の出題が形式化しているため、日頃から自分の考えを簡潔に表現できる力を身につけておくことが高得点への第一歩へとつながるであろう。また、漢文や古文を現代訳させる問題も頻出であるので日頃からコツコツ勉強し、古文単語や文法用法に関して知識を蓄えておくことが重要である。
'''理科'''<br />
理学部数学・情報数理学科と国際教養学部以外の理系受験生は「物理」「化学」「生物」「地学」の2科目を選択し、受験することになる。学部学科によって、受験する科目、解答する問題が違う。
なお薬学部、医学部では地学は解答できないため注意。
====物理====
理学部物理学科、医学部等が解答する問題は全体的に難易度が高く、単なる解法暗記では太刀打ちできない可能性がある。また融合問題が出てくることもある。
それ以外の学科では標準的な問題が多い。
====化学====
化学科、医学部等の専用問題以外は全体的に標準程度。
記述問題もそこそこ出題されてる為、典型的なものは書けるようにしておきたい。
== 後期日程 ==
前期に比べて難易度は大きく跳ね上がる。
特に前期と比べて共通テストの比重が大きい学部が多いため、共通テストで高得点を取らないと挽回不可能になることもある。
対策は前期とほぼ変わらないが、一部の学部では小論文や総合問題が課される。
後期試験の地球科学科は大学入試にしては珍しく地学が必須となっている。その為後期で考えてる人は注意。
== 模試 ==
大学別模擬試験としては、東進が千葉大本番レベル模試を実施している。他の予備校(駿台、河合塾等)は千葉大模試を実施してないため注意。全国の千葉大志望者における自己の位置を知るのにもよいので積極的に受験することをお勧めする。
== 外部サイト ==
*[http://www.chiba-u.ac.jp/exam/ 千葉大公式サイト]
[[Category:大学入試|ちはたいたいさく]]
[[カテゴリ:千葉県]]
dvy0hxkzj76tb3xxm7mbd6yhfxhppfc
ガリア戦記 第6巻
0
10983
263027
263021
2024-11-04T13:25:38Z
Linguae
449
/* 7節 */ 修整
263027
wikitext
text/x-wiki
[[Category:ガリア戦記|6]]
[[ガリア戦記]]> '''第6巻''' >[[ガリア戦記 第6巻/注解|注解]]
<div style="text-align:center">
<span style="font-size:20px; font-weight:bold; font-variant-caps: petite-caps; color:white; background: rgb(47,94,255);background: linear-gradient(180deg, rgba(47,94,255,1) 0%, rgba(24,56,255,1) 50%, rgba(0,8,255,1) 100%);"> C IVLII CAESARIS COMMENTARIORVM BELLI GALLICI </span>
<span style="font-size:40px; font-weight:bold; color:white; background: rgb(47,94,255);background: linear-gradient(180deg, rgba(47,94,255,1) 0%, rgba(24,56,255,1) 50%, rgba(0,8,255,1) 100%);"> LIBER SEXTVS </span>
</div>
[[画像:Gaule_-53.png|thumb|right|150px|ガリア戦記 第6巻の情勢図(BC53年)。<br>黄色の領域がローマ領。桃色が同盟部族領。]]
{| id="toc" style="align:left;clear:all;" align="left" cellpadding="5"
! style="background:#ccccff; text-align:left;" colspan="2" | ガリア戦記 第6巻 目次
|-
| style="text-align:right; font-size: 0.86em;"|
'''[[#ガッリア北部の平定|ガッリア北部の平定]]''':<br />
'''[[#第二次ゲルマーニア遠征|第二次ゲルマーニア遠征]]''':<br />
'''[[#ガッリア人の社会と風習について|ガッリア人の社会と風習について]]''':<br />
'''[[#ゲルマーニアの風習と自然について|ゲルマーニアの風習と自然について]]''':<br />
'''[[#対エブロネス族追討戦(1)|対エブロネス族追討戦(1)]]''':<br />
'''[[#スガンブリー族のアドゥアトゥカ攻略戦|スガンブリー族のアドゥアトゥカ攻略戦]]''':<br />
'''[[#対エブロネス族追討戦(2)|対エブロネス族追討戦(2)]]''':<br />
<br />
<br />
<br />
<br />
<br />
| style="text-align:left; font-size: 0.86em;"|
[[#1節|01節]] |
[[#2節|02節]] |
[[#3節|03節]] |
[[#4節|04節]] |
[[#5節|05節]] |
[[#6節|06節]] |
[[#7節|07節]] |
[[#8節|08節]] <br />
[[#9節|09節]] |
[[#10節|10節]] <br />
[[#11節|11節]] |
[[#12節|12節]] |
[[#13節|13節]] |
[[#14節|14節]] |
[[#15節|15節]] |
[[#16節|16節]] |
[[#17節|17節]] |
[[#18節|18節]] |
[[#19節|19節]] |
[[#20節|20節]] <br />
[[#21節|21節]] |
[[#22節|22節]] |
[[#23節|23節]] |
[[#24節|24節]] |
[[#25節|25節]] |
[[#26節|26節]] |
[[#27節|27節]] |
[[#28節|28節]] <br />
[[#29節|29節]] |
[[#30節|30節]] |
[[#31節|31節]] |
[[#32節|32節]] |
[[#33節|33節]] |
[[#34節|34節]] <br />
[[#35節|35節]] |
[[#36節|36節]] |
[[#37節|37節]] |
[[#38節|38節]] |
[[#39節|39節]] |
[[#40節|40節]] |
[[#41節|41節]] |
[[#42節|42節]] <br/>
[[#43節|43節]] |
[[#44節|44節]] <br/>
1節 [[#コラム「カエサルの軍団」|コラム「カエサルの軍団」]]<br>
10節 [[#コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」|コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」]]<br>10節 [[#コラム「ガッリア・ゲルマーニアの地誌・民族誌について」|コラム「ガッリア・ゲルマーニアの地誌・民族誌について」]]<br />
[[#脚注|脚注]]<br />
[[#参考リンク|参考リンク]]<br />
|}
<br style="clear:both;" />
__notoc__
<div style="background-color:#dfffdf;">
==<span style="color:#009900;">はじめに</span>==
:<div style="color:#009900;width:85%;">カエサルは、第1巻の年([[w:紀元前58年|紀元前58年]])から<ruby><rb>[[w:プロコンスル|前執政官]]</rb><rp>(</rp><rt>プロコンスル</rt><rp>)</rp></ruby>として属州総督に赴任した。が、これは[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]、[[w:イリュリクム|イッリュリクム]]および[[w:ガリア・ナルボネンシス|ガッリア・トラーンサルピーナ]]の三属州の統治、および4個軍団を5年間にもわたって任されるというローマ史上前代未聞のものであった。これはカエサルが[[w:マルクス・リキニウス・クラッスス|クラッスス]]、[[w:グナエウス・ポンペイウス|ポンペイウス]]と非公式な盟約を結んだ[[w:三頭政治#第一回三頭政治|三頭政治]]の成果であった。カエサルには属州の行政に従事する気持ちははじめからなく、任期のほとんどを夏季は[[w:ガリア戦争|ガッリア侵攻]]に、冬季は首都ローマへの政界工作に費やした。[[ガリア戦記_第3巻#はじめに|第3巻]]の年([[w:紀元前56年|紀元前56年]])に3人は[[w:ルッカ|ルカ]]([[w:la:Luca|Luca]])の会談を行い、カエサルはクラッススとポンペイウスが翌年に執政官になること、カエサルの総督の任期をさらに5年間延長されることを求めた。会談の結果、任期が大幅に延長されることになったカエサルは、もはや軍事的征服の野望を隠そうとせず、ガッリアに止まらず、[[w:ゲルマニア|ゲルマーニア]]や[[w:ブリタンニア|ブリタンニア]]の征服へと向かっていく。一方、第4巻の年([[w:紀元前55年|前55年]])に再び執政官になった二人は、[[w:パルティア|パルティア]]を攻略するためにクラッススが[[w:シリア属州|シュリア]]総督になること、ポンペイウスがカエサルと同様に[[w:ヒスパニア|両ヒスパーニア]]と[[w:アフリカ属州|アフリカ]]の三属州の総督になって4個軍団を任されることを決める。</div>
<div style="text-align:center">
{|
|-
|[[画像:First Triumvirate of Caesar, Crassius and Pompey.jpg|thumb|right|500px|後に[[w:三頭政治#第一回三頭政治|三頭政治]](<span style="font-family:Times New Roman;">[[w:la:Triumviratus|Triumviratus]]</span>)と呼ばれることになる非公式な盟約を結んでいた、左から[[w:ガイウス・ユリウス・カエサル|カエサル]]、[[w:マルクス・リキニウス・クラッスス|クラッスス]]、[[w:グナエウス・ポンペイウス|ポンペイウス]]。<br>3人の同盟はついに破綻の時を迎える。]]
|}
</div>
:<div style="color:#009900;width:85%;">[[w:ガリア戦記 第5巻|第5巻]]の年([[w:紀元前54年|前54年]])、カエサルは満を持して二回目の[[w:ローマによるブリタンニア侵攻 (紀元前55年-紀元前54年)|ブリタンニア侵攻]]を敢行するが、大した戦果は得られず、背後のガッリア情勢を気にしながら帰還する。ついに[[w:アンビオリクス|アンビオリークス]]率いる[[w:エブロネス族|エブローネース族]]、ついで[[w:ネルウィイ族|ネルウィイー族]]が反乱を起こし、カエサルは何とか動乱を鎮めるが、ガッリア諸部族の動きは不穏であり、カエサルは諸軍団とともに越冬することを決める。</div>
:<div style="color:#009900;width:85%;">カエサルがブリタンニア遠征で不在の間に、ポンペイウスに嫁していたカエサルの一人娘[[w:ユリア (ガイウス・ユリウス・カエサルの娘)|ユーリア]]が[[w:産褥|産褥]]で命を落とす。一方、クラッススは属州[[w:シリア属州|シュリア]]に向かうが、これはクラッススの命運とともに三頭政治の瓦解、カエサルとポンペイウスの関係悪化を招来することになる。</div>
:<div style="color:#009900;width:85%;">本巻の年([[w:紀元前53年|前53年]])、カエサルは[[w:エブロネス族|エブローネース族]]追討戦に向かうが、これは大きな嵐の前の出来事に過ぎない。</div>
</div>
<!--
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
==ガッリア北部の平定==
===1節===
*<span style="background-color:#ffd;">[[/注解/1節]] {{進捗|00%|2024-09-18}}</span>
;カエサルがポンペイウスの助けにより新兵を徴募する
*<!--❶-->Multis de causis Caesar maiorem Galliae [[wikt:en:motus#Noun_2|motum]] [[wikt:en:exspectans|exspectans]]
**多くの理由から、カエサルは、ガッリアのより大きな動乱を予期しており、
*per [[wikt:en:Marcus#Latin|Marcum]] [[wikt:en:Silanus#Latin|Silanum]], [[wikt:en:Gaius#Latin|Gaium]] [[wikt:en:Antistius#Latin|Antistium]] Reginum, [[wikt:en:Titus#Latin|Titum]] [[wikt:en:Sextius#Latin|Sextium]], legatos,
**<ruby><rb>[[w:レガトゥス|総督副官]]</rb><rp>(</rp><rt>レガトゥス</rt><rp>)</rp></ruby>の[[w:マルクス・ユニウス・シラヌス (紀元前25年の執政官)|マールクス・スィーラーヌス]]、ガーイウス・アンティスティウス・レーギーヌス、ティトゥス・セクスティウスを介して
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[w:en:Marcus Junius Silanus (consul 25 BC)|Mārcus Iūnius Sīlānus]] はこの年([[w:紀元前53年|前53年]])からカエサルの副官、[[w:紀元前25年|前25年]]に執政官。<br> ''[[w:fr:Caius Antistius Reginus|Gaius Antistius Reginus]]'' は副官として[[ガリア戦記_第7巻#83節|第7巻83節]]と[[ガリア戦記_第7巻#90節|90節]]でも後出。<br> [[w:en:Titus Sextius|Titus Sextius]] はこの年からカエサルの副官、[[ガリア戦記_第7巻#83節|第7巻83節]]でも後出、<br> [[w:三頭政治#第二回三頭政治|第二回三頭政治]]では[[w:アフリカ属州|アフリカ属州]]の総督を務め、[[w:マルクス・アエミリウス・レピドゥス|レピドゥス]]に引き継ぐ。)</span>
*[[wikt:en:dilectus#Noun|dilectum]] habere [[wikt:en:instituo#Latin|instituit]];
**<small>(兵士の)</small>徴募を行なうことを決める。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:dilectus#Noun|dīlēctus]] = [[wikt:en:delectus#Noun_2|dēlēctus]]「選択、徴募」)</span>
:
*<!--❷-->simul ab [[wikt:en:Gnaeus#Latin|Gnaeo]] [[wikt:en:Pompeius#Proper_noun|Pompeio]] [[wikt:en:proconsul#Latin|proconsule]] [[wikt:en:peto#Latin|petit]],
**同時に、<ruby><rb>[[w:プロコンスル|前執政官]]</rb><rp>(</rp><rt>プロコンスル</rt><rp>)</rp></ruby>の[[w:グナエウス・ポンペイウス|グナエウス・ポンペイウス]]に<small>(以下のことを)</small>求める。
*[[wikt:en:quoniam#Latin|quoniam]] ipse ad <u>urbem</u> cum imperio rei publicae causa [[wikt:en:remaneo#Latin|remaneret]],
**<small>(ポンペイウス)</small>自身は<u>首都</u><small>〔[[w:ローマ|ローマ市]]〕</small>の辺りに、<ruby><rb>[[w:インペリウム|軍隊司令権]]</rb><rp>(</rp><rt>インペリウム</rt><rp>)</rp></ruby>を伴って、国務のために留まっていたので、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:urbs#Latin|urbs (urbem)]] は普通名詞として「都市・街」を意味するが、特に首都'''[[w:ローマ|ローマ市]]'''を指す。)</span>
**:<span style="color:#009900;">(訳注:ポンペイウスは、第4巻の年([[w:紀元前55年|前55年]])に[[w:マルクス・リキニウス・クラッスス|クラッスス]]とともに[[w:執政官|執政官]]を務め、<br> 第5巻の年(昨年=[[w:紀元前54年|前54年]])には[[w:ヒスパニア|両ヒスパーニア]]と[[w:アフリカ属州|アフリカ]]の属州総督となったが、<br> 首都ローマの政局が気がかりであったため、任地には副官を派遣して、<br> 自らはローマ郊外に滞在していた。ただ彼は属州総督であったため、<br> [[w:ポメリウム|ポメリウム]]と呼ばれるローマ市中心部に立ち入ることは禁じられていた。)</span>
*quos ex [[wikt:en:cisalpinus#Latin|Cisalpina]] Gallia <u>consulis</u> [[wikt:en:sacramentum#Latin|sacramento]] [[wikt:en:rogo#Latin|rogavisset]],
**[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]の内から、<ruby><rb>[[w:執政官|執政官]]</rb><rp>(</rp><rt>コンスル</rt><rp>)</rp></ruby>のための宣誓を求めていた者たちに、
**:<span style="color:#009900;">(訳注:ポンペイウスは執政官のときに元老院の許可を得て、<br> カエサルの属州で、自らの属州に派遣するための4個軍団の徴募を行った。<br> 徴集された新兵たちは執政官に宣誓したようである。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、主要写本ω では [[wikt:en:consulis#Noun|consulis]]「執政官の」だが、<br> [[ガリア戦記/注解編/写本と校訂版#Ciacconius|Ciacconius]]は [[wikt:en:consul#Latin|consul]]「執政官が」と修正提案している。)</span>
*ad signa [[wikt:en:convenio#Latin|convenire]] et ad se [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iuberet]],
**軍旗のもとに集まって、自分<small>〔カエサル〕</small>のもとへ進発することを命じるようにと。
**:<span style="color:#009900;">(訳注:カエサルは、ポンペイウスに軍団兵の融通を求めたわけだ。<br> ポンペイウスが執政官のときに徴募していたうちの1個軍団がカエサルに貸し出された。<br> ところがその後、<u>第8巻54節の記述</u>によれば <ref>ラテン語文は、[[s:la:Commentarii_de_bello_Gallico/Liber_VIII#54]] などを参照。</ref><ref>英訳は、[[s:en:Commentaries_on_the_Gallic_War/Book_8#54]] などを参照。</ref>、[[w:マルクス・リキニウス・クラッスス|クラッスス]]の死後に、[[w:元老院|元老院]]は、<br> 対[[w:パルティア|パルティア]]戦争のために、カエサルとポンペイウスがそれぞれ1個軍団を供出することを可決したが、<br> ポンペイウスはカエサルに1個軍団の返還を求めたので、<br> カエサルは計2個軍団の引き渡しを求められることになる。<br> このことは、[[内乱記_第1巻#2節|『内乱記』第1巻2節]]以降でも言及される。)</span>
:
*<!--❸-->magni [[wikt:en:intersum#Latin|interesse]] etiam in reliquum tempus ad [[wikt:en:opinio#Latin|opinionem]] Galliae [[wikt:en:existimans#Latin|existimans]]
**ガッリアの世論に対して、これから後の時期にさえも、(カエサルが)大いに重要であると考えていたのは、
*tantas videri Italiae [[wikt:en:facultas#Latin|facultates]]
**(以下の程度に)イタリアの(動員)能力が豊富であると見えることである。
**:<span style="color:#009900;">(訳注:Italiaという語は多義的でさまざまに解釈できるが、<br> 本書ではガッリア・キサルピーナを指すことが多い。)</span>
*ut, si [[wikt:en:aliquid#Etymology_2|quid]] esset in bello [[wikt:en:detrimentum#Latin|detrimenti]] acceptum,
**もし、戦争において何がしかの(兵員の)損害を蒙ったとしても、
*non modo id [[wikt:en:brevis#Latin|brevi]] tempore [[wikt:en:sarcio#Latin|sarciri]],
**それが短期間で修復(できる)だけでなく、
*sed etiam [[wikt:en:maior#Adjective_2|maioribus]] [[wikt:en:augeo#Latin|augeri]] copiis posset.
**より多く軍勢で増されることが可能だ<br>(とガッリアの世論に思われることが重要であるとカエサルは考えたのである)。
:
*<!--❹-->Quod cum [[wikt:en:Pompeius#Proper_noun|Pompeius]] et rei publicae et amicitiae [[wikt:en:tribuo#Latin|tribuisset]],
**そのことを、ポンペイウスは公儀<small>〔ローマ国家〕</small>のためにも(三頭政治の)盟約のためにも認めたので、
*celeriter [[wikt:en:confectus#Latin|confecto]] per suos [[wikt:en:dilectus#Noun|dilectu]]
**(カエサルの)配下の者たちを介して速やかに徴募が成し遂げられて
*tribus ante [[wikt:en:exactus#Latin|exactam]] [[wikt:en:hiems#Latin|hiemem]] et [[wikt:en:constitutus#Participle|constitutis]] et [[wikt:en:adductus#Latin|adductis]] legionibus
**冬が過ぎ去る前に、3個[[w:ローマ軍団|軍団]]が組織されて<small>(カエサルのもとへ)</small>もたらされ、
*[[wikt:en:duplicatus#Latin|duplicato]]<nowiki>que</nowiki> earum [[wikt:en:cohors#Latin|cohortium]] numero, quas cum [[wikt:en:Quintus#Latin|Quinto]] [[wikt:en:Titurius#Latin|Titurio]] [[wikt:en:amitto#Latin|amiserat]],
**それらの<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>の数は、[[w:クィントゥス・ティトゥリウス・サビヌス|クィーントゥス・ティトゥーリウス(・サビーヌス)]]とともに失っていたものの倍にされた。
**:<span style="color:#009900;">(訳注:前巻でサビーヌスとコッタは1個軍団と5個[[w:コホルス|歩兵大隊]](=15個歩兵大隊)を失ったが、<br> 代わりに3個軍団(=30個歩兵大隊)を得たということ。)</span>
*et [[wikt:en:celeritas#Latin|celeritate]] et copiis [[wikt:en:doceo#Latin|docuit]],
**<small>(徴兵の)</small>迅速さと軍勢<small>(の多さ)</small>において<small>(ガッリア人たちに)</small>示したのは、
*quid populi Romani [[wikt:en:disciplina#Latin|disciplina]] atque [[wikt:en:ops#Noun_4|opes]] possent.
**ローマ国民の規律と能力がいかに有力であるかということである。
{| class="wikitable"
|-
| style="vertical-align:top; text-align:left;" |[[画像:Hw-pompey.jpg|thumb|right|250px|[[w:グナエウス・ポンペイウス|グナエウス・ポンペイウス]]の胸像。カエサルおよび[[w:マルクス・リキニウス・クラッスス|マルクス・クラッスス]]とともに[[w:三頭政治|三頭政治]]を行ない、[[w:共和政ローマ|共和政末期のローマ]]を支配した。この巻の年にクラッススが戦死し、ポンペイウスに嫁いでいたカエサルの娘[[w:ユリア (ガイウス・ユリウス・カエサルの娘)|ユーリア]]が前年に病没、三頭政治は瓦解して、やがて[[w:ローマ内戦 (紀元前49年-紀元前45年)|内戦]]へ向かう。]]
| style="vertical-align:top; text-align:left;" |[[画像:Theatre of Pompey 3D cut out.png|thumb|left|400px|'''[[w:ポンペイウス劇場|ポンペイウス劇場]]'''の復元図。[[w:グナエウス・ポンペイウス|ポンペイウス]]の名を冠したこの劇場は、彼が執政官であった[[w:紀元前55年|紀元前55年]]頃に竣工し、当時最大の劇場であった。<br> 伝記作家[[w:プルタルコス|プルータルコス]]は以下のように伝えている<ref>[[s:en:Plutarch%27s_Lives_(Clough)/Life_of_Pompey]] より</ref>:「クラッススは執政官の任期が切れるとすぐに属州へと出発したが、ポンペイウスはローマで劇場の開館式や奉献式に出席し、その式にはあらゆる競技・ショー・運動・体操・音楽などで人々を楽しませた。野獣の狩猟や餌付け、野獣との闘いもあり、500頭のライオンが殺された。しかし何よりも、象の闘いは、恐怖と驚きに満ちた見世物であった」と。<br><br> カエサルの最期の場所でもあり、血みどろのカエサルはポンペイウスの胸像の前で絶命したとされている。]]
|}
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
<div style="background-color:#dfffdf;">
===<span style="color:#009900;">コラム「カエサルの軍団」</span>===
:<div style="color:#009900;width:75%;">カエサルは第1巻の年([[w:紀元前58年|紀元前58年]])に三属州の総督に任官するとともに4個軍団(VI・VII・[[w:en:Legio VIII Augusta|VIII]]・[[w:en:Legio IX Hispana|IX]])を任された。[[w:ヘルウェティイ族|ヘルウェーティイー族]]([[w:la:Helvetii|Helvetii]])と対峙するうちに、元老院に諮らずに独断で2個軍団([[w:en:Legio X Equestris|X]]・[[w:en:Legio XI Claudia|XI]])を徴募する(1巻10節)。<br> 第2巻の年([[w:紀元前57年|紀元前57年]])に3個軍団([[w:en:Legio XII Fulminata|XII]]・[[w:en:Legio XIII Gemina|XIII]]・[[w:en:Legio XIV Gemina|XIV]])を徴募して、計9個軍団。<br><br> [[ガリア戦記_第5巻#24節|『第5巻』24節]]の時点で、カエサルは8個軍団と5個[[w:コホルス|歩兵大隊]]を保持していると記されている。最古参の第6軍団が半減していると考えると、[[w:アドゥアトゥカの戦い|アドゥアトゥカの戦い]]で[[w:アンビオリクス|アンビオリークス]]によって、[[w:クィントゥス・ティトゥリウス・サビヌス|サビーヌス]]やコッタらとともに滅ぼされたのは、第14軍団([[w:en:Legio XIV Gemina|XIV]])と古い第6軍団(VI)の生き残りの5個[[w:コホルス|歩兵大隊]]と考えることができる。<br><br> 本巻の年([[w:紀元前53年|紀元前53年]])では、ポンペイウスの第1軍団がカエサルに譲られ、後にカエサルの軍団の番号系列に合わせて第6軍団(VI)と改称されたようだ。「第14軍団」は全滅させられたので通常は欠番にするところだが、カエサルはあえて再建して第14軍団と第15軍団が徴募され、これら3個軍団を加えると、カエサルが保持するのは計10個軍団となる。<br> もっとも本巻ではカエサルは明瞭な記述をしておらず、上述のように後に2個軍団を引き渡すことになるためか、伝記作家[[w:プルタルコス|プルータルコス]]は、ポンペイウスがカエサルに2個軍団を貸し出した、と説明している。
</div>
</div>
===2節===
*<span style="background-color:#ffd;">[[/注解/2節]] {{進捗|00%|2024-09-29}}</span>
;ガッリア北部の不穏な情勢、トレーウェリー族がライン川東岸のゲルマーニア人を勧誘
*<!--❶-->[[wikt:en:interfectus#Latin|Interfecto]] [[wikt:en:Indutiomarus#Latin|Indutiomaro]], ut [[wikt:en:doceo#Latin|docuimus]],
**<small>([[ガリア戦記 第5巻#58節|第5巻58節]]で)</small>述べたように、インドゥーティオマールスが殺害されると、
*ad eius propinquos a [[wikt:en:Treveri#Latin|Treveris]] imperium [[wikt:en:defero#Latin|defertur]].
**トレーウェリー族の者たちにより彼の縁者たちへ支配権がもたらされる。
*Illi finitimos [[wikt:en:Germanus#Noun|Germanos]] [[wikt:en:sollicito#Latin|sollicitare]] et [[wikt:en:pecunia#Latin|pecuniam]] [[wikt:en:polliceor#Latin|polliceri]] non [[wikt:en:desisto#Latin|desistunt]].
**彼らは隣接する[[w:ゲルマニア|ゲルマーニア]]人たちをそそのかすこと、および金銭を約束することをやめない。
*Cum ab proximis [[wikt:en:impetro#Latin|impetrare]] non possent, [[wikt:en:ulterior#Latin|ulteriores]] [[wikt:en:tempto#Latin|temptant]].
**たとえ隣人たちによって(盟約を)成し遂げることができなくても、より向こう側の者たちに試みる。
:
*<!--❷-->[[wikt:en:inventus#Latin|Inventis]] [[wikt:en:nonnullus#Latin|non nullis]] civitatibus
**少なからぬ部族国家を見出して
*[[wikt:en:ius_iurandum#Latin|iure iurando]] inter se [[wikt:en:confirmo#Latin|confirmant]]
**互いに誓約し合って(支持を)固め、
*obsidibusque de pecunia [[wikt:en:caveo#Latin|cavent]];
**金銭(の保証)のために人質たちを提供する。
*[[wikt:en:Ambiorix#Latin|Ambiorigem]] sibi [[wikt:en:societas#Latin|societate]] et [[wikt:en:foedus#Latin|foedere]] [[wikt:en:adiungo#Latin|adiungunt]].
**[[w:アンビオリクス|アンビオリークス]]を自分たちにとっての連合や同盟に加盟させる。
:
*<!--❸-->Quibus rebus [[wikt:en:cognitus#Participle|cognitis]] Caesar,
**それらの事情を知るや、カエサルは、
*cum undique bellum [[wikt:en:paro#Latin|parari]] videret,
**至る所で戦争が準備されていることを見ていたので、
*[[wikt:en:Nervii#Latin|Nervios]], [[wikt:en:Aduatuci#Latin|Atuatucos]] ac [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:adiunctus#Participle|adiunctis]]
**(すなわち)[[w:ネルウィイ族|ネルウィイー族]]、アトゥアトゥキー族とメナピイー族を加盟させたうえに
*<u>Cisrhenanis</u> omnibus <u>[[wikt:en:Germanus#Noun|Germanis]]</u> esse in armis,
**レーヌス<small>〔[[w:ライン川|ライン川]]〕</small>のこちら側のすべてのゲルマーニア人たちが武装していて、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:en:Germani cisrhenani|Germani Cisrhenani]]''「レーヌスのこちら側のゲルマーニア人」(西岸の諸部族) は西岸部族の総称。<br> ''Germani Transrhenani'' 「レーヌスの向こう側のゲルマーニア人」(東岸の諸部族) の対義語で、<br> 西岸の諸部族が東岸の諸部族を招き寄せているというのが『ガリア戦記』の主張である。)</span>
*[[wikt:en:Senones#Latin|Senones]] ad [[wikt:en:imperatum#Latin|imperatum]] non venire
**セノネース族は<small>(カエサルから)</small>命令されたことに従わずに
*et cum [[wikt:en:Carnutes#Latin|Carnutibus]] finitimisque civitatibus consilia [[wikt:en:communico#Latin|communicare]],
**カルヌーテース族および隣接する諸部族とともに謀計を共有しており、
*a [[wikt:en:Treveri#Latin|Treveris]] [[wikt:en:Germanus#Noun|Germanos]] crebris [[wikt:en:legatio#Latin|legationibus]] [[wikt:en:sollicito#Latin|sollicitari]],
**ゲルマーニア人たちがたびたびトレーウェリー族の使節団によってそそのかされていたので、
*[[wikt:en:mature#Adverb|maturius]] sibi de bello [[wikt:en:cogitandus#Latin|cogitandum]] [[wikt:en:puto#Latin|putavit]].
**<small>(カエサルは)</small>自分にとって<small>(例年)</small>より早めに戦争を計画するべきだと見なした。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===3節===
*<span style="background-color:#ffd;">[[/注解/3節]] {{進捗|00%|2024-10-06}}</span>
;カエサルがネルウィイー族を降し、ガッリアの領袖たちの会合を召集する
*<!--❶-->Itaque [[wikt:en:nondum#Latin|nondum]] [[wikt:en:hiems#Latin|hieme]] [[wikt:en:confectus#Latin|confecta]]
**<small>(カエサルは)</small>こうして、まだ冬が終わらないうちに、
*proximis quattuor [[wikt:en:coactus#Latin|coactis]] legionibus
**近隣の4個[[w:ローマ軍団|軍団]]を集めて、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[ガリア戦記_第5巻#52節|第5巻52節]]で言及されたように、カエサルは、本営を置いていた<br> サマロブリーウァ(現在の[[w:アミアン|アミアン]])周辺の冬営に3個軍団、<br> およびファビウスの軍団を配置していたと思われる。)</span>
*[[wikt:en:de_improviso#Latin|de improviso]] in fines [[wikt:en:Nervii#Latin|Nerviorum]] [[wikt:en:contendo#Latin|contendit]]
**不意に[[w:ネルウィイ族|ネルウィイー族]]の領土に急いだ。
:
*<!--❷-->et, [[wikt:en:priusquam#Latin|prius quam]] illi aut [[wikt:en:convenio#Latin|convenire]] aut [[wikt:en:profugio#Latin|profugere]] possent,
**そして、彼ら<small>(の軍勢)</small>は、集結したり、あるいは逃亡したりできるより前に、
*magno [[wikt:en:pecus#Latin|pecoris]] atque hominum numero [[wikt:en:captus#Latin|capto]]
**家畜たちおよび人間たちの多数を捕らえて、
*atque ea [[wikt:en:praeda#Latin|praeda]] militibus [[wikt:en:concessus#Participle|concessa]]
**それらの戦利品を兵士たちに譲り、
*[[wikt:en:vastatus#Latin|vastatis]]<nowiki>que</nowiki> agris
**耕地を荒らして、
*in [[wikt:en:deditio#Latin|deditionem]] venire atque obsides sibi dare [[wikt:en:cogo#Latin|coegit]].
**<small>(ネルウィイー族に、ローマ勢へ)</small>降伏すること、人質たちを自分<small>〔カエサル〕</small>に供出することを強いた。
:
*<!--❸-->Eo celeriter [[wikt:en:confectus#Latin|confecto]] [[wikt:en:negotium#Latin|negotio]]
**その戦役は速やかに成し遂げられたので、
*rursus in [[wikt:en:hibernum#Latin|hiberna]] legiones [[wikt:en:reduco#Latin|reduxit]].
**再び諸軍団を冬営に連れ戻した。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:本営を置いていたサマロブリーウァ周辺の冬営。)</span>
:
*'''ガッリアの領袖たちの会合'''
*<!--❹-->[[wikt:en:concilium#Latin|Concilio]] Galliae primo [[wikt:en:ver#Latin|vere]], ut [[wikt:en:instituo#Latin|instituerat]], [[wikt:en:indictus#Participle|indicto]],
**ガッリアの<small>(領袖たちの)</small>会合を、定めていたように、春の初めに通告すると、
**:<span style="color:#009900;">(訳注:会合の集合場所は、当初は本営のあるサマロブリーウァだったであろう。)</span>
*cum reliqui praeter [[wikt:en:Senones#Latin|Senones]], [[wikt:en:Carnutes#Latin|Carnutes]] [[wikt:en:Treveri#Latin|Treveros]]<nowiki>que</nowiki> venissent,
**[[w:セノネス族|セノネース族]]、カルヌーテース族とトレーウェリー族を除いて、ほかの者たちは(会合に)現われていたので、
**:<span style="color:#009900;">(訳注:ガッリア北部では、このほかエブローネース族とメナピイー族が参加していないはずである。)</span>
*initium belli ac [[wikt:en:defectio#Latin|defectionis]] hoc esse [[wikt:en:arbitratus#Latin|arbitratus]],
**このこと<span style="color:#009900;">〔3部族の不参加〕</span>は戦争と背反の始まりであると思われて、
*ut omnia [[wikt:en:postpono#Latin|postponere]] videretur,
**<small>(他の)</small>すべて<small>(の事柄)</small>を後回しにすることと見なされるように、
*[[wikt:en:concilium#Latin|concilium]] [[wikt:en:Lutetia#Latin|Lutetiam]] [[wikt:en:Parisii#Latin|Parisiorum]] [[wikt:en:transfero#Latin|transfert]].
**会合を[[w:パリシイ族|パリースィイー族]]の(城塞都市である)[[w:ルテティア|ルーテーティア]]に移す。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:ルーテーティア Lutetia は、写本によってはルーテーキア Lutecia とも表記されている。<br> ラテン語では Lutetia Parisiorum「パリースィイー族の泥土」と呼ばれ、現在の[[w:パリ|パリ市]]である。<br> [[w:ストラボン|ストラボーン]]などによれば[[w:ケルト語|ケルト語]]でルコテキア Lukotekia と呼ばれていたらしい。)</span>
:
; セノネース族について
[[画像:Plan_de_Paris_Lutece2_BNF07710745.png|thumb|right|200px|ルテティア周辺の地図(18世紀頃)]]
*<!--❺-->[[wikt:en:confinis#Latin|Confines]] erant hi [[wikt:en:Senones#Latin|Senonibus]]
**彼ら<small>〔パリースィイー族〕</small>はセノネース族に隣接していて、
*civitatemque patrum memoria [[wikt:en:coniungo#Latin|coniunxerant]],
**父祖の伝承では<small>(セノネース族と一つの)</small>部族として結びついていた。
*sed ab hoc consilio [[wikt:en:absum#Latin|afuisse]] [[wikt:en:existimo#Latin|existimabantur]].
**しかし<small>(パリースィイー族は)</small>これらの謀計には関与していなかったと考えられていた。
:
*<!--❻-->Hac re pro [[wikt:en:suggestus#Latin|suggestu]] [[wikt:en:pronuntiatus#Latin|pronuntiata]]
**<small>(カエサルは)</small>この事を演壇の前で宣言すると、
*eodem die cum legionibus in [[wikt:en:Senones#Latin|Senones]] [[wikt:en:proficiscor#Latin|proficiscitur]]
**同日に諸軍団とともにセノネース族のところに出発して、
*magnisque itineribus eo [[wikt:en:pervenio#Latin|pervenit]].
**強行軍でもってそこに到着した。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===4節===
*<span style="background-color:#ffd;">[[/注解/4節]] {{進捗|00%|2024-10-09}}</span>
;セノネース族のアッコーが造反するが、カエサルはセノネース族とカルヌーテース族を降伏させる
*<!--❶-->[[wikt:en:cognitus#Participle|Cognito]] eius [[wikt:en:adventus#Latin|adventu]],
**彼<small>〔カエサル〕</small>の到来を知ると、
*[[wikt:en:Acco#Latin|Acco]], qui princeps eius consilii fuerat,
**その画策の首謀者であった<small>(セノネース族の)</small>'''アッコー''' は、
*[[wikt:en:iubeo#Latin|iubet]] in oppida multitudinem [[wikt:en:convenio#Latin|convenire]].
**群衆に諸[[w:オッピドゥム|城塞都市]]に集結することを命じる。
:
*[[wikt:en:conans#Latin|Conantibus]], [[wikt:en:priusquam|prius quam]] id [[wikt:en:effici|effici]] posset, [[wikt:en:adsum#Latin|adesse]] Romanos [[wikt:en:nuntio#Verb|nuntiatur]].
**そのことが遂行され得るより前に、ローマ人が接近していることが、企てている者たちに報告される。
:
*<!--❷-->Necessario [[wikt:en:sententia#Latin|sententia]] [[wikt:en:desisto#Latin|desistunt]]
**<small>(セノネース族は)</small>やむなく<small>(カエサルへの謀反の)</small>意図を思いとどまって、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:necessario#Adverb|necessāriō]] = [[wikt:en:necessarie#Adverb|necessāriē]]「やむを得ず」)</span>
*legatosque [[wikt:en:deprecor#Latin|deprecandi]] causa ad Caesarem mittunt;
**<small>(恩赦を)</small>嘆願するために、使節たちをカエサルのもとへ遣わして、
*<u>adeunt</u> per [[wikt:en:Aedui#Latin|Haeduos]], quorum [[wikt:en:antiquitus|antiquitus]] erat in fide civitas.
**部族国家が昔から<small>(ローマ人に対して)</small>忠実であった[[w:ハエドゥイ族|ハエドゥイー族]]を介して、頼み込む。
**:<span style="color:#009900;">(訳注:この部分は、セノネース族がハエドゥイー族の庇護下にあったように訳されることも多いが、<br> [[ガリア戦記 第5巻#54節|第5巻54節]]における両部族とローマ人の関係の記述を考慮して、上のように訳した<ref>[[s:en:Commentaries_on_the_Gallic_War/Book_6#4|英語版ウィキソース]]では「they make advances to him through the Aedui, whose state was from ancient times under the protection of Rome.」と英訳されている。</ref>。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:de:adire|adeō]]「(誰かに)アプローチする」「(誰かに)頼る、頼む、懇願する」<ref>[https://www.frag-caesar.de/lateinwoerterbuch/adeo-uebersetzung-1.html adeo-Übersetzung im Latein Wörterbuch]</ref>)</span>
:
*<!--❸-->Libenter Caesar [[wikt:en:petens#Latin|petentibus]] [[wikt:en:Aedui#Latin|Haeduis]] dat [[wikt:en:venia#Latin|veniam]]
**カエサルは、懇願するハエドゥイー族に対して、喜んで<small>(セノネース族への)</small>恩赦を与え、
*[[wikt:en:excusatio#Latin|excusationem]]<nowiki>que</nowiki> accipit,
**<small>(セノネース族の)</small>弁解を受け入れる。
*quod [[wikt:en:aestivus#Latin|aestivum]] tempus [[wikt:en:instans#Latin|instantis]] belli,
**というのは、夏の時季は差し迫っている<small>(エブローネース族らとの)</small>戦争のためのものであり、
*non [[wikt:en:quaestio#Latin|quaestionis]] esse [[wikt:en:arbitror#Latin|arbitrabatur]].
**<small>(謀反人に対する)</small>尋問のためのものではないと<small>(カエサルが)</small>判断していたからである。
**:<span style="color:#009900;">(訳注:エブローネース族との戦争が終わった後に、謀反人への尋問が行なわれることになる。[[#44節|44節]]参照。)</span>
:
*<!--❹-->Obsidibus [[wikt:en:imperatus#Latin|imperatis]] centum,
**<small>(カエサルは)</small>100人の人質<small>(の供出)</small>を命令すると、
*hos Haeduis [[wikt:en:custodiendus#Latin|custodiendos]] [[wikt:en:trado#Latin|tradit]].
**彼ら<small>〔人質たち〕</small>を監視するべく[[w:ハエドゥイ族|ハエドゥイー族]]に引き渡す。
:
*<!--❺-->[[wikt:en:eodem#Adverb|Eodem]] [[wikt:en:Carnutes#Latin|Carnutes]] legatos obsidesque [[wikt:en:mitto#Latin|mittunt]],
**ちょうどそこに、カルヌーテース族が使節たちと人質たちを遣わして、
*[[wikt:en:usus#Participle|usi]] [[wikt:en:deprecator#Latin|deprecatoribus]] [[wikt:en:Remi#Proper_noun_3|Remis]], quorum erant in [[wikt:en:clientela#Latin|clientela]];
**<small>(カルヌーテース族が)</small><ruby><rb>[[w:クリエンテス|庇護]]</rb><rp>(</rp><rt>クリエンテーラ</rt><rp>)</rp></ruby>を受ける関係にあったレーミー族を<ruby><rb>助命仲介者</rb><rp>(</rp><rt>デープレカートル</rt><rp>)</rp></ruby>として利用して、
*eadem ferunt [[wikt:en:responsum#Latin|responsa]].
**<small>(セノネース族のときと)</small>同じ返答を獲得する。
:
*<!--❻-->[[wikt:en:perago#Latin|Peragit]] [[wikt:en:concilium#Noun|concilium]] Caesar
**カエサルは<small>(ガッリア諸部族の領袖たちの)</small>会合を完了して、
*equitesque [[wikt:en:impero#Latin|imperat]] civitatibus.
**[[w:騎兵|騎兵]]たち<small>(の供出)</small>を諸部族に命令する。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===5節===
*<span style="background-color:#ffd;">[[/注解/5節]] {{進捗|00%|2024-10-10}}</span>
;アンビオリークスへの策を練り、メナピイー族へ向かう
*<!--❶-->Hac parte Galliae [[wikt:en:pacatus#Latin|pacata]],
**ガッリアのこの方面が平定されたので、
**:<span style="color:#009900;">(訳注:[[#3節|3節]]~[[#4節|4節]]でネルウィイー族、セノネース族とカルヌーテース族がカエサルに降伏したことを指す。)</span>
*totus et mente et animo in bellum [[wikt:en:Treveri#Latin|Treverorum]] et [[wikt:en:Ambiorix#Latin|Ambiorigis]] [[wikt:en:insisto#Latin|insistit]].
**<small>(カエサルは)</small>全身全霊をかけて、トレーウェリー族と[[w:アンビオリクス|アンビオリークス]]との戦争に着手する。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:totus et [[wikt:en:mens#Latin|mente]] et [[wikt:en:animus#Latin|animo]] 「全身全霊をかけて」''with all his heart and soul'' )</span>
:
*<!--❷-->[[wikt:en:Cavarinus#Latin|Cavarinum]] cum equitatu [[wikt:en:Senones#Latin|Senonum]] [[wikt:en:secum#Latin|secum]] [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iubet]],
**カウァリーヌスに、セノネース族の[[w:騎兵|騎兵]]隊を伴って、自分<small>〔カエサル〕</small>とともに出発することを命じる。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:de:Cavarinus|Cavarinus]]'' は、[[ガリア戦記 第5巻#54節|第5巻54節]]で前述のように、<br> カエサルにより王位に据えられていたが、独立主義勢力により追放された。)</span>
*ne [[wikt:en:aliquis#Latin|quis]] <u>aut</u> ex huius [[wikt:en:iracundia#Latin|iracundia]] <u>aut</u> ex eo, quod [[wikt:en:mereo#Latin|meruerat]], [[wikt:en:odium#Latin|odio]] civitatis [[wikt:en:motus#Noun_2|motus]] [[wikt:en:exsistat|exsistat]].
**彼の激しやすさから、<u>あるいは</u>彼が招来していた反感から、部族国家の何らかの動乱が起こらないようにである。
**:<span style="color:#009900;">(訳注:前節でアッコーら独立主義者たちがカエサルに降伏して、<br> カウァリーヌスが王位に戻されたために、<br> 部族内で反感をかっていたのであろう。)</span>
:
*<!--❸-->His rebus [[wikt:en:constitutus#Participle|constitutis]],
**これらの事柄が取り決められると、
*quod pro explorato habebat, [[wikt:en:Ambiorix#Latin|Ambiorigem]] [[wikt:en:proelium#Latin|proelio]] non esse <u>concertaturum</u>,
**<small>(カエサルは)</small>[[w:アンビオリクス|アンビオリークス]]が戦闘で激しく争うつもりではないことを、確実と見なしていたので、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:pro#Latin|pro]] [[wikt:en:exploratus#Latin|explorato]] = [[wikt:en:exploratus#Latin|exploratum]]「確かなものとして(''as certain'')」)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、χ系(A・Q)およびL・N写本では non esse <u>[[wikt:en:concertaturum|concertaturum]]</u>「激しくつもりではないこと」だが、<br> β系写本では non esse <u>[[wikt:en:contenturum|contenturum]]</u><br> B・M・S写本では non esse <u>concertaturum [[wikt:en:tenturum|tenturum]]</u> となっている。)</span>
*reliqua eius [[wikt:en:consilium#Latin|consilia]] animo [[wikt:en:circumspicio#Latin|circumspiciebat]].
**彼<small>〔アンビオリークス〕</small>のほかの計略に思いをめぐらせていた。
:
; カエサルがメナピイー族の攻略を決意
*<!--❹-->Erant [[wikt:en:Menapii#Latin|Menapii]] propinqui [[wikt:en:Eburones#Latin|Eburonum]] finibus,
**メナピイー族は[[w:エブロネス族|エブローネース族]]の領土に隣り合っていて、
*[[wikt:en:perpetuus#Latin|perpetuis]] [[wikt:en:palus#Latin|paludibus]] [[wikt:en:silva#Latin|silvis]]<nowiki>que</nowiki> [[wikt:en:munitus#Latin|muniti]],
**絶え間ない沼地と森林によって守られており、
*qui uni ex Gallia de pace ad Caesarem legatos [[wikt:en:numquam#Latin|numquam]] [[wikt:en:mitto#Latin|miserant]].
**彼らは[[w:ガリア|ガッリア]]のうちでカエサルのもとへ講和の使節たちを決して遣わさなかった唯一の者たちであった。
:
*Cum his esse [[wikt:en:hospitium#Latin|hospitium]] [[wikt:en:Ambiorix#Latin|Ambiorigi]] [[wikt:en:scio#Latin|sciebat]];
**<small>(カエサルは)</small>[[w:アンビオリクス|アンビオリークス]]が彼らのもとで歓待されていることを知っていたし、
*item per [[wikt:en:Treveri#Latin|Treveros]] venisse Germanis in [[wikt:en:amicitia#Latin|amicitiam]] [[wikt:en:cognosco#Latin|cognoverat]].
**同様にトレーウェリー族を通じて[[w:ゲルマニア|ゲルマーニア]]人と盟約を結んだことも探知していた。
:
*<!--❺-->Haec <u>prius</u> illi [[wikt:en:detrahendus#Latin|detrahenda]] auxilia [[wikt:en:existimo#Latin|existimabat]] <u>quam</u> ipsum bello [[wikt:en:lacesso#Latin|lacesseret]],
**<ruby><rb>彼奴</rb><rp>(</rp><rt>あやつ</rt><rp>)</rp></ruby><small>〔アンビオリークス〕</small>へのこれらの支援は、彼奴自身に戦争で挑みかかる<u>より前に</u>引き離されるべきだと考えていた。
*ne [[wikt:en:desperatus#Latin|desperata]] [[wikt:en:salus#Latin|salute]]
**<small>(アンビオリークスが)</small>身の安全に絶望して、
*<u>aut</u> se in [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:abdo#Latin|abderet]],
**<u>あるいは</u>メナピイー族のところに身を隠したりしないように、
*<u>aut</u> cum [[wikt:en:Transrhenanus#Latin|Transrhenanis]] [[wikt:en:congredior#Latin|congredi]] [[wikt:en:cogo#Latin|cogeretur]].
**<u>あるいは</u>レーヌス<small>〔[[w:ライン川|ライン川]]〕</small>の向こう側の者たちと合同することを強いられないように、である。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''Germani Transrhenani'' 「レーヌスの向こう側のゲルマーニア人」(東岸の諸部族)を<br> ''[[w:en:Germani cisrhenani|Germani Cisrhenani]]''「レーヌスのこちら側のゲルマーニア人」(西岸の諸部族) が<br> 招き寄せているというのが『ガリア戦記』の主張である。)</span>
:
*<!--❻-->Hoc [[wikt:en:initus#Participle|inito]] consilio,
**この計略を決断すると、
*[[wikt:en:totus#Etymology_1|totius]] exercitus [[wikt:en:impedimentum#Latin|impedimenta]] ad [[wikt:en:Labienus#Latin|Labienum]] in [[wikt:en:Treveri#Latin|Treveros]] [[wikt:en:mitto#Latin|mittit]]
**<small>(カエサルは)</small>全軍の[[w:輜重|輜重]]を、トレーウェリー族のところにいる[[w:ティトゥス・ラビエヌス|ラビエーヌス]]のもとへ送り、
*duasque ad eum legiones [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iubet]];
**2個[[w:ローマ軍団|軍団]]に彼<small>〔ラビエーヌス〕</small>のもとへ出発することを命じる。
:
*ipse cum legionibus [[wikt:en:expeditus#Participle|expeditis]] quinque in [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:proficiscor#Latin|proficiscitur]].
**<small>(カエサル)</small>自身は軽装の5個軍団とともにメナピイー族のところに出発する。
:
*<!--❼-->Illi, [[wikt:en:nullus#Adjective|nulla]] [[wikt:en:coactus#Latin|coacta]] [[wikt:en:manus#Latin|manu]],
**あの者らは、何ら手勢を集めず、
*loci [[wikt:en:praesidium#Latin|praesidio]] [[wikt:en:fretus#Adjective|freti]],
**地勢の要害を信頼して、
*in [[wikt:en:silva#Latin|silvas]] [[wikt:en:palus#Latin|paludes]]<nowiki>que</nowiki> [[wikt:en:confugio#Latin|confugiunt]]
**森林や沼地に避難して、
*[[wikt:en:suus#Latin|sua]]<nowiki>que</nowiki> [[wikt:en:eodem#Adverb|eodem]] [[wikt:en:confero#Latin|conferunt]].
**自分たちの家財を同じところに運び集める。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===6節===
*<span style="background-color:#ffd;">[[/注解/6節]] {{進捗|00%|2024-10-20}}</span>
;メナピイー族がついにカエサルの軍門に降る
*<!--❶-->Caesar,
**カエサルは、
*[[wikt:en:partitus#Latin|partitis]] copiis cum [[wikt:en:Gaius#Latin|Gaio]] [[wikt:en:Fabius#Latin|Fabio]] legato et [[wikt:en:Marcus#Latin|Marco]] [[wikt:en:Crassus#Latin|Crasso]] [[wikt:en:quaestor#Latin|quaestore]]
**[[w:レガトゥス|副官]]である[[w:ガイウス・ファビウス|ガーイウス・ファビウス]]と[[w:クァエストル|財務官]]である[[w:マルクス・リキニウス・クラッスス (財務官)|マールクス・クラッスス]]とともに軍勢を分配して、
*celeriterque [[wikt:en:effectus#Participle|effectis]] [[wikt:en:pons#Latin|pontibus]]
**速やかに橋梁を造って、
**:<span style="color:#009900;">(訳注:橋梁は軽装の軍団兵が沼地を渡るためのものなので、丸太道のようなものであろうか。)</span>
*[[wikt:en:adeo#Verb|adit]] [[wikt:en:tripertito|tripertito]],
**三方面から<small>(メナピイー族の領土に)</small>接近して、
[[画像:GallischeHoeve.jpg|thumb|right|200px|復元されたメナピイー族の住居(再掲)]]
*[[wikt:en:aedificium#Latin|aedificia]] [[wikt:en:vicus#Latin|vicos]]<nowiki>que</nowiki> [[wikt:en:incendo#Latin|incendit]],
**建物や村々を焼き討ちして、
*magno [[wikt:en:pecus#Latin|pecoris]] atque hominum numero [[wikt:en:potior#Latin|potitur]].
**家畜や人間の多数を<small>(戦利品として)</small>獲得する。
:
*<!--❷-->Quibus rebus [[wikt:en:coactus#Participle|coacti]]
**そのような事態に強いられて、
*[[wikt:en:Menapii#Latin|Menapii]] legatos ad eum [[wikt:en:pax#Latin|pacis]] [[wikt:en:petendus#Latin|petendae]] causa [[wikt:en:mitto#Latin|mittunt]].
**メナピイー族は和平を求めるための使節たちを彼<small>〔カエサル〕</small>のもとへ遣わす。
:
*<!--❸-->Ille [[wikt:en:obses#Latin|obsidibus]] [[wikt:en:acceptus#Latin|acceptis]],
**彼<small>〔カエサル〕</small>は人質たちを受け取ると、
*hostium se [[wikt:en:habiturus#Latin|habiturum]] numero [[wikt:en:confirmo#Latin|confirmat]], si aut [[wikt:en:Ambiorix#Latin|Ambiorigem]] aut eius legatos finibus suis [[wikt:en:recipio#Latin|recepissent]].
**もし[[w:アンビオリクス|アンビオリークス]]か彼の使節を自領に迎え入れたら、自分は<small>(メナピイー族を)</small>敵として見なすだろうと断言する。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:属格の名詞 + numero「〜として」)
:
*<!--❹-->His [[wikt:en:confirmatus#Latin|confirmatis]] rebus,
**これらの事柄を確立すると、
*[[wikt:en:Commius#Latin|Commium]] [[wikt:en:Atrebas#Latin|Atrebatem]] cum [[wikt:en:equitatus#Latin|equitatu]] [[wikt:en:custos#Latin|custodis]] loco in [[wikt:en:Menapii#Latin|Menapiis]] [[wikt:en:relinquo#Latin|relinquit]];
**アトレバーテース族である[[w:コンミウス|コンミウス]]を[[w:騎兵|騎兵]]隊とともに、目付け役として、メナピイー族のところに残す。
**:<span style="color:#009900;">(訳注:コンミウスは、カエサルがアトレバテース族の王にすえて、ブリタンニア遠征の先導役として遣わし、<br> カッスィウェッラウヌスの降伏の仲介を</span>果たしていた。[[ガリア戦記 第4巻#21節|第4巻21節]]・27節や[[ガリア戦記 第5巻#22節|第5巻22節]]などを参照。)
*ipse in [[wikt:en:Treveri#Latin|Treveros]] [[wikt:en:proficiscor#Latin|proficiscitur]].
**<small>(カエサル)</small>自身はトレーウェリー族のところに出発する。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===7節===
*<span style="background-color:#ffd;">[[/注解/7節]] {{進捗|00%|2024-10-27}}</span>
[[画像:Titelberg_01.jpg|thumb|right|200px|トレーウェリー族の城砦跡(再掲)]]
;トレーウェリー族の開戦準備、ラビエーヌスの計略
*<!--❶-->Dum haec a Caesare [[wikt:en:gero#Latin|geruntur]],
**これらのことがカエサルによって遂行されている間に、
*[[wikt:en:Treveri#Latin|Treveri]] magnis [[wikt:en:coactus#Participle|coactis]] [[wikt:en:peditatus#Latin|peditatus]] [[wikt:en:equitatus#Etymology_1|equitatus]]<nowiki>que</nowiki> copiis
**トレーウェリー族は、[[w:歩兵|歩兵]]隊と[[w:騎兵|騎兵]]隊の大軍勢を徴集して、
*[[wikt:en:Labienus#Latin|Labienum]] cum una legione, quae in eorum finibus <u>[[wikt:en:hiemo#Latin|hiemaverat]]</u>,
**彼らの領土において越冬していた1個[[w:ローマ軍団|軍団]]とともに[[w:ティトゥス・ラビエヌス|ラビエーヌス]]を、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、α系写本では [[wikt:en:hiemaverat|hiemaverat]] <small>(過去完了形)</small> だが、<br> β系写本では [[wikt:en:hiemabat|hiemabat]] <small>(未完了過去形)</small> などとなっている。)</span>
*[[wikt:en:adorior#Latin|adoriri]] [[wikt:en:paro#Latin|parabant]],
**襲撃することを準備していた。
:
*<!--❷-->iamque ab eo non longius [[wikt:en:biduum#Latin|bidui]] via [[wikt:en:absum#Verb|aberant]],
**すでに、そこ<small>〔ラビエーヌスの冬営〕</small>から2日間の道のりより遠く離れていなかったが、
*cum duas venisse legiones [[wikt:en:missus#Noun_2|missu]] Caesaris [[wikt:en:cognosco#Latin|cognoscunt]].
**そのときに、カエサルが派遣した2個軍団が到着したことを知る。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[#5節|5節]]で既述のように、カエサルはラビエーヌスのところへ全軍の輜重と2個軍団を派遣していた。<br> こうして、ラビエーヌスはローマ全軍の輜重と3個軍団を任されることになった。)
:
*<!--❸-->[[wikt:en:positus#Latin|Positis]] <u>castris</u> a milibus passuum [[wikt:en:quindecim#Latin|quindecim]](XV)
**<small>(トレーウェリー勢は、ラビエーヌスの冬営から)</small>15ローママイルのところに<u>野営地</u>を設置して、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位#ミーッレ・パッスーム、ミーリア(ローママイル)|ローママイル]]は約1.48 kmで、15マイルは約22 km)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[w:カストラ|カストラ]] [[wikt:en:castra#Latin|castra]] という語はローマ勢の行軍中の野営地や常設の宿営地に用いられ、<br> 非ローマ系部族の野営地に用いられることは稀である。)</span>
*auxilia [[wikt:en:Germani#Latin|Germanorum]] [[wikt:en:exspecto#Latin|exspectare]] [[wikt:en:constituo#Latin|constituunt]].
**[[w:ゲルマニア|ゲルマーニア]]人の援軍を待つことを決める。
:
*<!--❹-->[[wikt:en:Labienus#Latin|Labienus]] hostium [[wikt:en:cognitus#Participle|cognito]] consilio
**ラビエーヌスは、敵勢<small>〔トレーウェリー族〕</small>の計略を知ると、
*[[wikt:en:sperans#Latin|sperans]] [[wikt:en:temeritas#Latin|temeritate]] eorum [[wikt:en:fore#Etymology_2_2|fore]] [[wikt:en:aliqui#Latin|aliquam]] [[wikt:en:dimico#Latin|dimicandi]] facultatem,
**彼らの無謀さにより何らかの争闘する機会が生ずるであろうと期待して、
*[[wikt:en:praesidium#Latin|praesidio]] quinque(V) cohortium [[wikt:en:impedimentum#Latin|impedimentis]] [[wikt:en:relictus#Latin|relicto]]
**5個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>の守備隊を[[w:輜重|輜重]]のために残し、
*cum XXV(viginti quinque) cohortibus magnoque [[wikt:en:equitatus#Etymology_1|equitatu]] contra hostem [[wikt:en:proficiscor#Latin|proficiscitur]]
**25個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>および多勢の騎兵隊とともに、敵に抗して進発する。
*et mille passuum [[wikt:en:intermissus#Latin|intermisso]] spatio castra [[wikt:en:communio#Latin|communit]].
**<small>(トレーウェリー勢から)</small>1ローママイルの間隔を置いて、[[w:カストラ|陣営]]<small>〔野営地〕</small>を固める。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位#ミーッレ・パッスーム、ミーリア(ローママイル)|ローママイル]]は約1.48 km)</span>
:
*<!--❺-->Erat inter [[wikt:en:Labienus#Latin|Labienum]] atque hostem [[wikt:en:difficilis#Latin|difficili]] [[wikt:en:transitus#Latin|transitu]] flumen [[wikt:en:ripa#Latin|ripis]]<nowiki>que</nowiki> [[wikt:en:praeruptus#Adjective|praeruptis]].
**ラビエーヌスと敵の間には、渡ることが困難な川が、急峻な岸とともにあった。
*Hoc <u>neque</u> ipse [[wikt:en:transeo#Latin|transire]] habebat in animo
**これを<small>(ラビエーヌス)</small>自身は渡河するつもりではなかったし、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:~ habeo in animo「~するつもりである」)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:neque ~, neque …「~でもないし、…でもない」)</span>
*<u>neque</u> hostes [[wikt:en:transiturus#Latin|transituros]] [[wikt:en:existimo#Latin|existimabat]].
**敵勢も渡河して来ないであろうと<small>(ラビエーヌスは)</small>考えていた。
:
*<!--❻-->[[wikt:en:augeo#Latin|Augebatur]] auxiliorum [[wikt:en:cotidie#Latin|cotidie]] spes.
**<small>(トレーウェリー勢にとって、ゲルマーニア人の)</small>援軍への期待は日ごとに増されるばかりであった。
*[[wikt:en:loquor#Latin|Loquitur]] <u>in consilio</u> [[wikt:en:palam#Adverb|palam]]:
**<small>(ラビエーヌスは)</small>会議において公然と<small>(以下のように)</small>述べる。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、主要写本ωでは in [[wikt:en:consilio|consilio]] だが、<br> [[ガリア戦記/注解編/写本と校訂版#Aldus|Aldus]] は in [[wikt:en:concilium#Latin|concilio]] と修正提案し、<br> Hecker は [[wikt:en:consulto#Adverb|consulto]] と修正提案している。)</span>
*[[wikt:en:quoniam#Latin|quoniam]] [[wikt:en:Germani#Latin|Germani]] [[wikt:en:adpropinquo#Latin|adpropinquare]] [[wikt:en:dico#Latin|dicantur]],
**ゲルマーニア人<small>(の軍勢)</small>が近づいていることが言われているので、
*sese suas exercitusque fortunas in [[wikt:en:dubium#Noun|dubium]] non [[wikt:en:devocaturus#Latin|devocaturum]]
**自分は自らと軍隊の命運を不確実さの中に引きずり込むことはないであろうし、
*et postero die prima luce castra [[wikt:en:moturus#Latin|moturum]].
**翌日の夜明けには陣営を引き払うであろう。
:
*<!--❼-->Celeriter haec ad hostes deferuntur,
**これ<small>〔ラビエーヌスの発言〕</small>は速やかに敵勢のところへ報じられた。
*ut ex magno Gallorum equitum numero nonnullos Gallicis rebus favere natura cogebat.
**<small>(ローマ側の)</small>ガッリア人騎兵の多数のうち、若干名が<small>(敵側の)</small>ガッリア人の境遇を想う気質に駆られたがゆえである。
:
*<!--❽-->[[wikt:en:Labienus#Latin|Labienus]], noctu tribunis militum primisque ordinibus convocatis,
**ラビエーヌスは夜間に<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby>たちと第一序列の[[w:ケントゥリオ|百人隊長]]たちを召集して、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1個軍団当たりの<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby> の定員は計6名。<br> 第一序列の<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオー</rt><rp>)</rp></ruby>たち primorum ordinum centuriones は、軍団内における[[w:下士官|下士官]]のトップであり、<br> 第一<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> においては定員5名だが、<br> ほかの歩兵大隊においては定員6名であった。)</span>
*quid sui sit consilii, proponit
**自分の計略がいかなるものであるかを呈示して、
*et, quo facilius hostibus timoris det suspicionem,
**それ<small>〔計略〕</small>によって、たやすく敵勢に<small>(ローマ勢の)</small>恐怖心という推測を起こすものであること<small>(を示し)</small>、
*maiore strepitu et tumultu, quam populi Romani fert consuetudo
**ローマ人民の習慣としているよりもより大きな騒音や騒動でもって
*castra moveri iubet.
**陣営を引き払うことを命じた。
*His rebus fugae similem profectionem effecit.
**これらの事柄によって、逃亡に似た出発を実現した。
:
*<!--❾-->Haec quoque per exploratores
**これら<small>(ラビエーヌスの発言や出発騒ぎの)</small>おのおのが、偵察者たちを通じて、
*ante lucem in tanta propinquitate castrorum ad hostes deferuntur.
**明け方の前には、両陣営のこれほどの近さにより、敵勢へ報じられた。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===8節===
*<span style="background-color:#ffd;">[[/注解/8節]] {{進捗|00%|2024-10-28}}</span>
;ラビエーヌスがトレーウェリー族を降す
*<!--❶-->Vix agmen novissimum extra munitiones processerat,
**やっと<small>(ローマ勢の)</small>隊列の最後尾が城砦の外側に進み出ようとしていた、
*cum Galli cohortati inter se, ne speratam praedam ex manibus dimitterent
**そのときにガッリア人たちは、期待していた戦利品を<small>(彼らの)</small>手から逸しないように、互いに鼓舞し合って、
*── longum esse perterritis Romanis Germanorum auxilium exspectare,
**── ローマ人が脅かされているのに、[[w:ゲルマニア|ゲルマーニア]]人の援軍を待つことは長たらしいものである。
*neque suam pati dignitatem,
**<small>(以下のことは)</small>自分たちの品格が耐えられない。
*ut tantis copiis tam exiguam manum, praesertim fugientem atque impeditam,
**これほどの大軍勢で<small>(ローマの)</small>手勢のそれほどの貧弱さを、とりわけ逃げ出して足手まといになっている者たちを
*adoriri non audeant ──
**あえて襲撃しないとは──<small>(と鼓舞し合って)</small>
*flumen transire et iniquo loco committere proelium non dubitant.
**川を渡って、<small>(切り立った岸を登りながら)</small>不利な場所で交戦することをためらわなかった。
:
*<!--❷-->Quae fore suspicatus Labienus,
**そのようなことになることを想像していた[[w:ティトゥス・ラビエヌス|ラビエーヌス]]は、
*ut omnes citra flumen eliceret,
**<small>(敵の)</small>総勢を川のこちら側に誘い出すように、
*eadem usus simulatione itineris placide progrediebatur.
**行軍の同じ見せかけを用いて、穏やかに前進した。
:
*<!--❸-->Tum praemissis paulum impedimentis atque in tumulo quodam conlocatis
**それから、[[w:輜重|輜重]](の隊列)を少し先に遣わして、ある丘に配置した。
*<!--▲直接話法--><span style="background-color:#e8e8ff;"><span style="color:#009900;">«</span> Habetis,<span style="color:#009900;">»</span></span> inquit, <!--▲直接話法--><span style="background-color:#e8e8ff;"><span style="color:#009900;">«</span>milites, quam petistis facultatem; </span>
**<small>(ラビエーヌスは)</small>「兵士らよ、汝らは求めていた機会を持っているぞ。」と言った。
*<span style="background-color:#e8e8ff;">hostem impedito atque iniquo loco tenetis: </span>
**「敵たちは<small>(岸で)</small>妨げられて、不利な場所を占めている。」
:
*<!--❹--><span style="background-color:#e8e8ff;">praestate eandem nobis ducibus virtutem, quam saepe numero imperatori praestitistis, </span>
**「我々指導者たちに、しばしば将軍<small>〔カエサル〕</small>に示したのと同じ武勇を示してくれ。」
*<span style="background-color:#e8e8ff;">atque illum adesse et haec coram cernere existimate.<span style="color:#009900;">»</span></span>
**「彼<small>〔カエサル〕</small>が訪れて、これ<small>〔武勇〕</small>を目の前で見ていると考えてくれ。」
:
*<!--❺-->Simul signa ad hostem converti
**同時に、軍旗が敵の方へ向きを変えられること、
**:<span style="color:#009900;">(訳注:軍勢を敵側へ向けて反転すること)</span>
*aciemque dirigi iubet,
**戦列が整えられること、を命じた。
*et paucis turmis praesidio ad impedimenta dimissis
**かつ若干の[[w:トゥルマ|騎兵小隊]]を輜重のための守備隊として送り出して、
**:<span style="color:#009900;">(訳注:騎兵小隊 turma はローマ軍の[[w:アウクシリア|支援軍]]における中規模の編成単位で、<br> 各30騎ほどと考えられている。)</span>
*reliquos equites ad latera disponit.
**残りの[[w:騎兵|騎兵]]たちを<small>(軍勢の)</small>側面へ分置した。
:
*<!--❻-->Celeriter nostri clamore sublato pila in hostes immittunt.
**速やかに、我が方<small>〔ローマ勢〕</small>は雄叫びを上げて、[[w:ピルム|ピールム]](投槍)を敵勢へ放り入れた。
*Illi, ubi praeter spem, quos <modo> fugere credebant, infestis signis ad se ire viderunt,
**彼らは、ただ逃げると信じていた者たちが、期待に反して、軍旗を攻勢にして自分らの方へ来るのを見るや否や、
[[画像:Pilensalve.jpg|thumb|right|200px|[[w:ピルム|ピールム]](投槍)を投げるローマ軍兵士(帝政期)の再演]]
*impetum <u>modo</u> ferre non potuerunt
**<small></small>(ローマ勢の)突撃を持ちこたえることができずに、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部 modo は主要写本ωではこの位置にあるが、<br> 上記の <modo> に移す修正提案がある。)</span>
*ac primo concursu in fugam coniecti proximas silvas petierunt.
**最初の戦闘で逃亡に追い込まれて、近隣の森へ急いだ。
:
*<!--❼-->Quos Labienus equitatu consectatus,
**その<small>(敗走した)</small>者たちを、ラビエーヌスは騎兵隊で追い付いて、
*magno numero interfecto, compluribus captis,
**多数を殺戮して、かなりの者たちを捕らえて、
*paucis post diebus civitatem recepit.
**わずかな日々の後に<small>(トレーウェリーの)</small>部族を<small>(インドゥーティオマールスらの蜂起の前のように)</small>元に戻した。
[[画像:Bund-ro-altburg.jpg|thumb|right|180px|トレーウェリー族の再現された住居(再掲)]]
[[画像:Trier_Kaiserthermen_BW_1.JPG|thumb|right|180px|トレーウェリー族(Treveri)の名を現代に伝えるドイツの[[w:トリーア|トリーア市]](Trier)に残るローマ時代の浴場跡]]
*Nam Germani qui auxilio veniebant
**一方で、援軍として来ようとしていたゲルマーニア人たちは、
*percepta Treverorum fuga sese domum receperunt.
**トレーウェリー族の逃亡を把握したので、故国に撤退していった。
:
*<!--❽-->Cum his propinqui Indutiomari,
**彼ら<small></small>(ゲルマーニア人)とともに、インドゥーティオマールスの縁者たちは、
*qui defectionis auctores fuerant,
**その者らは<small></small>(トレーウェリー族におけるカエサルへの)背反の張本人であったが、
*comitati eos ex civitate excesserunt.
**彼ら<small></small>(ゲルマーニア人)を伴って、部族(の領内)から出て行った。
:
*<!--❾-->Cingetorigi,
**キンゲトリークスに対しては、
*quem ab initio permansisse in officio demonstravimus,
**その者は前述したように始めから<small></small>(ローマへの)忠節に留まり続けていた者であるが、
**:<span style="color:#009900;">(訳注:キンゲトリークスについては、[[ガリア戦記 第5巻#3節|第5巻3節]]~4節・[[ガリア戦記 第5巻#56節|56節]]~57節で述べられている。)</span>
*principatus atque imperium est traditum.
**首長の地位と軍隊司令権が委託された。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
==第二次ゲルマーニア遠征==
===9節===
'''再びレーヌスを渡河、ウビイー族を調べる'''
*① Caesar, postquam ex Menapiis in Treveros venit,
**カエサルは、メナピイー族のところからトレーウェリー族のところに来た後で、
*duabus de causis Rhenum transire constituit;
**二つの理由からレーヌス(=[[w:ライン川|ライン川]])を渡ることを決めた。
*② quarum una erat, quod auxilia contra se Treveris miserant,
**その(理由の)一つは、(ゲルマーニア人が)自分(カエサル)に対抗して、トレーウェリー族に援軍を派遣していたことであった。
*altera, ne ad eos Ambiorix receptum haberet.
**もう一つ(の理由)は、彼らのところへ[[w:アンビオリクス|アンビオリクス]]が避難所を持たないように、ということであった。
*③ His constitutis rebus
**これらの事柄を決定すると、
*paulum supra eum locum, quo ante exercitum traduxerat,
**以前に軍隊を渡らせていた場所の少し上流に、
*facere pontem instituit.
**橋を造ることを決意した。
*④ Nota atque instituta ratione
**経験しかつ建造していた方法で、
*magno militum studio
**兵士の大きな熱意により
*paucis diebus opus efficitur.
**わずかな日数で作業が完遂された。
*⑤ Firmo in Treveris ad pontem praesidio relicto,
**トレーウェリー族(の領内)の橋のたもとへ強力な守備隊を残した。
*ne quis ab his subito motus oreretur,
**彼らによる何らかの動乱が突然に起こされないように。
*reliquas copias equitatumque traducit.
**残りの軍勢と騎兵隊を(レヌスの東岸へ)渡らせた。
*⑥ Ubii, qui ante obsides dederant atque in deditionem venerant,
**ウビイー族は、以前に(カエサルに対して)人質たちを供出していて、降伏していたが、
**(訳注:この事はすでに[[ガリア戦記 第4巻#16節|第4巻16節]]で述べられている。)
*purgandi sui causa ad eum legatos mittunt,
**自分たちの申し開きをすることのために、彼(カエサル)のところへ使節たちを遣わして、
*qui doceant
**(以下のように)説かせた。
*neque auxilia ex sua civitate in Treveros missa
**自分たちの部族から援軍をトレーウェリー族のところに派遣してもいないし、
*neque ab se fidem laesam:
**自分らにより(ローマへの)信義を傷つけてもいない、と。
*⑦ petunt atque orant ut
**(ウビイー族の使節たちは、以下のように)求め、かつ願った。
*sibi parcat,
**自分たちを容赦し、
*ne communi odio Germanorum innocentes pro nocentibus poenas pendant;
**[[w:ゲルマニア|ゲルマーニア]]人一般への憎しみから、潔白な者たちが加害者たちのために罰を償うことがないように、と。
*si amplius obsidum vellet, dare pollicentur.
**もし、より多くの人質を欲するのなら、供出することを約束する、と。
*⑧ Cognita Caesar causa
**カエサルは事情を調査して、
*reperit ab Suebis auxilia missa esse;
**スエービー族により(トレーウェリー族に)援軍が派遣されていたことを見出した。
*Ubiorum satisfactionem accipit,
**ウビイー族の弁解を受け入れて、
*aditus viasque in Suebos perquirit.
**スエービー族のところに出入りする道筋を問い質した。
===10節===
'''ウビイー族を通じてスエービー族の動静を探る'''
*① Interim paucis post diebus fit ab Ubiis certior
**わずかな日々の後の間に、ウビイー族によって報告されたことには、
*Suebos omnes in unum locum copias cogere
*スエービー族は、すべての軍勢を一か所に集めて、
**(訳注:後述するように、これはカッティー族 [[w:en:Chatti|Chatti]] のことであろう。)
*atque iis nationibus, quae sub eorum sint imperio,
**彼らの支配下にある種族たちに
*denuntiare, ut auxilia peditatus equitatusque mittant.
**[[w:歩兵|歩兵]]隊と[[w:騎兵|騎兵]]隊の援軍を派遣するように指示した。
*② His cognitis rebus
**(カエサルは)これらの事情を知ると、
*rem frumentariam providet, castris idoneum locum deligit;
**糧食調達を準備して、[[w:カストラ|陣営]](を設置するの)に適切な場所を選んだ。
*Ubiis imperat, ut pecora deducant suaque omnia ex agris in oppida conferant,
**ウビイー族には、家畜を連れ去り、自分たちの一切合財を土地から[[w:オッピドゥム|城市]]に運び集めるように命令した。
*sperans barbaros atque imperitos homines
**(カエサルが)期待したのは、野蛮で無知な連中が
*inopia cibariorum adductos ad iniquam pugnandi condicionem posse deduci;
**糧秣の欠乏に動かされて、不都合な条件のもとで戦うことがあり得るように誘引されることであった。
*③ mandat, ut crebros exploratores in Suebos mittant quaeque apud eos gerantur cognoscant.
**偵察者たちをたびたびスエービー族内に遣わして、彼らのもとで遂行されていることを知るように(ウビイー族に)委ねた。
*④ Illi imperata faciunt et paucis diebus intermissis referunt:
**彼ら(ウビイー族)は、命令されたことを実行して、わずかな日々を間に置いて(以下のことを)報告する。
*Suebos omnes, posteaquam certiores nuntii de exercitu Romanorum venerint,
**スエービー族は皆、ローマ人の軍隊についてより確実な報告がもたらされた後で、
*cum omnibus suis sociorumque copiis, quas coegissent,
**自分たちの軍勢と集結していた同盟者たちの軍勢とともに、
*penitus ad extremos fines se recepisse;
**領土の最も遠い奥深くまで撤退していた。
*⑤ silvam esse ibi infinita magnitudine, quae appellatur Bacenis;
**そこには、バケニスと呼ばれている限りない大きさの森林がある。
*hanc longe introrsus pertinere et pro nativo muro obiectam
**これは、はるか内陸に及んでいて、天然の防壁として横たわっており、
*[[wikt:en:Cheruscos|Cheruscos]] ab Suebis Suebosque ab [[wikt:en:Cheruscis|Cheruscis]] iniuriis incursionibusque prohibere:
**ケールスキー族をスエービー族から、スエービー族をケールスキー族から、無法行為や襲撃から防いでいる。
*ad eius initium silvae Suebos adventum Romanorum exspectare constituisse.
**その森の始まりのところで、スエービー族はローマ人の到来を待ち構えることを決定した。
<div style="border:solid #999 1px;background:#feedff;max-width:80%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
===コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」===
[[画像:Hermann (Arminius) at the battle of the Teutoburg Forest in 9 CE by Peter Jannsen, 1873, with painting creases and damage removed.jpg|thumb|right|250px|ウァルスの戦い([[w:de:Varusschlacht|Varusschlacht]])こと[[w:トイトブルク森の戦い|トイトブルク森の戦い]](AD9年)で戦う、ゲルマーニア軍とローマ軍(Johann Peter Theodor Janssen画、1870~1873年頃)。中央上の人物はケールスキー族の名将[[w:アルミニウス (ゲルマン人)|アルミニウス]]。<br>アルミニウスが率いるケールスキー族・カッティー族らゲルマーニア諸部族同盟軍は、P.クィン(ク)ティリウス・ウァルス麾下ローマ3個軍団を壊滅させ、アウグストゥスに「ウァルスよ諸軍団を返せ([[w:la:Publius_Quinctilius_Varus|Quintili Vare]], legiones redde!)」と嘆かせた。]]
<br>
<div style="background:#ecf;"> '''スエービー族とカッティー族'''</div>
:『ガリア戦記』では、第1巻・第4巻および第6巻でたびたび[[w:スエビ族|スエービー族]]の名が言及される。タキトゥス<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の38章「スエービー」などを参照。</ref>など多くの史家が伝えるようにスエービー族 [[wikt:en:Suebi#Latin|Suēbī]] またはスエウィ族 Suēvī とは、単一の部族名ではなく、多くの独立した部族国家から構成される連合体の総称とされる。
:19世紀のローマ史家[[w:テオドール・モムゼン|テオドール・モムゼン]]によれば<ref>『モムゼン ローマの歴史Ⅳ』長谷川博隆訳、名古屋大学出版会、のp.201, p.224, p.232などを参照。</ref>、カエサルの時代のローマ人には
「スエービー」とは遊牧民を指す一般的な呼称で、カエサルがスエービーと呼ぶのはカッティー族だという。
:カッティー族とスエービー系諸部族の異同は明確ではないが、多くの史家は両者を区別して伝えている。
: 第1巻37節・51節・53節~54節、第4巻1節~4節・7節などで言及され、「百の郷を持つ」と
されている「スエービー族」は、スエービー系諸部族の総称、あるいは遊牧系の部族を指すのであろう。
: 他方、第4巻16節・19節・第6巻9節~10節・29節で、ウビイー族を圧迫する存在として言及される
:「スエービー族」はモムゼンの指摘のように、カッティー族 [[w:en:Chatti|Chatti]] であることが考えられる。
:タキトゥス著『ゲルマーニア』<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の36章「ケルスキー」などを参照。</ref>でも、カッティー族はケールスキー族と隣接する宿敵として描写され、本節の説明に合致する。
<div style="background:#ecf;"> '''ケールスキー族'''</div>
:ケールスキー族は、『ガリア戦記』では[[#10節|本節]]でカッティー族と隣接する部族として名を挙げられる
:のみである。しかしながら、本巻の年(BC53年)から61年後(AD9年)には、帝政ローマの
:[[w:アウグストゥス|アウグストゥス帝]]がゲルマーニアに派遣していたプブリウス・クィンクティリウス・ウァルス
:([[w:la:Publius_Quinctilius_Varus|Publius Quinctilius Varus]])が率いるローマ軍3個軍団に対して、名将[[w:アルミニウス (ゲルマン人)|アルミニウス]]を
:指導者とするケールスキー族は、カッティー族ら諸部族の同盟軍を組織して、ウァルスの3個軍団を
:[[w:トイトブルク森の戦い|トイトブルク森の戦い]]において壊滅させ、老帝アウグストゥスを嘆かせたという。
<div style="background:#ecf;"> '''ウビイー族'''</div>
:ウビイー族は『ガリア戦記』の第4巻・第6巻でも説明されているように、ローマ人への忠節を
:認められていた。そのため、タキトゥスによれば<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の28章などを参照。</ref>、ゲルマニアへのローマ人の守りとして
:BC38年頃にレヌス(ライン川)左岸のコロニア([[w:la:Colonia_Agrippina|Colonia]];植民市)すなわち現在の[[w:ケルン|ケルン市]]に移された。)
</div>
==ガッリア人の社会と風習について==
<div style="border:solid #999 1px;background:#feedff;max-width:80%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
===コラム「ガッリア・ゲルマーニアの地誌・民族誌について」===
[[画像:Testa di saggio o principe, forse il filosofo poseidonio, 50 ac. ca 01.JPG|thumb|right|200px|アパメアの[[w:ポセイドニオス|ポセイドニオス]]の胸像。地中海世界やガッリアなどを広く訪れて、膨大な著作を残した。<br>『ガリア戦記』の地誌・民族誌的な説明も、その多くを彼の著作に依拠していると考えられている。]]
:これ以降、11節~20節の10節にわたってガッリアの地誌・民族誌的な説明が展開され、さらには、ゲルマーニアの地誌・民族誌的な説明などが21節~28節の8節にわたって続く。ガッリア戦争の背景説明となるこのような地誌・民族誌は、本来ならば第1巻の冒頭に置かれてもおかしくはない。しかしながら、この第6巻の年(BC53年)は、カエサル指揮下のローマ勢にとってはよほど書かれるべき戦果が上がらなかったためか、ガッリア北部の平定とエブロネス族の追討戦だけでは非常に短い巻となってしまうため、このような位置に置いたとも考えられる。ゲルマーニアの森にどんな獣が住んでいるかなど、本筋にほとんど影響のないと思われる記述も見られる。
:『ガリア戦記』におけるガッリアの地誌・民族誌的な説明、特にこの11節以降の部分は、文化史的に重要なものと見なされ、考古学やケルトの伝承などからも裏付けられる。しかし、これらの記述はカエサル自身が見聞したというよりも、むしろ先人の記述、とりわけBC2~1世紀のギリシア哲学ストア派の哲学者・地理学者・歴史学者であった[[w:ポセイドニオス|ポセイドニオス]]([[w:la:Posidonius Apameus|Posidonius Apameus]])の著作に依拠していたと考えられている<ref>『ケルト事典』ベルンハルト・マイヤー著、鶴岡真弓監修、創元社の「ポセイドニオス」「カエサル」の項を参照。</ref> <ref>『ケルト人』ヴァンセスラス・クルータ([[w:fr:Venceslas Kruta|Venceslas Kruta]])著、鶴岡真弓訳、白水社 のp.20-21を参照。</ref>。ポセイドニオスは、ローマが支配する地中海世界やガッリア地域などを広く旅行した。彼の52巻からなる膨大な歴史書は現存しないが、その第23巻にガッリアに関する詳細な記述があったとされ、[[w:シケリアのディオドロス|ディオドロス]]、[[w:ストラボン|ストラボン]]、[[w:アテナイオス|アテナイオス]]らによって引用され、同時代および近代のケルト人観に多大な影響を与えたと考えられている。
:現存するガッリアの地誌・民族誌は、ストラボン<ref>『ギリシア・ローマ世界地誌Ⅰ』ストラボン著、飯尾都人訳、龍溪書舎を参照。</ref>、ディオドロス<ref>『神代地誌』ディオドロス著、飯尾都人訳、龍溪書舎を参照。</ref>、ポンポニウス・メラ<ref>『世界地理』ポンポニウス・メラ著、飯尾都人訳(上掲『神代地誌』に所収)</ref>のものなどがある。現存するゲルマーニアの地誌・民族誌は、ストラボン、タキトゥス<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫などを参照。</ref>、ポンポニウス・メラなどのものがある。
</div>
===11節===
'''ガッリア人の派閥性'''
*① Quoniam ad hunc locum perventum est,
**この地(ゲルマーニア)にまで到達したので、
*non alienum esse videtur de Galliae Germaniaeque moribus et, quo differant hae nationes inter sese proponere.
**[[w:ガリア|ガッリア]]と[[w:ゲルマニア|ゲルマーニア]]の風習について、これらの種族が互いにどのように異なるか述べることは不適切でないと思われる。
*② In Gallia non solum in omnibus civitatibus atque in omnibus <u>[[wikt:en:pagus#Latin|pagis]]</u> partibusque,
**ガッリアにおいては、すべての部族において、さらにすべての<u>郷</u>や地方においてのみならず、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''pagus'' (郷) はここでは、部族の領土の農村区画を指す行政用語<ref name="pagus">''[[w:en:Pagus]]'' 等を参照。</ref>。)</span>
*sed paene etiam in singulis domibus factiones sunt,
**ほとんどの個々の氏族においてさえも、派閥があり、
*earumque factionum principes sunt,
**それらの派閥には、領袖がいる。
*③ qui summam auctoritatem eorum iudicio habere existimantur,
**その者(領袖)らは、彼ら(派閥)の判断に対して、最高の影響力を持っていると考えられている。
*quorum ad arbitrium iudiciumque summa omnium rerum consiliorumque redeat.
**すべての事柄と協議は結局のところ、その者(領袖)らの裁量や判断へ帰する。
*④ Idque eius rei causa antiquitus institutum videtur,
**それは、それらの事柄のために昔から取り決められたものと見られ、
*ne quis ex plebe contra potentiorem auxilii egeret:
**平民のある者が、より権力のある者に対して、援助を欠くことがないように、ということである。
*suos enim quisque opprimi et circumveniri non patitur,
**すなわち(領袖たちの)誰も、身内の者たちが抑圧されたり欺かれたりすることを容認しない。
*neque, aliter si faciat, ullam inter suos habet auctoritatem.
**もし(領袖が)そうでなくふるまったならば、身内の者たちの間で何ら影響力を持てない。
*⑤ Haec eadem ratio est in summa totius Galliae;
**これと同じ理屈が、ガッリア全体の究極において存在する。
*namque omnes civitates in partes divisae sunt duas.
**すなわち、すべての部族が二つの党派に分けられているのである。
===12節===
'''ハエドゥイ族、セクァニ族、レミ族の覇権争い'''
*① Cum Caesar in Galliam venit,
**カエサルがガッリアに来たときに、
*alterius factionis principes erant Haedui, alterius Sequani.
**(二つの)派閥の一方の盟主は[[w:ハエドゥイ族|ハエドゥイ族]]であり、他方は[[w:セクァニ族|セクァニ族]]であった。
**:(訳注:第1巻31節の記述によれば、ハエドゥイ族と[[w:アルウェルニ族|アルウェルニ族]]がそれぞれの盟主であった。
**:カエサルが本節でアルウェルニ族の名を伏せている理由は不明である。
**:また、[[w:ストラボン|ストラボン]]によれば<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.330)</ref>、ハエドゥイ族とセクァニ族の敵対関係においては、
**:両部族を隔てるアラル川の水利権(川舟の通行税)をめぐる争いが敵意を助長していたという。)
*② Hi cum per se minus valerent,
**後者(セクァニ族)は自力ではあまり優勢ではなかったので、
*quod summa auctoritas antiquitus erat in Haeduis
**というのは、昔から最大の影響力はハエドゥイ族にあって、
*magnaeque eorum erant clientelae,
**彼ら(ハエドゥイ族)には多くの庇護民があったからであるが、
*Germanos atque Ariovistum sibi adiunxerant
**[[w:ゲルマニア|ゲルマニア]]人と[[w:アリオウィストゥス|アリオウィストゥス]]を自分たちに会盟させ、
*eosque ad se magnis iacturis pollicitationibusque perduxerant.
**多くの負担と約束で 彼らを自分たちのところに引き入れた。
*③ Proeliis vero compluribus factis secundis
**実にいくつもの戦闘を順調に行なって、
*atque omni nobilitate Haeduorum interfecta
**ハエドゥイ族のすべての高貴な者たちを殺害して、
*tantum potentia antecesserant,
**かなりの勢力で抜きん出たので、
*④ ut magnam partem clientium ab Haeduis ad se traducerent
**結果として、ハエドゥイ族から庇護民の大部分を自分たちへ味方に付けて、
*obsidesque ab iis principum filios acciperent
**彼らから領袖の息子たちを人質として受け取り、
*et publice iurare cogerent nihil se contra Sequanos consilii inituros,
**自分たち(ハエドゥイ族)がセクァニ族に対して何ら謀計を始めるつもりではない、と公に誓うことを強いて、
*et partem finitimi agri per vim occupatam possiderent
**近隣の土地の一部を力ずくで占領して所有地とした。
*Galliaeque totius principatum obtinerent.
**ガッリア全体の指導権を手に入れた。
*⑤ Qua necessitate adductus
**それにより、やむを得ずに動かされて、
*Diviciacus auxilii petendi causa Romam ad senatum profectus infecta re redierat.
**[[w:ディウィキアクス|ディウィキアクス]]は支援を求めるために[[w:ローマ|ローマ市]]に元老院のところへ赴いたが、事を成就せずに帰った。
*⑥ Adventu Caesaris facta commutatione rerum,
**カエサルの到来で事態の変化がなされて、
*obsidibus Haeduis redditis,
**ハエドゥイ族の人質たちは戻されて、
*veteribus clientelis restitutis,
**昔からの庇護民が復帰して、
*novis per Caesarem comparatis,
**カエサルを通じて新参者たちを仲間にした。
*quod ii qui se ad eorum amicitiam adgregaverant,
**というのは、彼ら(ハエドゥイ族)の友好のもとに仲間となっていた者たちが、
*⑦ meliore condicione atque aequiore imperio se uti videbant,
**(セクァニ族)より良い条件とより公平な支配を享受しているように見えて、
*reliquis rebus eorum gratia dignitateque amplificata
**ほかの事柄においても彼ら(ハエドゥイ族)の信望と品格がより増されて、
*Sequani principatum dimiserant.
**セクァニ族は指導権を放棄したのだ。
*In eorum locum Remi successerant:
**彼ら(セクァニ族)の地位において、[[w:レミ族|レミ族]]が取って代わった。
*quos quod adaequare apud Caesarem gratia intellegebatur,
**その者ら(レミ族)はカエサルのもとで信望において(ハエドゥイ族と)同等であると認識されたので、
*ii qui propter veteres inimicitias nullo modo cum Haeduis coniungi poterant,
**昔からの敵対関係のためにハエドゥイ族とどのようなやり方でも結ぶことができなかった者たちは、
*se Remis in clientelam dicabant.
**レミ族との庇護関係に自らを委ねたのだ。
*⑧ Hos illi diligenter tuebantur;
**この者ら(レミ族)はあの者ら(庇護民)を誠実に保護して、
*ita et novam et repente collectam auctoritatem tenebant.
**このようにして、最近に得られた新しい影響力を保持した。
*⑨ Eo tum statu res erat, ut longe principes haberentur Haedui,
**当時、ハエドゥイ族の位置付けは、まったく盟主と見なされるような状態であって、
*secundum locum dignitatis Remi obtinerent.
**レミ族の品格は第二の地位を占めたのだ。
===13節===
'''ガッリア人の社会階級、平民およびドルイドについて(1)'''
*① In omni Gallia eorum hominum, qui aliquo sunt numero atque honore, genera sunt duo.
**全ガッリアにおいて、何らかの地位や顕職にある人々の階級は二つである。
'''平民について'''
*Nam plebes paene servorum habetur loco,
**これに対して、平民はほとんど奴隷の地位として扱われており、
*quae nihil audet per se, nullo adhibetur consilio.
**自分たちを通じては何らあえてすることはないし、誰も相談をされることもない。
*② Plerique, cum aut aere alieno aut magnitudine tributorum aut iniuria potentiorum premuntur,
**多くの者は、あるいは負債、あるいは貢納の多さ、あるいはより権力のある者に抑圧されているので、
*sese in servitutem dicant.
**自らを奴隷身分に差し出している。
*Nobilibus in hos eadem omnia sunt iura, quae dominis in servos.
**高貴な者たちには彼ら(平民)において、奴隷において主人にあるのと同様なすべての権利がある。
'''ドルイドについて'''
*③ Sed de his duobus generibus alterum est druidum, alterum equitum.
**ともかく、これら二つの階級について、一方は[[w:ドルイド|ドルイド]](神官)であり、他方は[[w:騎士|騎士]]である。
*④ Illi rebus divinis intersunt, sacrificia publica ac privata procurant, religiones interpretantur:
**前者(ドルイド)は神事に介在し、公・私の<ruby><rb>[[w:供犠|供犠]]</rb><rp>(</rp><rt>くぎ</rt><rp>)</rp></ruby>を司り、信仰のことを講釈する。
**:(訳注:供犠とは、人や獣を生け贄として神前に捧げることである。<ruby><rb>[[w:人身御供|人身御供]]</rb><rp>(</rp><rt>ひとみごくう</rt><rp>)</rp></ruby>とも。)
[[画像:Two_Druids.PNG|thumb|right|200px|二人のドルイド。フランスの[[w:オータン|オータン]]、すなわちガッリア中部のビブラクテ辺りで発見された[[w:レリーフ|レリーフ]]。]]
*ad hos magnus adulescentium numerus disciplinae causa concurrit,
**この者ら(ドルイド)のもとへ、若者の多数が教えのために群り集まり、
*magnoque hi sunt apud eos honore.
**この者ら(ドルイド)は、彼ら(ガッリア人)のもとで大いなる地位にある。
*⑤ Nam fere de omnibus controversiis publicis privatisque constituunt,
**なぜなら(ドルイドは)ほとんどすべての公・私の訴訟ごとに判決をするのである。
*et, si quod est admissum facinus, si caedes facta,
**もし何らかの罪悪が犯されれば、もし殺害がなされれば、
*si de hereditate, de finibus controversia est,
**もし、遺産について、地所について、訴訟ごとがあれば、
*idem decernunt, praemia poenasque constituunt;
**同じ人たち(ドルイド)が裁決し、補償や懲罰を判決するのである。
*⑥ si qui aut privatus aut populus eorum decreto non stetit, sacrificiis interdicunt.
**もし何らかの個人あるいは集団が彼ら(ドルイド)の裁決を遵守しなければ、(その者らに)供犠を禁じる。
*Haec poena apud eos est gravissima.
**これは、彼ら(ガッリア人)のもとでは、非常に重い懲罰である。
*⑦ Quibus ita est interdictum,
**このように(供犠を)禁じられた者たちは、
*hi numero impiorum ac sceleratorum habentur,
**彼らは、不信心で不浄な輩と見なされて、
*his omnes decedunt, aditum sermonemque defugiunt,
**皆が彼らを忌避して、近づくことや会話を避ける。
*ne quid ex contagione incommodi accipiant,
**(彼らとの)接触から、何らかの災厄を負うことがないようにである。
*neque his petentibus ius redditur
**彼らが請願しても(元通りの)権利は戻されないし、
*neque honos ullus communicatur.
**いかなる地位(に就くこと)も許されない。
*⑧ His autem omnibus druidibus praeest unus,
**ところで、これらすべてのドルイドを一人が指導しており、
*qui summam inter eos habet auctoritatem.
**その者は彼ら(ドルイドたち)の間に最高の影響力を持っている。
*⑨ Hoc mortuo
**この者が死んだならば、
*aut, si qui ex reliquis excellit dignitate, succedit,
**あるいは、もし残りの者たちの中から品格に秀でた者がおれば、継承して、
*aut, si sunt plures pares, suffragio druidum {adlegitur}<ref>adlegitur はβ系写本の記述で、α系写本にはない。</ref>;
**あるいは、もしより多くの者たちが同等であれば、ドルイドの投票で{選ばれる}。
*nonnumquam etiam armis de principatu contendunt.
**ときどきは、武力でさえも首座を争うことがある。
*⑩ Hi certo anni tempore
**彼ら(ドルイド)は年間の定められた時期に
*in finibus Carnutum, quae regio totius Galliae media habetur, considunt in loco consecrato.
**ガッリア全体の中心地方と見なされている[[w:カルヌテス族|カルヌテス族]]の領土において、[[w:聖地|聖地]]に集合する。
**:(訳注:これはカエサルが支配する「ガッリア全体」の話で、他の地方には別の中心地があったようである。)
*Huc omnes undique, qui controversias habent, conveniunt
**ここへ、至る所から訴訟などを持つあらゆる者たちが集まって、
*eorumque decretis iudiciisque parent.
**彼ら(ドルイド)の裁決や判断に服従する。
*⑪ Disciplina in Britannia reperta atque inde in Galliam translata esse existimatur,
**(ドルイドの)教えは[[w:ブリタンニア|ブリタンニア]]で見出され、そこからガッリアにもたらされたと考えられている。
**:(訳注:これに対して、[[w:シケリアのディオドロス|ディオドロス]]は、ガッリア人の信仰は[[w:ピュタゴラス教団|ピュタゴラスの教説]]であると伝えている<ref>ディオドロス『神代地誌』(前掲、p.408)</ref>。
**:[[w:ストラボン|ストラボン]]によれば、これは東方のゲタエ人([[w:en:Getae|Getae]];[[w:トラキア|トラキア]]系ないし[[w:ダキア|ダキア]]系)を通じて取り入れたものだという<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、第7巻 第3章 第5節)</ref>。)
*⑫ et nunc, qui diligentius eam rem cognoscere volunt,
**今でも、その事柄をより入念に探究することを欲する者たちは、
*plerumque illo discendi causa proficiscuntur.
**たいてい、かの地に研究するために旅立つ。
===14節===
'''ドルイドについて(2)'''
*① Druides a bello abesse consuerunt
**[[w:ドルイド|ドルイド]]たちは、戦争に関与しない習慣であり、
*neque tributa una cum reliquis pendunt;
**ほかの者と一緒に貢納(租税)を支払うこともない。
*militiae vacationem omniumque rerum habent immunitatem.
**[[w:徴兵制度|兵役]]の免除や、すべての事柄において免除特権を持っているのである。
[[画像:Druids,_in_the_early_morning_glow_of_the_sun.jpg|thumb|right|200px|現代イギリスのドルイド教復興主義者たち]]
*② Tantis excitati praemiis
**このような特典に駆り立てられて
*et sua sponte multi in disciplinam conveniunt
**自らの意思で多くの者が教え(の場)に集まっても来るし、
*et a parentibus propinquisque mittuntur.
**親たちや縁者たちによって送られても来る。
*③ Magnum ibi numerum versuum ediscere dicuntur.
**(彼らは)そこで詩句の多数を習得すると言われている。
*Itaque annos nonnulli vicenos in disciplina permanent.
**こうして、少なからぬ者たちが、20年にもわたって教え(の場)に残留する。
[[画像:Dédicace_de_Segomaros_(inscription gallo-grecque).png|thumb|right|200px|ギリシア文字で刻まれたガッリアの碑文]]
*Neque fas esse existimant ea litteris mandare,
**それら(の詩句)を文字で刻み込むことは、神意に背くと考えている。
*cum in reliquis fere rebus, publicis privatisque rationibus, Graecis litteris utantur.
**もっとも、ほかの事柄においては、公・私の用件に[[w:ギリシア文字|ギリシア文字]]を用いる。
*④ Id mihi duabus de causis instituisse videntur,
**それは、私(カエサル)には、二つの理由で(ドルイドが)定めたことと思われる。
**:(訳注:これは、カエサルが自らを一人称で示している珍しい個所である。)
*quod neque in vulgum disciplinam efferri velint
**というのは、教えが一般大衆にもたらされることは欲していないし、
*neque eos, qui discunt, litteris confisos minus memoriae studere:
**(教えを)学ぶ者が、文字を頼りにして、あまり暗記することに努めなくならないようにである。
[[画像:Dying_gaul.jpg|thumb|right|200px|『[[w:瀕死のガリア人|瀕死のガリア人]]』([[w:en:Dying_Gaul|Dying Gaul]])像(ローマ市の[[w:カピトリーノ美術館|カピトリーノ美術館]])]]
*quod fere plerisque accidit, ut
**というのも、ほとんど多くの場合に起こることには、
*praesidio litterarum diligentiam in perdiscendo ac memoriam remittant.
**文字の助けによって、入念に猛勉強することや暗記することを放棄してしまうのである。
*⑤ In primis hoc volunt persuadere,
**とりわけ、彼ら(ドルイド)が説くことを欲しているのは、
*non interire animas, sed ab aliis post mortem transire ad alios,
**霊魂は滅びることがないのみならず、死後にある者から別のある者へ乗り移るということである。
**:(訳注:ガッリア人の[[w:輪廻転生|転生信仰]]は、[[w:ピュタゴラス教団|ピュタゴラスの教説]]であると、[[w:シケリアのディオドロス|ディオドロス]]が伝えている<ref>ディオドロス『神代地誌』(前掲、p.408)</ref>。)
*atque hoc maxime ad virtutem excitari putant metu mortis neglecto.
**これによって(ガッリア人は)死の恐怖に無頓着になって最も武勇へ駆り立てられると(ドルイドは)思っている。
[[画像:Universum.jpg|thumb|right|200px|古代以来の伝統的な世界観における天空と平らな大地。カルデアやギリシアを除けば、丸い地球という観念は知られていなかった。]]
*Multa praeterea de sideribus atque eorum motu,
**さらに多く、星々とその動きについて、
*de mundi ac terrarum magnitudine, de rerum natura,
**天空と大地の大きさについて、物事の本質について、
*de deorum immortalium vi ac potestate
**不死の神々の力と支配について、
*disputant et iuventuti tradunt.
**研究して、青年たちに教示するのである。
<br>
<br>
*('''訳注:ドルイドについて'''
:ケルト社会の神官・祭司・僧などとされるドルイドについては、おそらくは[[w:ポセイドニオス|ポセイドニオス]]、そしてカエサル、
:および[[w:シケリアのディオドロス|ディオドロス]]<ref>ディオドロス『神代地誌』(前掲、p.410-p.411)</ref>、[[w:ストラボン|ストラボン]]<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.341-p.342)</ref>、ポンポニウス・メラ<ref>ポンポニウス・メラ『世界地理』(前掲、p.549)</ref>などのギリシア人・ローマ人の著述家たちがそれぞれ
:書き残しているために同時代や現代に知られている。しかし、本節にもあるように、その秘密主義からか、
:古代ギリシア・ローマの著作にあるほかには、その詳細については不明である。)
===15節===
[[画像:BIATEC_pri_NBS_1.jpg|thumb|right|200px|ケルト系の王ビアテック([[w:en:Biatec|Biatec]])の騎馬像([[w:スロバキア国立銀行|スロバキア国立銀行]])。彼はBC1世紀のケルトの硬貨に刻まれた人物で、現代[[w:スロバキア・コルナ|スロバキアの5コルナ]]硬貨にも刻まれている。]]
[[画像:Bige_Musée_de_Laon_050208.jpg|thumb|right|200px|二頭立て二輪馬車([[w:チャリオット|戦車]])に乗るガリア人像(仏・ラン博物館)]]
'''ガッリア人の騎士階級について'''
*① Alterum genus est equitum.
**(ドルイドと並ぶ)もう一つの階級は、[[w:騎士|騎士]]である。
*Hi, cum est usus atque aliquod bellum incidit
**彼らは、必要とされ、かつ何らかの戦争が勃発したときには、
*─ quod fere ante Caesaris adventum quotannis accidere solebat,
**─ それ(戦争)はカエサルの到来以前にはほとんど毎年のように起こるのが常であり、
*uti aut ipsi iniurias inferrent aut inlatas propulsarent ─,
**自身が侵犯行為を引き起こすためか、あるいは引き起こされて撃退するためであったが、─
*omnes in bello versantur,
**総勢が戦争に従事した。
*② atque eorum ut quisque est genere copiisque amplissimus,
**さらに彼らは、高貴な生まれで財産が非常に大きければ大きいほど、
**:(訳注:ut quisque ~ ita;おのおのが~であればあるほどますます)
*ita plurimos circum se ambactos clientesque habet.
**自らの周囲に非常に多くの臣下や庇護民たちを侍らせる。
*Hanc unam gratiam potentiamque noverunt.
**(騎士たちは)これが信望や権勢(を示すこと)の一つであると認識しているのである。
===16節===
'''ガッリア人の信仰と生け贄、ウィッカーマン'''
*① Natio est omnis Gallorum admodum dedita religionibus,
**ガッリア人のすべての部族民は、まったく信仰行為に身を捧げている。
*② atque ob eam causam,
**その理由のために、
*qui sunt adfecti gravioribus morbis
**非常に重い病気を患った者たち
*quique in proeliis periculisque versantur,
**および戦闘において危険に苦しめられる者たちは、
*aut pro victimis homines immolant
**あるいは<ruby><rb>[[w:生贄|生け贄]]</rb><rp>(</rp><rt>いけにえ</rt><rp>)</rp></ruby>の獣(犠牲獣)の代わりに人間を供えたり、
*aut se immolaturos vovent,
**あるいは自らを犠牲にするつもりであると誓願し、
*administrisque ad ea sacrificia druidibus utuntur,
**その<ruby><rb>[[w:供犠|供犠]]</rb><rp>(</rp><rt>くぎ</rt><rp>)</rp></ruby>を執り行う者として[[w:ドルイド|ドルイド]]を利用するのである。
*③ quod, pro vita hominis nisi hominis vita reddatur,
**というのは(一人の)人間の生命のためには、(もう一人の)人間の生命が償われない限り、
*non posse deorum immortalium numen placari arbitrantur,
**不死の神々の<ruby><rb>御霊</rb><rp>(</rp><rt>みたま</rt><rp>)</rp></ruby>がなだめられることができないと思われているからである。
*publiceque eiusdem generis habent instituta sacrificia.
**同じような類いの供儀が公けに定められているのである。
[[画像:WickerManIllustration.jpg|thumb|right|310px|柳の枝で編んだ巨人[[w:ウィッカーマン|ウィッカーマン]]([[w:en:Wicker_Man|Wicker Man]])の想像画(18世紀)。この特異な風習は、近代になって人々の興味をかき立て、いくつもの想像画が描かれた<ref>例えば『ケルト人─蘇るヨーロッパ<幻の民>』C.エリュエール著、鶴岡真弓監修、創元社、p.130の挿絵などを参照。</ref>。1973年にはイギリスで映画化され<ref>“[[w:en:The Wicker Man (1973 film)|The Wicker Man]]”はウィッカーマンを題材にした1973年のイギリスのカルト映画作品。</ref>、2006年にはアメリカなどでも映画化された<ref>“[[w:en:The Wicker Man (2006 film)|The Wicker Man]]”は上記作品をリメイクした2006年のアメリカ・カナダ・ドイツの映画作品。</ref>。]]
[[画像:Burning_wicker_man_by_Bruce_McAdam.jpg|thumb|right|100px|スコットランドの野外博物館で燃やされるウィッカーマン(2008年)]]
'''ウィッカーマン'''
*④ Alii immani magnitudine simulacra habent,
**ある者たちは、恐ろしく大規模な像を持って、
*quorum contexta viminibus membra vivis hominibus complent;
**その柳の枝で編み込まれた肢体を人間たちで満杯にして、
*quibus succensis
**それらを燃やして、
*circumventi flamma exanimantur homines.
**人々は炎に取り巻かれて息絶えさせられるのである。
*⑤ Supplicia eorum qui in furto aut in latrocinio
**窃盗あるいは追い剥ぎに関わった者たちを処刑することにより、
*aut aliqua noxia sint comprehensi,
**あるいは何らかの罪状により捕らわれた者たち(の処刑)により、
*gratiora dis immortalibus esse arbitrantur;
**不死の神々に感謝されると思っている。
*sed, cum eius generis copia defecit,
**しかしながら、その類いの量が欠けたときには、
*etiam ad innocentium supplicia descendunt.
**潔白な者たちさえも犠牲にすることに頼るのである。
<br><br>
:('''訳注''':このような'''[[w:ウィッカーマン|ウィッカーマン]]'''の供犠については[[w:ストラボン|ストラボン]]も伝えており<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.343)</ref>、
:[[w:人身御供|人身御供]]の種類の一つとして、干し草やたきぎで巨像を作り、その中へあらゆる
:家畜・野生動物や人間たちを投げ込んで丸焼きにする習慣があったという。
: また、[[w:シケリアのディオドロス|ディオドロス]]<ref>ディオドロス『神代地誌』(前掲、p.410~p.411)</ref>やストラボンによれば、ドルイドはむしろ'''[[w:予言|予言者]]・[[w:占い|占い師]]'''
:であるという。ドルイドが重要な問題について占うときには、供犠される人間の
:腹または背中を剣などで刺して、犠牲者の倒れ方、肢体のけいれん、出血の様子
:などを観察して、将来の出来事を占うのだという。)
===17節===
'''ガッリアの神々(ローマ風解釈)'''
*① Deum maxime [[w:la:Mercurius_(deus)|Mercurium]] colunt.
**(ガッリア人は)神々のうちでとりわけ[[w:メルクリウス|メルクリウス]]を崇拝する。
**:(訳注:メルクリウスは[[w:ローマ神話|ローマ神話]]の神名であり、本節の神名はすべてローマ風解釈である。)
*Huius sunt plurima simulacra:
**彼の偶像が最も多い。
*hunc omnium inventorem artium ferunt,
**(ガッリア人は)彼をすべての技芸の発明者であると言い伝えており、
*hunc viarum atque itinerum ducem,
**彼を道および旅の案内者として、
*hunc ad quaestus pecuniae mercaturasque habere vim maximam arbitrantur.
**彼が金銭の利得や商取引で絶大な力を持つと思われている。
[[画像:Taranis_Jupiter_with_wheel_and_thunderbolt_Le_Chatelet_Gourzon_Haute_Marne.jpg|thumb|right|200px|ガッリアの雷神タラニス([[w:en:Taranis|Taranis]])の神像([[w:en:National_Archaeological_Museum_(France)|フランス国立考古学博物館]])。雷を司ることからローマ神話のユピテルと同一視された。左手に車輪、右手に稲妻を持っている。]]
[[画像:God_of_Etang_sur_Arroux_possible_depiction_of_Cernunnos.jpg|thumb|right|200px|ガッリアの神ケルヌンノス([[w:en:Cernunnos|Cernunnos]])の神像(フランス国立考古学博物館)。]]
*Post hunc [[w:la:Apollo|Apollinem]] et [[w:la:Minerva|Martem]] et [[w:la:Iuppiter|Iovem]] et [[w:la:Mars_(deus)|Minervam]].
**彼に続いて、[[w:アポローン|アポロ]]と[[w:マルス (ローマ神話)|マルス]]と[[w:ユーピテル|ユピテル]]と[[w:ミネルウァ|ミネルウァ]]を(ガッリア人は崇拝する)。
*② De his eandem fere, quam reliquae gentes, habent opinionem:
**これら(の神々)について、ほかの種族とほぼ同じ見解を持っている。
*Apollinem morbos depellere,
**アポロは病気を追い払い、
*Minervam operum atque artificiorum initia tradere,
**ミネルウァは工芸や技術の初歩を教示し、
*Iovem imperium caelestium tenere,
**ユピテルは天界の統治を司り、
*Martem bella regere.
**マルスは戦争を支配する。
*③ Huic, cum proelio dimicare constituerunt,
**彼(マルス)には、(ガッリア人が)戦闘で干戈を交えることを決心したときに、
*ea quae bello ceperint, plerumque devovent:
**戦争で捕獲したものを、たいていは奉納するものである。
*cum superaverunt, animalia capta immolant
**(戦闘で)打ち勝ったときには、捕獲された獣を生け贄に供えて、
*reliquasque res in unum locum conferunt.
**残りの物を1か所に運び集める。
*④ Multis in civitatibus harum rerum ex(s)tructos tumulos locis consecratis conspicari licet;
**多くの部族において、これらの物が積み上げられた塚を、神聖な地で見ることができる。
*⑤ neque saepe accidit, ut neglecta quispiam religione
**何らかの者が信仰を軽視するようなことが、しばしば起こることはない。
*aut capta apud se occultare aut posita tollere auderet,
**捕獲されたものを自分のもとに隠すこと、あるいは(塚に)置かれたものをあえて運び去ることは。
*gravissimumque ei rei supplicium cum cruciatu constitutum est.
**そんな事には、拷問を伴う最も重い刑罰が決められている。
**:(訳注:最も重い刑罰とは、処刑であると思われる。)
<br>
:(訳注:'''ローマ風解釈について'''
:ガッリアなどケルト文化の社会においては、非常に多くの神々が信仰されており、
:ケルト語による多くの神名が知られており、考古学的にも多くの神像が遺されている。
:しかしながら、これらの神々がどのような性格や権能を持っていたのか、詳しくは判っていない。
:ローマ人は、数多くのケルトの神々をローマ神話の神々の型に当てはめて解釈した。
:[[w:タキトゥス|タキトゥス]]はこれを「[[w:ローマ風解釈|ローマ風解釈]]」[[w:en:Interpretatio_Romana#Roman_version|Interpretatio Romana]] <ref>タキトゥス『ゲルマーニア』43章([[s:la:De_origine_et_situ_Germanorum_(Germania)#XLIII|ラテン語原文]])を参照。</ref>と呼んでいる<ref>『ケルト事典』(前掲)「ローマ風解釈」の項を参照。</ref>。)
===18節===
[[画像:Gaul_god_Sucellus.jpg|thumb|right|200px|ガッリアの神スケッルス([[w:en:Sucellus|Sucellus]])の神像。[[w:冥界|冥界]]の神とされ、ディス・パテルと同一視されたと考えられている。]]
'''ガッリア人の時間や子供についての観念'''
*① Galli se omnes ab Dite patre prognatos praedicant
**ガッリア人は、自分たちは皆、ディス・パテルの末裔であると公言しており、
**:(訳注:ディス・パテル [[w:en:Dis_Pater|Dis Pater]] も前節と同様にローマ神話の神名である。)
*idque ab druidibus proditum dicunt.
**それは[[w:ドルイド|ドルイド]]たちにより伝えられたと言う。
;時間の観念
*② Ob eam causam spatia omnis temporis non numero dierum, sed noctium finiunt;
**その理由のために、すべての[[w:時間|時間]]の間隔を、[[w:昼|昼間]]の数ではなく、[[w:夜|夜間]](の数)で区切る。
*dies natales et mensum et annorum initia sic observant, ut noctem dies subsequatur.
**誕生日も、月や年の初めも、夜間に昼間が続くように注意を払っている。
;子供についての観念
*③ In reliquis vitae institutis hoc fere ab reliquis differunt,
**人生のほかの風習において、以下の点でほかの者たち(種族)からほぼ異なっている。
*quod suos liberos, nisi cum adoleverunt, ut munus militiae sustinere possint,
**自分の子供たちが、[[w:徴兵制度|兵役の義務]]を果たすことができるように成長したときでない限り、
*palam ad se adire non patiuntur
**公然と自分のところへ近づくことは許されないし、
*filiumque puerili aetate in publico in conspectu patris adsistere turpe ducunt.
**少年期の息子が公けに父親の見ているところでそばに立つことは恥ずべきと見なしている。
===19節===
'''ガッリア人の婚姻と財産・葬儀の制度'''
*① Viri, quantas pecunias ab uxoribus dotis nomine acceperunt,
**夫は、妻から[[w:持参金|持参金]]の名目で受け取った金銭の分だけ、
*tantas ex suis bonis aestimatione facta cum dotibus communicant.
**自分の財産のうちから見積もられた分を、持参金とともに一つにする。
*② Huius omnis pecuniae coniunctim ratio habetur fructusque servantur:
**これらのすべての金銭は共同に算定が行なわれて、[[w:利子|利子]]が貯蓄される。
*uter eorum vita superarit,
**彼ら2人のいずれかが、人生において生き残ったら、
*ad eum pars utriusque cum fructibus superiorum temporum pervenit.
**双方の分がかつての期間の利子とともに(生き残った)その者(の所有)に帰する。
[[画像:Hallstatt_culture_ramsauer.jpg|thumb|right|200px|[[w:ハルシュタット文化|ハルシュタット文化]]の[[w:墳丘墓|墳丘墓]]から発掘された遺骸と[[w:副葬品|副葬品]](19世紀の模写)。ガッリアなどではハルシュタット文化後期から[[w:土葬|土葬]]が普及したが、[[w:ラ・テーヌ文化|ラ・テーヌ文化]]中期から再び[[w:火葬|火葬]]が主流になったと考えられている。]]
*③ Viri in uxores, sicuti in liberos, vitae necisque habent potestatem;
**夫は、妻において、子供におけるのと同様に、生かすも殺すも勝手である。
*et cum pater familiae inllustriore loco natus decessit, eius propinqui conveniunt
**上流身分に生まれた家族の父親が死去したとき、彼の近縁の者たちが集まって、
*et de morte, si res in suspicionem venit, de uxoribus in servilem modum quaestionem habent,
**死について、もし疑念が出来したならば、妻について、[[w:奴隷|奴隷]]におけるようなやり方で審問して、
*et si compertum est, igni atque omnibus tormentis excruciatas interficiunt.
**もし(疑念が)確認されたならば、火やあらゆる責め道具によって[[w:拷問|拷問]]にかけて誅殺する。
*④ Funera sunt pro cultu Gallorum magnifica et sumptuosa;
**[[w:葬儀|葬儀]]は、ガッリア人の生活習慣の割には派手でぜいたくなものである。
*omniaque quae vivis cordi fuisse arbitrantur in ignem inferunt, etiam animalia,
**生前に大切であったと思われるもの一切合財を、獣でさえも、火の中に投げ入れる。
*ac paulo supra hanc memoriam servi et clientes, quos ab his dilectos esse constabat,
**さらに、より以前のこの記憶では、彼ら(亡者)により寵愛されていたことが知られていた奴隷や庇護民をも、
*iustis funeribus confectis una cremabantur.
**慣習による葬儀が成し遂げられたら、一緒に火葬されていたのである。
===20節===
'''ガッリア部族国家の情報統制'''
*① Quae civitates commodius suam rem publicam administrare existimantur,
**より適切に自分たちの公儀(=国家体制)を治めると考えられているような部族は、
*habent legibus sanctum,
**(以下のように)定められた法度を持つ。
*si quis quid de re publica a finitimis rumore aut fama acceperit,
**もし、ある者が公儀に関して近隣の者たちから何らかの噂や風聞を受け取ったならば、
*uti ad magistratum deferat neve cum quo alio communicet,
**官吏に報告して、他の者と伝え合ってはならないと。
*② quod saepe homines temerarios atque imperitos falsis rumoribus terreri
**というのは、無分別で無知な人間たちはしばしば虚偽の噂に恐れて、
*et ad facinus impelli et de summis rebus consilium capere cognitum est.
**罪業に駆り立てられ、重大な事態についての考えを企てると認識されているからである。
*③ Magistratus quae visa sunt occultant,
**官吏は、(隠すことが)良いと思われることを隠して、
*quaeque esse ex usu iudicaverunt, multitudini produnt.
**有益と判断していたことを、民衆に明らかにする。
*De re publica nisi per concilium loqui non conceditur.
**公儀について、集会を通じてでない限り、語ることは認められていない。
==ゲルマーニアの風習と自然について==
===21節===
'''ゲルマーニア人の信仰と性'''
*① Germani multum ab hac consuetudine differunt.
**[[w:ゲルマニア|ゲルマーニア]]人はこれに対し、風習が大いに異なっている。
*Nam neque druides habent, qui rebus divinis praesint, neque sacrificiis student.
**すなわち、神事を司る[[w:ドルイド|ドルイド]]も持たないし、供犠に熱心でもない。
*② Deorum numero
**神々に数えるものとして、
*eos solos ducunt, quos cernunt et quorum aperte opibus iuvantur, Solem et Vulcanum et Lunam,
**(彼らが)見分けるものや明らかにその力で助けられるもの、[[w:太陽|太陽]]と[[w:ウォルカヌス|ウォルカヌス]](火の神)と[[w:月|月]]だけを信仰して、
*reliquos ne fama quidem acceperunt.
**ほかのものは風聞によってさえも受け入れていない。
**:(訳注:これに対して、[[w:タキトゥス|タキトゥス]]は、ゲルマーニア人はメルクリウスやマルスなどを信仰すると伝えている<ref>タキトゥス『ゲルマーニア』2章・9章を参照</ref>。)
*③ Vita omnis in venationibus atque in studiis rei militaris consistit:
**すべての人生は、[[w:狩猟|狩猟]]に、および[[w:軍事|軍事]]への執心に依拠しており、
*ab parvulis labori ac duritiae student.
**幼時より労役や負担に努める。
*④ Qui diutissime impuberes permanserunt, maximam inter suos ferunt laudem:
**最も長く純潔に留まった者は、自分たちの間で最大の賞賛を得る。
*hoc ali staturam, ali vires nervosque confirmari putant.
**これによって、ある者には背の高さが、ある者には力と筋肉が強化されると、思っている。
*⑤ Intra annum vero vicesimum feminae notitiam habuisse in turpissimis habent rebus;
**20歳にならない内に女を知ってしまうことは、とても恥ずべきことであると見なしている。
*cuius rei nulla est occultatio,
**その(性の)事を何ら隠すことはない。
*quod et promiscue in fluminibus perluuntur
**というのは、川の中で(男女が)混じって入浴しても、
*et pellibus aut parvis renonum tegimentis utuntur, magna corporis parte nuda.
**なめし皮や、小さな毛皮の覆いを用いるが、体の大部分は裸なのである。
===22節===
'''ゲルマーニア人の土地制度'''
*① Agri culturae non student,
**(ゲルマーニア人は)[[w:農耕|土地を耕すこと]]に熱心ではなく、
*maiorque pars eorum victus in lacte, caseo, carne consistit.
**彼らの大部分は、生活の糧が[[w:乳|乳]]、[[w:チーズ|チーズ]]、[[w:肉|肉]]で成り立っている。
*② Neque quisquam agri modum certum aut fines habet proprios;
**何者も、土地を確定した境界で、しかも持続的な領地として、持ってはいない。
*sed magistratus ac principes in annos singulos
**けれども、官吏や領袖たちは、各年ごとに、
*gentibus cognationibusque hominum, quique una coierunt,
**一緒に集住していた種族や血縁の人々に、
*quantum et quo loco visum est agri adtribuunt
**適切と思われる土地の規模と場所を割り当てて、
*atque anno post alio transire cogunt.
**翌年には他(の土地)へ移ることを強いるのである。
**:(訳注:[[ガリア戦記 第4巻#1節|第4巻1節]]には、スエービー族の説明として同様の記述がある。)
*③ Eius rei multas adferunt causas:
**(官吏たちは)その事の多くの理由を説明する。
*ne adsidua consuetudine capti studium belli gerendi agricultura commutent;
**(部族民が)[[w:居住|定住]]する習慣にとらわれて、戦争遂行の熱意を土地を耕すことに変えてしまわないように。
*ne latos fines parare studeant, potentioresque humiliores possessionibus expellant;
**広大な領地を獲得することに熱心になって、有力者たちが弱者たちを地所から追い出さないように。
*ne accuratius ad frigora atque aestus vitandos aedificent;
**寒さや暑さを避けるために(住居を)非常な入念さで建築することがないように。
*ne qua oriatur pecuniae cupiditas, qua ex re factiones dissensionesque nascuntur;
**金銭への欲望が増して、その事から派閥や不和が生ずることのないように。
*ut animi aequitate plebem contineant, cum suas quisque opes cum potentissimis aequari videat.
**おのおのが自分の財産も最有力者のも同列に置かれていると見ることで、心の平静により民衆を抑えるように。
<br>
:(訳注:[[w:ストラボン|ストラボン]]<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.510)</ref>や[[w:タキトゥス|タキトゥス]]<ref>タキトゥス『ゲルマーニア』23章・16章などを参照。26章では農耕についても解説されている。</ref>などの著述家たちも、ゲルマーニアの住民が農耕をせず、
:遊牧民のように移動しながら暮らし、小さな住居に住み、食料を家畜に頼っていると記述している。)
===23節===
'''ゲルマーニア諸部族のあり方'''
*① Civitatibus maxima laus est
**諸部族にとって、最も称賛されることは、
*quam latissime circum se vastatis finibus solitudines habere.
**できる限り広く自分たちの周辺で領土を荒らして荒野に保っておくことである。
*② Hoc proprium virtutis existimant,
**以下のことを(自分たちの)武勇の特質と考えている。
*expulsos agris finitimos cedere,
**近隣の者たちが土地から追い払われて立ち去ること、
*neque quemquam prope {se} audere consistere;
**および、何者も自分たちの近くにあえて定住しないこと、である。
*③ simul hoc se fore tutiores arbitrantur, repentinae incursionis timore sublato.
**他方、これにより、予期せぬ襲撃の恐れを取り除いて、自分たちはより安全であろうと思われた。
*④ Cum bellum civitas aut inlatum defendit aut infert,
**部族に戦争がしかけられて防戦したり、あるいはしかけたりしたときには、
*magistratus, qui ei bello praesint, ut vitae necisque habeant potestatem, deliguntur.
**その戦争を指揮して、生かすも殺すも勝手な権力を持つ将官が選び出される。
*⑤ In pace nullus est communis magistratus,
**平時においては、(部族に)共通の将官は誰もいないが、
*sed principes regionum atque <u>[[wikt:en:pagus#Latin|pagorum]]</u> inter suos ius dicunt controversiasque minuunt.
**地域や<u>郷</u>の領袖たちが、身内の間で判決を下して、訴訟ごとを減らす。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''pagus'' (郷) はここでは、部族の領土の農村区画を指す行政用語<ref name="pagus"/>。)</span>
*⑥ Latrocinia nullam habent infamiam, quae extra fines cuiusque civitatis fiunt,
**それぞれの部族の領土の外で行なう略奪のことは、何ら恥辱とは見なしていない。
*atque ea iuventutis exercendae ac desidiae minuendae causa fieri praedicant.
**さらに、それ(略奪)は、青年たちを訓練することや、怠惰を減らすことのために行なわれる、と公言している。
*⑦ Atque ubi quis ex principibus in concilio dixit
**そして、領袖たちのうちのある者が(次のように)言うや否や、
*se ducem fore, qui sequi velint, profiteantur,
**《自分が(略奪の)引率者となるから、追随したい者は申し出るように》と(言うや否や)、
*consurgunt ii qui et causam et hominem probant, suumque auxilium pollicentur
**(略奪の)口実にも(引率する)人物にも賛同する者は立ち上がって、自らの支援を約束して、
*atque ab multitudine conlaudantur:
**群衆から大いに誉められる。
*⑧ qui ex his secuti non sunt,
**これら(約束した者)のうちで(略奪に)追随しない者は、
*in desertorum ac proditorum numero ducuntur,
**逃亡兵や裏切り者と見なされて、
*omniumque his rerum postea fides derogatur.
**その後は、彼らにとってあらゆる事の信頼が(皆から)拒まれる。
*⑨ Hospitem violare fas non putant;
**客人に暴行することは道理に適うとは思ってはいない。
*qui quacumque de causa ad eos venerunt,
**彼ら(ゲルマーニア人)のところへ理由があって来た者(=客人)は誰であれ、
*ab iniuria prohibent, sanctos habent,
**無法行為から防ぎ、尊ぶべきであると思っている。
*hisque omnium domus patent victusque communicatur.
**彼ら(客人)にとってすべての者の家は開放されており、生活用品は共有される。
**:(訳注:客人への接待ぶりについては、[[w:タキトゥス|タキトゥス]]<ref>タキトゥス『ゲルマーニア』21章を参照。</ref>も伝えている。)
===24節===
[[画像:Celts.svg|thumb|right|200px|ケルト文化の広がり(BC800年~BC400年頃)。ケルト系部族の優越は、[[w:鉄器|鉄器]]文化の発達などによると考えられている。]]
[[画像:Mappa_di_Eratostene.jpg|thumb|right|200px|[[w:エラトステネス|エラトステネス]]の地理観を再現した世界地図(19世紀)。左上に「Orcynia Silva(オルキュニアの森)」とある。]]
[[画像:Hallstatt_LaTene.png|thumb|right|200px|[[w:ハルシュタット文化|ハルシュタット文化]]期と[[w:ラ・テーヌ文化|ラ・テーヌ文化]]期におけるケルト系部族の分布。右上にウォルカエ族(Volcae)やボイイ族(Boii)の名が見える。ボイイ族が居住していた地域はボイオハエムム(Boihaemum)と呼ばれ、[[w:ボヘミア|ボヘミア]](Bohemia)として現在に残る。]]
'''ゲルマーニア人とガッリア人'''
*① Ac fuit antea tempus,
**かつてある時代があって、
*cum Germanos Galli virtute superarent,
**そのとき、[[w:ゲルマニア|ゲルマーニア]]人を[[w:ガリア|ガッリア]]人が武勇で優っており、
*ultro bella inferrent, propter hominum multitudinem agrique inopiam
**人間の多さと土地の欠乏のために(ガッリア人は)自発的に戦争をしかけて、
*trans Rhenum colonias mitterent.
**レーヌス(=[[w:ライン川|ライン川]])の向こう側へ入植者たちを送り込んでいた。
*② Itaque ea quae fertilissima Germaniae sunt loca circum Hercyniam silvam,
**[[w:ヘルキュニア|ヘルキュニア]]の森の周辺のゲルマーニアで最も肥沃な地を、
*quam Eratostheni et quibusdam Graecis fama notam esse video,
**それを[[w:エラトステネス|エラトステネス]]や[[w:ギリシア人|ギリシア人]]のある者たちも風聞により知っていたと私は見出して、
*quam illi Orcyniam appellant,
**それを彼らはオルキュニアと呼んでいるが、
*Volcae Tectosages occupaverunt atque ibi consederunt;
**(その地を)ウォルカエ族系のテクトサゲス族が占領して、そこに定住していた。
*③ quae gens ad hoc tempus his sedibus sese continet
**その種族は、この時代までこの居場所に留まっており、
*summamque habet iustitiae et bellicae laudis opinionem.
**公正さと戦いの称賛で最高の評判を得ている。
*④ Nunc quod in eadem inopia, egestate, patientia qua Germani permanent,
**今も、窮乏や貧困を、ゲルマーニア人が持ちこたえているのと同じ忍耐をもって、
*eodem victu et cultu corporis utuntur;
**同じ食物および体の衣服を用いている。
*⑤ Gallis autem provinciarum propinquitas et transmarinarum rerum notitia
**これに対して、ガッリア人にとって(ローマの)属州に近接していること、および海外のものを知っていることは、
*multa ad copiam atque usus largitur,
**富や用品の多くが供給されている。
*paulatim adsuefacti superari multisque victi proeliis
**(ガッリア人は)しだいに圧倒されることや多くの戦闘で打ち負かされることに慣らされて、
*ne se quidem ipsi cum illis virtute comparant.
**(ガッリア人)自身でさえも彼ら(ゲルマーニア人)と武勇で肩を並べようとはしないのである。
<br>
:('''訳注''':本節の①項については、[[w:タキトゥス|タキトゥス]]が著書『[[w:ゲルマニア (書物)|ゲルマーニア]]』28章([[s:la:De_origine_et_situ_Germanorum_(Germania)#XXVIII|原文]])において、次のように言及している。
:''Validiores olim Gallorum res fuisse summus auctorum divus Iulius tradit; ''
:かつてガッリア人の勢力がより強力であったことは、最高の証言者である神君ユリウス(・カエサル)も伝えている。
:''eoque credibile est etiam Gallos in Germaniam transgressos:''
:それゆえに、ガッリア人でさえもゲルマーニアに渡って行ったと信ずるに値するのである。)
===25節===
'''ヘルキュニアの森林地帯'''
*① Huius Hercyniae silvae, quae supra demonstrata est, latitudo
**前に述べたヘルキュニアの森の幅は、
*novem dierum iter expedito patet:
**軽装の旅で9日間(かかるだけ)広がっている。
*non enim aliter finiri potest,
**なぜなら(ゲルマーニア人は)他に境界を定めることができないし、
*neque mensuras itinerum noverunt.
**道のりの測量というものを知っていないのである。
[[画像:FeldbergPanorama.jpg|thumb|center|1000px|ヘルキュニアの森林地帯(ドイツ南西部、[[w:シュヴァルツヴァルト|シュヴァルツヴァルトの森]]の最高峰フェルドベルク山 [[w:en:Feldberg_(Black Forest)|Feldberg]] の眺望)]]
*② Oritur ab Helvetiorum et Nemetum et Rauracorum finibus
**(その森は)[[w:ヘルウェティイ族|ヘルウェティイ族]]とネメテス族とラウラキ族の領土から発しており、
**:(訳注:これはライン川東岸に沿って南北に長い現在の[[w:シュヴァルツヴァルト|シュヴァルツヴァルトの森]]のことである。)
*rectaque fluminis [[w:la:Danubius|Danubii]] regione
**ダヌビウス川に沿って真っ直ぐに(流れ)、
**:(訳注:ダヌビウス Danubius はダヌウィウス Danuvius とも呼ばれ、現在の[[w:ドナウ川|ドナウ川]]である。)
*pertinet ad fines Dacorum et Anartium;
**[[w:ダキア人|ダキ族]]やアナルテス族の領土へ至る。
**:(訳注:これは[[w:ダキア|ダキア]] [[w:la:Dacia|Dacia]] すなわち現在の[[w:ルーマニア|ルーマニア]]辺りの地域である。)
*③ hinc se flectit sinistrorsus diversis ab flumine regionibus
**ここ(ダヌビウス川)から(森は)左方へ向きを変えて、川の地域からそれて、
**:(訳注:川が南へ折れるのとは逆に、森は北へそれて[[w:エルツ山地|エルツ山地]]を通って[[w:カルパティア山脈|カルパティア山脈]]に至ると考えられている<ref>タキトゥス『ゲルマーニア』泉井久之助訳注、岩波文庫、p.131-132の注などを参照</ref>。)
*multarumque gentium fines propter magnitudinem attingit;
**(森の)大きさのために、多くの種族の領土に接しているのである。
*④ neque quisquam est huius Germaniae, qui se aut adisse ad initium eius silvae dicat,
**その森の(東の)端緒へ訪れたと言う者は、こちら(西側)の[[w:ゲルマニア|ゲルマーニア]]に属する者では誰もいないし、
*cum dierum iter LX processerit,
**60日間の旅で進んでも(いないのであるが)、
*aut, quo ex loco oriatur, acceperit:
**あるいは(森が)どの場所から生じているか把握した(者もいないのである)。
*⑤ multaque in ea genera ferarum nasci constat, quae reliquis in locis visa non sint;
**それ(=森)の中には、ほかの地では見られない野獣の多くの種類が生息していることが知られている。
*ex quibus quae maxime differant ab ceteris et memoriae prodenda videantur,
**それらのうちで、ほかの(地の)ものと大きく異なったものは、記録で伝えるべきものであり、
*haec sunt.
**以下のものである。
===26節===
[[画像:Rentier fws 1.jpg|thumb|right|200px|[[w:トナカイ|トナカイ]]([[w:la:Tarandrus|Rangifer tarandus]])。発達した枝角を持ち、雌雄ともに角があるという特徴は本節の説明に合致している。が、角が一本ということはないし、野生のトナカイは少なくとも現在では極北の地にしか住まない。]]
'''ヘルキュニアの野獣①'''
*① Est [[w:la:Bos|bos]] [[w:la:Cervus|cervi]] figura,
**雄[[w:シカ|鹿]]の姿形をした[[w:ウシ|牛]]がいる。
*cuius a media fronte inter aures unum [[w:la:Cornu|cornu]] existit
**それの両耳の間の額の真ん中から一つの角が出ており、
*excelsius magisque derectum his, quae nobis nota sunt, cornibus;
**我々(ローマ人)に知られている角よりも非常に高くて真っ直ぐである。
*ab eius summo sicut palmae ramique late diffunduntur.
**その先端部から、手のひらや枝のように幅広く広がっている。
*Eadem est feminae marisque natura,
**雌と雄の特徴は同じであり、
*eadem forma magnitudoque cornuum.
**角の形や大きさも同じである。
<br>
:('''訳注''':カエサルによる本節の記述は[[w:ユニコーン|ユニコーン]](一角獣)の伝説に
:結び付けられている。しかし本節における発達した枝角の説明は、むしろ
:[[w:トナカイ|トナカイ]]や[[w:ヘラジカ|ヘラジカ]]のような獣を想起させる。)
===27節===
[[画像:Bigbullmoose.jpg|thumb|right|250px|[[w:ヘラジカ|ヘラジカ]](Alces alces)。<br>発達した枝角と大きな体を持ち、名称以外は本節の説明とまったく合致しない。<br>しかしながら、[[w:ガイウス・プリニウス・セクンドゥス|大プリニウス]]の『[[w:博物誌|博物誌]]』第8巻(16章・39節)には、[[w:アクリス|アクリス]]([[w:en:Achlis|achlis]])という一見ヘラジカ(alces)のような奇獣が紹介され、その特徴は本節②項以下のカエサルの説明とほぼ同じであることが知られている。]]
[[画像:Gressoney-Saint-Jean-Museo-IMG 1824.JPG|thumb|right|250px|[[w:ノロジカ|ノロジカ]](Capreolus capreolus)。<br>ヨーロッパに広く分布する小鹿で、まだら模様で山羊にも似ているので、本節①項の説明と合致する。しかし、関節はあるし、腹ばいにもなる。]]
'''ヘルキュニアの野獣②'''
*① Sunt item, quae appellantur [[w:la:Alces|alces]].
**アルケスと呼ばれるものもいる。
**:(訳注:アルケス alces とは[[w:ヘラジカ|ヘラジカ]](オオシカ)を指す単語であるが本節の説明と矛盾する。)
*Harum est consimilis [[w:la:Capra|capris]] figura et varietas pellium,
**これらの姿形や毛皮のまだらは雄[[w:ヤギ|山羊]]に似ている。
*sed magnitudine paulo antecedunt
**が、(山羊を)大きさで少し優っており、
*mutilaeque sunt cornibus
**角は欠けていて、
*et crura sine nodis articulisque habent.
**脚部には関節の類いがない。
**:(訳注:nodus も articulus も関節の類いを意味する)
*② Neque quietis causa procumbunt
**休息のために横たわらないし、
*neque, si quo adflictae casu conciderunt,
**もし何か不幸なことで偶然にも倒れたならば、
*erigere sese aut sublevare possunt.
**自らを起こすことも立ち上げることもできない。
*③ His sunt arbores pro cubilibus;
**これらにとって木々は寝床の代わりである。
*ad eas se adplicant
**それら(の木々)へ自らを寄りかからせて、
*atque ita paulum modo reclinatae quietem capiunt.
**こうして少しだけもたれかかって休息を取るのである。
*④ Quarum ex vestigiis
**それらの足跡から
*cum est animadversum a venatoribus, quo se recipere consuerint,
**(鹿が)どこへ戻ることを常としているかを狩人によって気付かれたときには、
*omnes eo loco aut ab radicibus subruunt aut accidunt arbores,
**その地のすべての木々を(狩人は)根から倒すか、あるいは傷つけて、
*tantum ut summa species earum stantium relinquatur.
**それらの(木々の)いちばん(外側)の見かけが、立っているかのように残して置かれる。
*⑤ Huc cum se consuetudine reclinaverunt,
**そこに(鹿が)習性によってもたれかかったとき、
*infirmas arbores pondere adfligunt atque una ipsae concidunt.
**弱った木々を重みで倒してしまい、自身も一緒に倒れるのである。
===28節===
[[画像:Wisent.jpg|thumb|right|250px|[[w:ヨーロッパバイソン|ヨーロッパバイソン]]([[w:la:Bison|Bison bonasus]])。<br>かつてヨーロッパに多数生息していた野牛で、相次ぐ乱獲により野生のものは20世紀初頭にいったん絶滅したが、動物園で繁殖させたものを再び野生に戻す試みが行なわれている。]]
[[画像:Muybridge Buffalo galloping.gif|thumb|right|200px|疾走するバイソン]]
[[画像:Drinkhoorn_roordahuizum.JPG|thumb|right|200px|酒杯として用いられた野獣の角。銀で縁取りされている。]]
'''ヘルキュニアの野獣③'''
*③ Tertium est genus eorum, qui uri appellantur.
**第3のものは、野牛と呼ばれる種類である。
*Hi sunt magnitudine paulo infra [[w:la:Elephantidae|elephantos]],
**これらは、大きさで少し[[w:ゾウ|象]]に劣るが、
*specie et colore et figura [[w:la:Taurus|tauri]].
**見かけと色と姿形は雄[[w:ウシ|牛]]である。
*② Magna vis eorum est et magna velocitas,
**それらの力は大きく、(動きも)とても速く、
*neque homini neque ferae, quam conspexerunt, parcunt.
**人間でも野獣でも、見かけたものには容赦しない。
*Hos studiose foveis captos interficiunt.
**(ゲルマーニア人は)これらを熱心に落とし穴で捕らえたものとして殺す。
*③ Hoc se labore durant adulescentes
**この労苦により青年たちを鍛え、
*atque hoc genere venationis exercent,
**[[w:狩猟|狩猟]]のこの類いで鍛錬するのであり、
*et qui plurimos ex his interfecerunt,
**これら(の野牛)のうちから最も多くを殺した者は、
*relatis in publicum [[w:la:Cornu|cornibus]], quae sint testimonio,
**証拠になるための[[w:角|角]]を公の場に持参して、
*magnam ferunt laudem.
**大きな賞賛を得るのである。
*④ Sed adsuescere ad homines et mansuefieri ne parvuli quidem excepti possunt.
**けれども(野牛は)幼くして捕らえられてさえも、人間に慣れ親しんで飼い慣らされることはできない。
*⑤ Amplitudo cornuum et figura et species multum a nostrorum boum cornibus differt.
**角の大きさや形や見かけは、我々(ローマ人)の牛の角とは大いに異なる。
*⑥ Haec studiose conquisita ab labris argento circumcludunt
**これらは熱心に探し求められて、縁を[[w:銀|銀]]で囲って、
*atque in amplissimis epulis pro poculis utuntur.
**とても贅沢な祝宴において[[w:盃|杯]]として用いられるのである。
==対エブロネス族追討戦(1)==
===29節===
'''ゲルマーニアから撤兵、対アンビオリクス戦へ出発'''
*① Caesar, postquam per Ubios exploratores comperit Suebos sese in silvas recepisse,
**カエサルは、ウビイー族の偵察者たちを通じてスエービー族が森に撤退したことを確報を受けた後で、
**:(訳注:[[#10節|10節]]によれば、バケニス Bacenis の森。[[#コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について|既述]]のように、スエービー族とはカッティー族 [[w:en:Chatti|Chatti]] と考えられる。)
*inopiam frumenti veritus,
**糧食の欠乏を恐れて、
*quod, ut supra demonstravimus, minime omnes Germani agri culturae student,
**というのは、前に説明したように、ゲルマーニア人は皆が土地を耕すことに決して熱心でないので、
**:(訳注:[[#22節|22節]]を参照。耕地がなければ、ローマ軍は穀物の現地調達ができない。)
*constituit non progredi longius;
**より遠くへ前進しないことを決めた。
*② sed, ne omnino metum reditus sui barbaris tolleret
**けれども、自分たち(ローマ軍)が戻って来る恐れを蛮族からまったく取り去ってしまわないように、
*atque ut eorum auxilia tardaret,
**かつ、彼ら(ゲルマーニア人)の(ガッリア人への)支援を遅らせるように、
*reducto exercitu partem ultimam pontis, quae ripas Ubiorum contingebat,
**ウビイー族側の岸(=レーヌス川東岸)につなげていた橋の最後の部分に軍隊を連れ戻して、
*in longitudinem pedum ducentorum rescindit
**(橋を)長さ200[[w:ペース (長さ)|ペース]](=約60m)切り裂いて、
*③ atque in extremo ponte turrim tabulatorum quattuor constituit
**橋の先端のところに4層の櫓を建てて、
*praesidiumque cohortium duodecim pontis tuendi causa ponit
**12個[[w:コホルス|歩兵大隊]]の守備隊を橋を防護するために配置して、
*magnisque eum locum munitionibus firmat.
**その場所を大きな城砦で固めた。
*Ei loco praesidioque C.(Gaium) Volcacium Tullum adulescentem praeficit.
**その場所と守備隊を青年ガイウス・ウォルカキウス・トゥッルスに指揮させた。
**:(訳注:元執政官 [[w:en:Lucius_Volcatius_Tullus_(consul_66_BC)|Lucius Volcatius Tullus]] に対して、青年 adulescentem と区別したのであろう。
**:ウォルカキウス Volcacium の綴りは、写本により相異する。)
*④ Ipse, cum maturescere frumenta inciperent,
**(カエサル)自身は、穀物が熟し始めたので、
*ad bellum [[w:la:Ambiorix|Ambiorigis]] profectus per Arduennam silvam,
**[[w:アンビオリクス|アンビオリクス]]との戦争へ、アルドゥエンナの森を通って進発した。
**:(訳注:アルドゥエンナの森については、[[ガリア戦記 第5巻#3節|第5巻3節]]ですでに説明されている。)
*quae est totius Galliae maxima
**それ(=森)は全ガッリアで最も大きく、
*atque ab ripis Rheni finibusque Treverorum ad Nervios pertinet
**レヌス(=[[w:ライン川|ライン川]])の岸およびトレーウェリー族の境界から、[[w:ネルウィイ族|ネルウィイ族]](の領土)へ及んでおり、
*milibusque amplius quingentis in longitudinem patet,
**長さは500ローママイル(=約740km)より大きく広がっている。
*L.(Lucium) Minucium Basilum cum omni equitatu praemittit,
**ルキウス・ミヌキウス・バスィルスをすべての騎兵隊とともに先遣した。
*si quid celeritate itineris atque opportunitate temporis proficere possit;
**行軍の迅速さと時間の有利さによって、何かを得られるかどうかということである。
*⑤ monet, ut ignes in castris fieri prohibeat, ne qua eius adventus procul significatio fiat:
**野営において火を生じることを禁じるように、何事かにより遠くから彼の到来の予兆を生じないように、戒めた。
*sese confestim subsequi dicit.
**(カエサル)自らは、ただちに後から続くと言った。
===30節===
'''アンビオリクスがバスィリスのローマ騎兵から逃れる'''
*① Basilus, ut imperatum est, facit.
**バスィルスは、命令されたように、行なった。
*Celeriter contraque omnium opinionem confecto itinere
**速やかに、かつ皆の予想に反して、行軍を成し遂げて、
*multos in agris inopinantes deprehendit:
**(城市でない)土地にいた気付かないでいる多くの者を捕らえた。
*eorum indicio ad ipsum Ambiorigem contendit, quo in loco cum paucis equitibus esse dicebatur.
**彼らの申し立てにより、[[w:アンビオリクス|アンビオリクス]]その人がわずかな騎兵たちとともにいると言われていた場所に急いだ。
*② Multum cum in omnibus rebus, tum in re militari potest Fortuna.
**あらゆる事柄においても、とりわけ軍事においても、運命(の女神)が大いに力がある。
*Nam magno accidit casu,
**実際のところ、大きな偶然により生じたのは、
*ut in ipsum incautum etiam atque imparatum incideret,
**(アンビオリクス)自身でさえも油断していて不用意なところに(バスィルスが)遭遇したが、
*priusque eius adventus ab omnibus videretur, quam fama ac nuntius adferretur:
**彼の到来が(ガッリア勢の)皆により見られたのが、風聞や報告により知らされるよりも早かったのである。
*sic magnae fuit fortunae
**同様に(アンビオリクスにとって)大きな幸運に属したのは、
*omni militari instrumento, quod circum se habebat, erepto,
**自らの周りに持っていたすべての武具を奪われて、
*raedis equisque comprehensis
**四輪馬車や馬を差し押さえられても、
*ipsum effugere mortem.
**(アンビオリクス)自身は死を逃れたことである。
*③ Sed hoc quoque factum est,
**しかし、以下のこともまた起こった。
*quod aedificio circumdato silva,
**(アンビオリクスの)館が森で取り巻かれており、
*─ ut sunt fere domicilia Gallorum, qui vitandi aestus causa
**─ ガッリア人の住居はほぼ、暑さを避けることのために、
*plerumque silvarum atque fluminum petunt propinquitates ─,
**たいてい森や川の近接したところに求めるのであるが ─
*comites familiaresque eius angusto in loco paulisper equitum nostrorum vim sustinuerunt.
**彼の従者や郎党どもが、狭い場所でしばらく、我が方(ローマ勢)の騎兵の力を持ちこたえたのだ。
*④ His pugnantibus illum in equum quidam ex suis intulit:
**彼らが戦っているときに、彼(アンビオリクス)を配下のある者が馬に押し上げて、
*fugientem silvae texerunt.
**逃げて行く者(アンビオリクス)を森が覆い隠した。
*Sic et ad subeundum periculum et ad vitandum multum Fortuna valuit.
**このように(アンビオリクスが)危険に突き進んだことや避けられたことに対して、運命(の女神)が力をもったのである。
===31節===
'''エブロネス族の退避、カトゥウォルクスの最期'''
*① [[w:la:Ambiorix|Ambiorix]] copias suas iudicione non conduxerit, quod proelio dimicandum non existimarit,
**[[w:アンビオリクス|アンビオリクス]]は、戦闘で争闘するべきとは考えていなかったので、自らの判断で軍勢を集めなかったのか、
*an tempore exclusus et repentino equitum adventu prohibitus,
**あるいは、時間に阻まれ、予期せぬ[[w:騎兵|騎兵]]の到来に妨げられて、
*cum reliquum exercitum subsequi crederet,
**(ローマ勢の)残りの軍隊(=軍団兵)が後続して来ることを信じたためなのか、
*dubium est.
**不確かなことである。
*② Sed certe dimissis per agros nuntiis sibi quemque consulere iussit.
**けれども、確かに領地を通じて伝令を四方に遣わして、おのおのに自らを助けることを命じた。
*Quorum pars in Arduennam silvam, pars in continentes paludes profugit;
**それらの者たち(領民)のある一部はアルドゥエンナの森に、一部は絶え間ない沼地に退避した。
*③ qui proximi Oceano fuerunt,
**<ruby><rb>大洋<span style="color:#009900;">〔[[w:大西洋|大西洋]]〕</span></rb><rp>(</rp><rt>オーケアヌス</rt><rp>)</rp></ruby>にとても近いところにいた者たちは、
*hi insulis sese occultaverunt, quas aestus efficere consuerunt:
**[[w:潮汐|満潮]]が形成するのが常であった島々に身を隠した。
[[画像:Taxus baccata MHNT.jpg|thumb|right|300px|[[w:ヨーロッパイチイ|ヨーロッパイチイ]]([[w:en:Taxus baccata|Taxus baccata]])<br>欧州などに広く自生するイチイ科の[[w:針葉樹|針葉樹]]。赤い果実は食用で甘い味だが、種子には[[w:タキシン|タキシン]](taxine)という[[w:アルカロイド|アルカロイド]]系の毒物が含まれており、種子を多量に摂れば[[w:痙攣|けいれん]]を起こして[[w:呼吸困難|呼吸困難]]で死に至る。<br>他方、[[w:タキサン|タキサン]](taxane)という成分は[[w:抗がん剤|抗がん剤]]などの[[w:医薬品|医薬品]]に用いられる。]]
*④ multi ex suis finibus egressi
**多くの者たちは、自分たちの領土から出て行って、
*se suaque omnia alienissimis crediderunt.
**自分たちとその一切合財をまったく異邦の者たちに委ねた。
*⑤Catuvolcus, rex dimidiae partis Eburonum,
**[[w:カトゥウォルクス|カトゥウォルクス]]は、[[w:エブロネス族|エブロネス族]]の半分の地方の王であり、
*qui una cum Ambiorige consilium inierat,
**アンビオリクスと一緒に(カエサルに造反する)企てに取りかかった者であるが、
**:(訳注:[[ガリア戦記 第5巻#26節|第5巻26節]]を参照。)
*aetate iam confectus, cum laborem aut belli aut fugae ferre non posset,
**もはや老衰していたので、戦争の労苦、あるいは逃亡の労苦に耐えることができなかったので、
**:(訳注:aetate confectus 老衰した)
*omnibus precibus detestatus Ambiorigem, qui eius consilii auctor fuisset,
**その企ての張本人であったアンビオリクスをあらゆる呪詛のことばで呪って、
*taxo, cuius magna in Gallia Germaniaque copia est, se exanimavit.
**[[w:ガリア|ガッリア]]や[[w:ゲルマニア|ゲルマーニア]]に大量にあった[[w:イチイ属|イチイ]]によって、息絶えたのであった。
===32節===
'''ゲルマーニア部族の弁明、アドゥアトゥカに輜重を集める'''
*① Segni Condrusique, ex gente et numero Germanorum,
**[[w:ゲルマニア|ゲルマーニア]]人の種族や集団のうち、[[w:セグニ族|セグニ族]]と[[w:コンドルスィ族|コンドルスィ族]]は、
*qui sunt inter Eburones Treverosque,
**[[w:エブロネス族|エブロネス族]]とトレーウェリー族の間にいたが、
*legatos ad Caesarem miserunt oratum,
**カエサルのところへ嘆願するために使節たちを遣わした。
*ne se in hostium numero duceret
**自分たちを敵として見なさないように、と。
*neve omnium Germanorum, qui essent citra Rhenum, unam esse causam iudicaret;
**しかも、レーヌス(=[[w:ライン川|ライン川]])のこちら側にいるゲルマーニア人すべての事情は1つであると裁断しないように、と。
*nihil se de bello cogitavisse, nulla Ambiorigi auxilia misisse.
**自分たちは、戦争についてまったく考えたことはないし、[[w:アンビオリクス|アンビオリクス]]に何ら援軍を派遣したことはない、と。
*② Caesar explorata re quaestione captivorum,
**カエサルは捕虜を審問することによってその事を探り出すと、
*si qui ad eos Eburones ex fuga convenissent,
**もし彼らのところへ逃亡しているエブロネス族の者たちの誰かが訪れたならば、
*ad se ut reducerentur, imperavit;
**自分(カエサル)のところへ連れ戻されるようにと、命令した。
*si ita fecissent, fines eorum se violaturum negavit.
**もしそのように行なったならば、彼らの領土を自分(カエサル)が侵害することはないであろうと主張した。
*③ Tum copiis in tres partes distributis
**それから、軍勢を3方面に分散して、
*impedimenta omnium legionum Aduatucam contulit.
**すべての軍団の[[w:輜重|輜重]]を[[w:アドゥアトゥカ|アドゥアトゥカ]]に運び集めた。
**:(訳注:アドゥアトゥカ Aduatuca の表記は、写本によってはアトゥアトゥカ Atuatuca となっている。現在の[[w:トンゲレン|トンゲレン市]]。)
*④ Id castelli nomen est.
**それは、城砦の名前である。
*Hoc fere est in mediis Eburonum finibus,
**これは、エブロネス族の領土のほぼ真ん中にあり、
*ubi Titurius atque Aurunculeius hiemandi causa consederant.
**そこには、[[w:クィントゥス・ティトゥリウス・サビヌス|ティトゥリウス(・サビヌス)]]と[[w:ルキウス・アウルンクレイウス・コッタ|アウルンクレイウス(・コッタ)]]が越冬するために陣取っていた。
*⑤ Hunc cum reliquis rebus locum probabat,
**(カエサルは)この場所を、ほかの事柄によっても是認したし、
*tum quod superioris anni munitiones integrae manebant, ut militum laborem sublevaret.
**またとりわけ前年の防備が損なわれずに存続していたので、兵士の労苦を軽減するためでもある。
*Praesidio impedimentis legionem quartamdecimam reliquit,
**(全軍の)輜重の守備隊として第14軍団を(そこに)残した。
*unam ex his tribus, quas proxime conscriptas ex Italia traduxerat.
**(それは)最近にイタリアから徴集されたものとして連れて来られた3個(軍団)のうちの1個である。
**:(訳注:[[#1節|1節]]を参照。イタリア Italia とはカエサルが総督であった[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]のことであろう。)
*Ei legioni castrisque Q.(Quintum) Tullium Ciceronem praeficit ducentosque equites ei attribuit.
**その[[w:ローマ軍団|軍団]]と陣営には[[w:クィントゥス・トゥッリウス・キケロ|クィントゥス・トゥッリウス・キケロ]]を指揮者として、200騎の騎兵を彼に割り当てた。
===33節===
'''軍勢をカエサル、ラビエヌス、トレボニウスの三隊に分散'''
*① Partito exercitu
**軍隊を分配して、
*T.(Titum) Labienum cum legionibus tribus ad Oceanum versus
**[[w:ティトゥス・ラビエヌス|ティトゥス・ラビエヌス]]には、3個[[w:ローマ軍団|軍団]]とともに、<ruby><rb>大洋<span style="color:#009900;">〔[[w:大西洋|大西洋]]〕</span></rb><rp>(</rp><rt>オーケアヌス</rt><rp>)</rp></ruby>の方へ向けて、
*in eas partes, quae Menapios attingunt, proficisci iubet;
**[[w:メナピイ族|メナピイ族]]に接する地方に出発することを命じた。
*② C.(Gaium) Trebonium cum pari legionum numero
**[[w:ガイウス・トレボニウス|ガイウス・トレボニウス]]には、軍団の同数とともに、
*ad eam regionem, quae Aduatucis adiacet, depopulandam mittit;
**[[w:アドゥアトゥキ族|アドゥアトゥキ族]]に隣接する領域へ、荒らすために派遣した。
[[画像:Locatie-Maas-3.png|thumb|right|200px|[[w:ベルギー|ベルギー]]周辺の地図。図の左側を[[w:スヘルデ川|スヘルデ川]]が、右側を[[w:マース川|マース川]]が流れているため、両河川は離れており、カエサルがどの地に言及しているのかはわからない。]]
[[画像:Schelde_4.25121E_51.26519N.jpg|thumb|right|200px|ベルギーの[[w:アントウェルペン|アントウェルペン]]周辺を流れる[[w:スヘルデ川|スヘルデ川]]河口付近の[[w:衛星画像|衛星画像]]。ラビエヌスが向かったメナピイ族に接する地方である。]]
*③ ipse cum reliquis tribus ad flumen [[w:la:Scaldis|Scaldim]], quod influit in [[w:la:Mosa|Mosam]],
**(カエサル)自身は、残りの3個(軍団)とともに、モサ(川)に流れ込むスカルディス川のところへ、
**:(訳注:スカルディス Scaldis は現在の[[w:スヘルデ川|スヘルデ川]] Schelde で、フランス北部からベルギー、オランダへ流れている。
**:モサ川 Mosa すなわち現在の[[w:マース川|マース川]] Maas とは運河でつながるが、当時の関係およびカエサルの目的地は不詳。)
*extremasque Arduennae partes ire constituit,
**かつ[[w:アルデンヌ|アルドゥエンナ]](の森林)の外縁の地方へ行軍することを決めた。
*quo cum paucis equitibus profectum Ambiorigem audiebat.
**そこへは、アンビオリクスがわずかな騎兵たちとともに出発したと聞いていたのだ。
*④ Discedens post diem septimum sese reversurum confirmat;
**(カエサルは陣営を)離れるに当たって、7日目の後(=6日後)に自分は引き返して来るであろうと断言した。
*quam ad diem ei legioni, quae in praesidio relinquebatur, deberi frumentum sciebat.
**その当日には、守備に残される軍団にとって糧食が必要とされることを(カエサルは)知っていたのだ。
*⑤ Labienum Treboniumque hortatur,
**(カエサルは)ラビエヌスとトレボニウスを(以下のように)鼓舞した。
*si rei publicae commodo facere possint,
**もし(ローマ軍全体の)公務のために都合良く行動することができるならば、
*ad eum diem revertantur,
**その日には戻って、
*ut rursus communicato consilio exploratisque hostium rationibus
**再び(互いの)考えを伝達して、敵たちの作戦を探り出し、
*aliud initium belli capere possint.
**次なる戦争の端緒を捉えようではないか、と。
<br>
:('''訳注:カエサル麾下の軍団配分について'''
:[[ガリア戦記 第5巻#8節|第5巻8節]]の記述によれば、ブリタンニアへ2度目の遠征をする前(BC54年)のカエサルは少なくとも8個軍団と騎兵4000騎を
:指揮していた。[[ガリア戦記 第5巻#24節|第5巻24節]]によれば、帰還後は8個軍団および軍団から離れた5個[[w:コホルス|歩兵大隊]]を指揮していたが、
:アンビオリクスによる[[w:アドゥアトゥカの戦い|アドゥアトゥカの戦い]]で[[w:クィントゥス・ティトゥリウス・サビヌス|サビヌス]]らとともに1個軍団と5個大隊が壊滅したので、残りは7個軍団となる。
:[[#1節|本巻1節]]によれば、この年(BC53年)には3個軍団を新たに徴集したので、計10個軍団となったはずである。
:[[#29節|29節]]では、このうちから12個大隊をライン川に架かる橋の守備に残し、[[#32節|32節]]では輜重の守備としてアドゥアトゥカに1個軍団を残した。
:本節の記述通りにラビエヌス、トレボニウス、カエサルがそれぞれ3個軍団(計9個)を受け持ったとすると、あわせて10個軍団と12個大隊という勘定になる。
:したがって、この勘定が正しいのであれば、ライン川に残した12個大隊は各軍団から引き抜いたものであり、各軍団は定員を割っていると考えられる。)
===34節===
'''夷を以って夷を制す対エブロネス族包囲網'''
*① Erat, ut supra demonstravimus, manus certa nulla,
**前に説明したように、(エブロネス族には)決まった手勢がなかったし、
**:(訳注:[[#31節|31節]]を参照。)
*non oppidum, non praesidium, quod se armis defenderet,
**自分たちが武器で防衛するような[[w:オッピドゥム|城市]]も、防塁もなかった。
*sed in omnes partes dispersa multitudo.
**けれども、あらゆる方面に大勢が分散されていた。
*② Ubi cuique aut valles abdita aut locus silvestris aut palus impedita
**おのおのが、密かな峡谷、あるいは森に覆われた土地といったところに、
*spem praesidi aut salutis aliquam offerebat, consederat.
**守備あるいは身の安全の何らかの希望を提供するところに、陣取っていた。
*③ Haec loca vicinitatibus erant nota,
**これらの場所は、近隣の者たちは知っていたので、
**:(訳注:すなわち、近隣のガッリア人には地の利があり、ローマ人には地の利がなかったので)
*magnamque res diligentiam requirebat
**事態はたいへんな注意深さを必要としていた。
*non in summa exercitus tuenda
**(ローマ人の)軍隊全体を守るためではなく、
*─ nullum enim poterat universis <a> perterritis ac dispersis periculum accidere ─,
**─なぜなら、脅かされ分散されている者たちにより(ローマ軍)総勢が危険を生じることはありえなかったので─
*sed in singulis militibus conservandis;
**けれども、個々の(ローマ人の)兵士たちを守ることのために(注意深さを必要としていた)。
*quae tamen ex parte res ad salutem exercitus pertinebat.
**少なくとも、ある面では、そういう事態は軍隊の安全に及んでいた。
*④ Nam et praedae cupiditas multos longius evocabat,
**すなわち、略奪品への欲望が多くの者たちをより遠くへ呼び寄せていたし、
*et silvae incertis occultisque itineribus confertos adire prohibebant.
**森林の不確かで隠された道のりによって密集した行軍を妨げていた。
*⑤ Si negotium confici stirpemque hominum sceleratorum interfici vellent,
**もし、戦役が完遂されること、および非道な連中(=エブロネス族)の血筋が滅ぼされることを欲するならば、
*dimittendae plures manus diducendique erant milites;
**いくつもの部隊が分遣され、兵士たちが展開されるべきである。
*⑥ si continere ad signa manipulos vellent, ut instituta ratio et consuetudo exercitus Romani postulabat,
**もし、ローマ軍が決められた流儀や慣行を要求するように、[[w:マニプルス|中隊]]が軍旗のもとにとどまることを欲するならば、
*locus ipse erat praesidio barbaris,
**その場所が蛮族にとって守りとなるであろう。
*neque ex occulto insidiandi et dispersos circumveniendi
**隠れたところから待ち伏せするため、分散した者たち(=ローマ兵)を包囲するために、
*singulis deerat audacia.
**(エブロネス族の)おのおのにとって勇敢さには事欠かなかった。
*⑦ Ut in eiusmodi difficultatibus, quantum diligentia provideri poterat providebatur,
**そのような困難さにおいては、できるかぎりの注意深さで用心されるほどに、用心されるものであるが、
*ut potius in nocendo aliquid praetermitteretur,
**結果として、むしろ(敵勢への)何らかの加害は差し控えられることになった。
*etsi omnium animi ad ulciscendum ardebant,
**たとえ、皆の心が(エブロネス族に)報復するために燃え立っていたとしても、
*quam cum aliquo militum detrimento noceretur.
**兵士たちの何らかの損失を伴って(敵に)加害がなされるよりも。
**:(訳注:伏兵によって被害をこうむるよりは、ローマ人の安全のために、ローマ兵による攻撃は避けられた。)
*⑧ Dimittit ad finitimas civitates nuntios Caesar;
**カエサルは、近隣の諸部族のところへ伝令たちを分遣した。
*omnes ad se vocat spe praedae ad diripiendos Eburones,
**[[w:エブロネス族|エブロネス族]]に対して戦利品を略奪することの望みを呼びかけた。
*ut potius in silvis Gallorum vita quam legionarius miles periclitetur,
**森の中で、軍団の兵士たちよりも、むしろガッリア人たちの生命が危険にさらされるように、
*simul ut magna multitudine circumfusa
**同時にまた、たいへんな大勢で取り囲むことによって、
*pro tali facinore stirps ac nomen civitatis tollatur.
**(サビヌスらを滅ぼした)あれほどの罪業の報いとして、部族の血筋と名前が抹殺されるように、と。
*Magnus undique numerus celeriter convenit.
**至る所から多数の者が速やかに集結した。
==スガンブリー族のアドゥアトゥカ攻略戦==
===35節===
'''スガンブリー族が略奪に駆り立てられてアドゥアトゥカへ向かう'''
*① Haec in omnibus Eburonum partibus gerebantur,
**これらのこと(=追討戦)が[[w:エブロネス族|エブロネス族]]のすべての地方で遂行されていたが、
*diesque adpetebat septimus, quem ad diem Caesar ad impedimenta legionemque reverti constituerat.
**カエサルがその日に[[w:輜重|輜重]]と(キケロの)[[w:ローマ軍団|軍団]]のところへ引き返すと決めていた7日目が近づいていた。
*② Hic quantum in bello Fortuna possit et quantos adferat casus, cognosci potuit.
**ここに、戦争では運命(の女神)がどれほどのことに力を持ち、どれほどの結末を引き起こすかを知ることができた。
**:(訳注:[[#30節|30節]]でもそうだが、カエサルは戦況が芳しくないと運命 Fortuna を持ち出すようである。[[#42節|42節]]も参照。)
*③ Dissipatis ac perterritis hostibus, ut demonstravimus,
**(前節で)説明したように、追い散らされて、脅かされている敵たちには、
*manus erat nulla quae parvam modo causam timoris adferret.
**(ローマ勢に敵を)恐れる理由を少しの程度も引き起こすようないかなる手勢もなかった。
*④ Trans Rhenum ad Germanos
**レーヌス(=[[w:ライン川|ライン川]])の向こう側の[[w:ゲルマニア|ゲルマーニア]]人のところへ、
*pervenit fama, diripi Eburones atque ultro omnes ad praedam evocari.
**エブロネス族が収奪され、(近隣部族の)皆が略奪品へ向けて自発的に誘惑されているという風評が達した。
*⑤ Cogunt equitum duo milia Sugambri, qui sunt proximi Rheno,
**レーヌスの近隣にいたスガンブリ族は、騎兵2000騎を徴集した。
*a quibus receptos ex fuga Tenctheros atque Usipetes supra docuimus.
**前に説明したように、彼らによって[[w:テンクテリ族|テンクテリ族]]と[[w:ウスィペテス族|ウスィペテス族]]が逃亡から迎え入れられたのだ。
**:(訳注:[[ガリア戦記 第4巻#16節|第4巻16節]]および[[ガリア戦記 第4巻#18節|18~19節]]を参照。)
*⑥ Transeunt Rhenum navibus ratibusque
**(スガンブリー族は)レーヌスを船団や筏で渡河した。
*triginta milibus passuum infra eum locum, ubi pons erat perfectus praesidiumque ab Caesare relictum.
**カエサルにより橋が造り上げられて守備隊が残された地点よりも下流に30ローママイル(約44km)のところを。
*Primos Eburonum fines adeunt;
**手始めとしてエブロネス族の領土に殺到して、
*multos ex fuga dispersos excipiunt,
**逃亡からちりぢりにさせられた多くの者たちを追い捕らえて、
*magno pecoris numero, cuius sunt cupidissimi barbari, potiuntur.
**蛮族たちが最も熱望している家畜の多数をわがものにした。
*⑦ Invitati praeda longius procedunt.
**(スガンブリー族の軍勢は)略奪品に誘われて、より遠くに進み出た。
*Non hos palus ─ in bello latrociniisque natos ─, non silvae morantur.
**戦争や追いはぎに生まれついていたので、沼地も森林も彼らを妨げることがなかった。
*Quibus in locis sit Caesar, ex captivis quaerunt;
**カエサルがどの場所にいるのか、捕虜から問い質した。
*profectum longius reperiunt omnemque exercitum discessisse cognoscunt.
**(彼が)より遠くに旅立って、軍隊の総勢が立ち去ったことを、知った。
*⑧ Atque unus ex captivis "Quid vos," inquit,
**なおかつ、捕虜たちのうちの一人が「なぜ、あんたたちは」と言い出した。
*"hanc miseram ac tenuem sectamini praedam,
**「この取るに足らない、ちっぽけな略奪品を追い求めるのか。
**:(訳注:sectamini はデポネンティア動詞 sector の直説法・2人称複数・現在形)
*quibus licet iam esse fortunatissimos?
**(あんたたちは)今や、最も富裕な者に成り得るのに。
*⑨ Tribus horis Aduatucam venire potestis:
**(この場所から)3時間で[[w:アドゥアトゥカ|アドゥアトゥカ]]に到達できる。
**:(訳注:古代ローマの時間は、不定時法であり、当地の緯度や季節により長さは異なる。)
*huc omnes suas fortunas exercitus Romanorum contulit;
**ここへ、ローマ軍がすべての財産を運び集めたのだ。
*praesidii tantum est, ut ne murus quidem cingi possit,
**守備隊は、城壁が取り巻かれることさえできないほどの(貧弱な)ものでしかない。
*neque quisquam egredi extra munitiones audeat."
**何者も防備の外側へあえて出て行こうとはしないのだ。」
*⑩ Oblata spe Germani,
**ゲルマーニア人たちは(ローマ軍の財産という)望みを提示されて、
*quam nacti erant praedam, in occulto relinquunt;
**(すでにエブロネス族の者たちから)獲得していた略奪品を秘されたところに残しておいて、
*ipsi Aduatucam contendunt usi eodem duce, cuius haec indicio cognoverant.
**自身は、このことを申告により知ったところの同じ(捕虜の)案内人を使役して、アドゥアトゥカに急いだ。
<br>
:('''訳注:部族名・地名の表記について'''
:スガンブリー族 Sugambri:α系写本では Sugambri、T・U写本では Sygambri、V・R写本では Sigambri
:テンクテリ族 Tenctheri:β系写本では Tenctheri、α系写本では Thenctheri
:アドゥアトゥカ Aduatuca:α系・T写本では Aduatuca、V・ρ系写本では Atuatuca)
===36節===
'''アドゥアトゥカのキケロが糧秣徴発に派兵する'''
*① [[w:la:Quintus_Tullius_Cicero|Cicero]], qui omnes superiores dies
**[[w:クィントゥス・トゥッリウス・キケロ|キケロ]]は(期日の7日目)より以前の日々すべてを
*praeceptis Caesaris cum summa diligentia milites in castris continuisset
**カエサルの指図により、最高の入念さとともに、兵士たちを陣営の中に留めておき、
*ac ne calonem quidem quemquam extra munitionem egredi passus esset,
**<ruby><rb>[[w:カロネス|軍属奴隷]]</rb><rp>(</rp><rt>カロネス</rt><rp>)</rp></ruby> でさえも、何者も防備の外側に出て行くことを許されなかった。
*septimo die diffidens de numero dierum Caesarem fidem servaturum,
**(期日の)7日目に、カエサルが日数についての約束を守るであろうか、という不信を抱いた。
*quod longius eum<ref>eum はβ系写本の記述で、α系写本にはない。</ref> progressum audiebat,
**というのは、彼(カエサル)は、はるか遠くに前進したと聞いていたのだし、
*neque ulla de reditu eius fama adferebatur,
**彼の帰還については何ら伝言を届けられていなかったからである。
*② simul eorum permotus vocibus,
**同時に(キケロは)以下のような者たちの声に揺り動かされた。
*qui illius patientiam paene obsessionem appellabant, siquidem ex castris egredi non liceret,
**もし本当に陣営から出て行くことが許されないならば、彼の忍耐はほぼ攻囲(籠城)であるというのだ。
*nullum eiusmodi casum exspectans,
**以下のような事態を予期してもいなかった。
*quo novem oppositis legionibus maximoque equitatu,
**9個[[w:ローマ軍団|軍団]]と最大限の[[w:騎兵|騎兵]]隊が(敵と)対峙して、
*dispersis ac paene deletis hostibus
**敵たちは散らばらされて、ほとんど抹殺されたのに、
*in milibus passuum tribus offendi posset,
**(自陣から)3ローママイルの内で(敵対勢力から)襲撃され得るとは。
[[画像:PraetorianVexillifer_1.jpg|thumb|right|200px|帝政期に用いられた軍旗(ウェクスィッルム)の一種を再現したもの。]]
*quinque cohortes frumentatum in proximas segetes mittit,
**5個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>を糧秣徴発するために、近隣の耕地に派遣した。
*quas inter et castra unus omnino collis intererat.
**それら(の耕地)と陣営の間には、ただ一つの丘陵が介在するだけであった。
*③ Complures erant in castris<ref>in castris はβ系写本の記述で、α系写本にはない。</ref> ex legionibus aegri relicti;
**陣営の中には、諸軍団のうちから少なからぬ傷病者たちが残留していた。
*ex quibus qui hoc spatio dierum convaluerant, circiter trecenti(CCC),
**その者たちのうちから、この日々の間に回復していた約300名が、
*sub vexillo una mittuntur;
**<ruby><rb>[[w:ウェクスィッルム|軍旗]]</rb><rp>(</rp><rt>ウェクスィッルム</rt><rp>)</rp></ruby>のもとで一緒に派遣された。
*magna praeterea multitudo calonum, magna vis iumentorum quae in castris subsederant,
**そのうえに、軍属奴隷の大多数、陣営の中に残留していた(ロバなどの)役畜の多数が、
*facta potestate sequitur.
**機会を与えられて、随行した。
===37節===
[[画像:Castra1.png|thumb|right|200px|ローマ式[[w:カストラ|陣営]]([[w:la:Castra_Romana|castra Romana]])の概略図(再掲)。'''7'''が第10大隊の門(porta decumana)で、陣営の裏門に当たる。]]
'''スガンブリー族がキケロの陣営に襲来'''
*① Hoc ipso tempore et casu Germani equites interveniunt
**このまさにその時と状況に、[[w:ゲルマニア|ゲルマーニア]]人の[[w:騎兵|騎兵]]たちが出現して、
*protinusque eodem illo, quo venerant, cursu
**さらに前方へ(彼らが)やって来たのと同じ突進でもって、
*ab decumana porta in castra inrumpere conantur,
**第10大隊の門(=裏門)から陣営の中に突入することを試みた。
**:(訳注:decumana porta は[[ガリア戦記 第2巻#24節|第2巻24節]]で既出、図を参照。)
*② nec prius sunt visi obiectis ab ea parte silvis, quam [[wikt:la:castrum|castris]] adpropinquarent,
**その方面については森林がじゃま立てしていたので(彼らは)陣営に接近するまでは視認されなかったのだ。
*usque eo ut qui sub [[w:la:Vallum|vallo]] tenderent mercatores, recipiendi sui facultatem non haberent.
**そこまで(敵が急に来たので)、防柵の下に宿営していた商人たちが退避する機会を持たなかったほどであった。
*③ Inopinantes nostri re nova perturbantur,
**予感していなかった我が方は、新しい事態に混乱させられて、
*ac vix primum impetum cohors in statione sustinet.
**やっとのことで[[w:歩哨|歩哨]]に就いていた[[w:コホルス|歩兵大隊]]が(敵の)最初の突撃を持ちこたえた。
*④ Circumfunduntur ex reliquis hostes partibus, si quem aditum reperire possent.
**敵たちは、何らかの入口を探り出せないかと、ほかの方面から取り囲んだ。
*⑤ Aegre portas nostri tuentur;
**我が方(=ローマ勢)は辛うじて(四方の)諸門を固守して、
*reliquos aditus locus ipse per se munitioque defendit.
**ほかの入口を、その位置そのものと防備が(敵の突入から)防護した。
*⑥ Totis trepidatur castris,
**陣営の全体が震撼させられて、
*atque alius ex alio causam tumultus quaerit;
**各人がほかの者に騒乱の原因を尋ね合った。
**:(訳注:エブロネス族を追討している最中に、スガンブリー族が来襲するとは予想だにしなかったからである。)
*neque quo signa ferantur, neque quam in partem quisque conveniat provident.
**が、どこへ軍旗が運ばれるのか、どの方面におのおのが集結するのか、判らなかった。
*⑦ Alius iam castra capta pronuntiat,
**ある者は、すでに陣営は占拠されたと公言し、
*alius deleto exercitu atque imperatore victores barbaros venisse contendit;
**別のある者は、軍隊も将軍(カエサル)も滅びて蛮族が勝利者としてやって来たのだ、と断言した。
*⑧ plerique novas sibi ex loco religiones fingunt
**たいていの者たちは、その場所から、新奇な迷信的感情を創り上げ、
*Cottaeque et Tituri calamitatem, qui in eodem occiderint castello,
**同じ砦のところで斃れた[[w:ルキウス・アウルンクレイウス・コッタ|コッタ]]と[[w:クィントゥス・ティトゥリウス・サビヌス|ティトゥリウス(・サビヌス)]]の敗亡を
*ante oculos ponunt.
**眼前に想い描いた。
*⑨ Tali timore omnibus perterritis
**このような怖れによって(陣営内部の)皆が脅えており、
*confirmatur opinio barbaris, ut ex captivo audierant, nullum esse intus praesidium.
**蛮族にとっては、捕虜から聞いていたように、内部に守備隊が存在していないという見解が強められた。
*⑩ Perrumpere nituntur
**(スガンブリー勢は、陣営の防備を)突破することに努め、
*seque ipsi adhortantur, ne tantam fortunam ex manibus dimittant.
**これほどの幸運を手から取りこぼさないように、自分たちが自身を鼓舞した。
===38節===
'''バクルスと百人隊長たちが防戦する'''
*① Erat aeger cum<ref>cum はα系写本の記述で、β系写本では in となっている。</ref> praesidio relictus P.(Publius) Sextius Baculus,
**(キケロの陣営には)プーブリウス・セクスティウス・バクルスが傷病者として、守備兵とともに残されていた。
**:<span style="color:#009900;">(訳注:[[w:la:Publius Sextius Baculus|Publius Sextius Baculus]] などの記事を参照。)</span>
*qui primum pilum ad<ref>ad はα系写本の記述で、β系写本では apud となっている。</ref> Caesarem duxerat,
**その者はカエサルのもとで<ruby><rb>[[w:プリムス・ピルス|首位百人隊長]]</rb><rp>(</rp><rt>プリムス・ピルス</rt><rp>)</rp></ruby> の座に就いていたことがあり、
*cuius mentionem superioribus proeliis fecimus,
**かつての戦闘で彼に言及したが、
**:<span style="color:#009900;">(訳注:[[ガリア戦記 第2巻#25節|第2巻25節]] および [[ガリア戦記 第3巻#5節|第3巻5節]]を参照。)</span>
*ac diem iam quintum cibo caruerat.
**(このとき)食物を欠いてすでに5日目であった。
*② Hic diffisus suae atque omnium saluti inermis ex tabernaculo prodit;
**彼は、自らと皆の身の安全に疑念を抱いて、非武装のまま天幕小屋から出て来て、
*videt imminere hostes atque in summo esse rem discrimine;
**敵たちが迫って来ていること、および事態が重大な危急にあることを目の当たりにして、
*capit arma a proximis atque in porta consistit.
**すぐ近くの者から武器を取って、門のところに陣取った。
*③ Consequuntur hunc centuriones eius cohortis quae in statione erat;
**歩哨に立っていた(1個)<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> の<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオ</rt><rp>)</rp></ruby> たちが彼に追随して、
**:(訳注:1個歩兵大隊の百人隊長は、定員通りであれば、6名いた。)
*paulisper una proelium sustinent.
**しばらく一緒に戦闘を持ちこたえた。
*④ Relinquit animus Sextium gravibus acceptis vulneribus;
**セクスティウス(・バクルス)は重い傷を受けて、気を失った。
*Deficiens<ref>deficiens はβ系写本の記述で、α系写本にはない。</ref> aegre per manus tractus servatur.
**(彼は)衰弱して、(味方の)手から手に運ばれて辛うじて救助された。
*⑤ Hoc spatio interposito reliqui sese confirmant
**こうしてしばらくした後で、ほかの者たちは意を強くした。
*tantum, ut in munitionibus consistere audeant speciemque defensorum praebeant.
**(それは)防壁にあえて陣取って、防戦者たちの姿を示したほどであった。
===39節===
'''スガンブリー族が糧秣徴発部隊をも襲う'''
*① Interim confecta frumentatione milites nostri clamorem exaudiunt;
**その間に、糧秣徴発を成し遂げると、我が方の兵士たち(=ローマ軍団兵)は叫び声を聞きつけて、
*praecurrunt equites;
**[[w:騎兵|騎兵]]たちが先駆けして、
*quanto res sit in periculo cognoscunt.
**事態がどれほどの危険にあるかを認識した。
*② Hic vero nulla munitio est quae perterritos recipiat;
**そこには、まさに、脅え上がった者たちを受け入れるような、いかなる防備もなかったのである。
*modo conscripti atque usus militaris imperiti
**やっと徴集されたばかりの者たち、なおかつ兵役の経験に通じていない者たちは、
*ad tribunum militum centurionesque ora convertunt;
**<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby>や<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオ</rt><rp>)</rp></ruby>たちの方へ顔を向けた。
*quid ab his praecipiatur exspectant.
**彼ら(上官たち)によって何を指図されるか、待っていたのである。
*③ Nemo est tam fortis, quin rei novitate perturbetur.
**新奇な事態に不安にさせられないほど勇敢な者は、誰もいなかった。
*④ Barbari signa procul conspicati oppugnatione desistunt,
**蛮族たちは、(糧秣徴発隊の)軍旗を遠くから視認すると、(陣営への)攻囲を停止した。
*redisse primo legiones credunt, quas longius discessisse ex captivis cognoverant;
**(彼らは)当初は、より遠くに立ち去ったことを捕虜から知っていた(ローマの)諸軍団が戻って来たと思ったが、
*postea despecta paucitate ex omnibus partibus impetum faciunt.
**後には、(糧秣徴発隊の)寡勢ぶりを侮って、あらゆる方向から突撃して来た。
===40節===
'''敵中突破して陣営へ戻る糧秣徴発部隊の明暗'''
*① Calones in proximum tumulum procurrunt.
**[[w:カロネス|軍属奴隷]]たちは、近隣の丘に先駆けした。
*Hinc celeriter deiecti
**(彼らは)ここから、(突撃して来る敵の軍勢を眺めて)たちまち当てが外れて、
*se in signa manipulosque coniciunt;
**(後方にいた)軍旗と[[w:マニプルス|歩兵中隊]]のところに身を投じた。
*eo magis timidos perterrent milites.
**それゆえに、臆病な兵士たちを大いに脅かした。
[[画像:Wedge-diagram.svg|thumb|right|200px|[[w:くさび|楔(くさび)]]の図。本節で述べられているのは、ローマ勢が楔(図の黒い部分)のように突撃することにより、敵を中央突破しようという戦術であろう。]]
*② Alii cuneo facto ut celeriter perrumpant, censent
**(ローマ兵の)ある者たちは、速やかに(敵中を)突破するように、<ruby><rb>[[w:くさび|楔形]]</rb><rp>(</rp><rt>くさびがた</rt><rp>)</rp></ruby>隊列を形成しようと考慮した。
*─ quoniam tam propinqua sint castra,
**─ 陣営がこれほどまで近隣にあるので、
*etsi pars aliqua circumventa ceciderit, at reliquos servari posse confidunt ─,
**たとえ、一部の誰かが包囲されて斃れたとしても、残りの者たちは救われることが可能だと確信したのだ ─。
*③ alii ut in iugo consistant atque eundem omnes ferant casum.
**別のある者たちは、(丘の)尾根に陣取って、皆が同じ命運に耐え忍ぼうと(考えた)。
*④ Hoc veteres non probant milites, quos sub vexillo una profectos docuimus.
**既述したように軍旗のもとで一緒に発って来た古参兵たちは、後者(の案)を承認しなかった。
**:(訳注:[[#36節|36節]]③項で既述のように、回復した傷病兵たちが同行してきていた。)
*Itaque inter se cohortati
**こうして、(古参の傷病兵たちは)互いに激励し合って、
*duce C.(Gaio) Trebonio equite Romano, qui iis erat praepositus,
**彼らの指揮を委ねられていたローマ人[[w:騎士|騎士階級]]のガイウス・トレボニウスを統率者として、
**:(訳注:[[#33節|33節]]で3個軍団を率いて出発した副官の[[w:ガイウス・トレボニウス|ガイウス・トレボニウス]]とは明らかに同名の別人である。)
*per medios hostes perrumpunt incolumesque ad unum omnes in castra perveniunt.
**敵たちの中央を突破して、一人に至るまで皆が無傷で陣営に到着した。
*⑤ Hos subsecuti calones equitesque eodem impetu militum virtute servantur.
**彼らに追随して、軍属奴隷と[[w:騎兵|騎兵]]たちが同様の突撃をして、兵士たちの武勇により救われた。
*⑥ At ii qui in iugo constiterant,
**それに対して(丘の)尾根に陣取った者たちは、
*nullo etiam nunc usu rei militaris percepto
**今になってさえも、軍事的行動というものを把握しておらず、
*neque in eo quod probaverant consilio permanere, ut se loco superiore defenderent,
**より高い場所で身を守るという、彼らが承認していた考えに留まりもせず、
*neque eam quam prodesse aliis vim celeritatemque viderant, imitari potuerunt,
**(彼らが)別の者たち(=古参兵)に役立ったのを見ていたところの力と迅速さを真似することもできなかった。
*sed se in castra recipere conati iniquum in locum demiserunt.
**けれども、陣営に退却することを試みたが、不利な場所に落ち込んで行った。
*⑦ Centuriones, quorum nonnulli ex inferioribus ordinibus reliquarum legionum
**[[w:ケントゥリオ|百人隊長]]たちといえば、彼らの少なからぬ者たちは、ほかの[[w:ローマ軍団|軍団]]のより低い序列から、
*virtutis causa in superiores erant ordines huius legionis traducti,
**武勇のおかげで、この軍団のより高い序列に異動させられていたが、
*ne ante partam rei militaris laudem amitterent, fortissime pugnantes conciderunt.
**かつて獲得した軍事的な賞賛を失わないように、とても果敢に奮戦して斃れた。
*⑧ Militum pars horum virtute
**兵士たちの一部は、これら(討ち死にした百人隊長たち)の武勇により、
*submotis hostibus praeter spem incolumis in castra pervenit,
**予想に反して敵たちが撃退されたので、無傷で陣営に到着した。
*pars a barbaris circumventa periit.
**別の一部は、蛮族によって包囲されて、討ち死にした。
===41節===
'''スガンブリー族の撤退、カエサルの帰還'''
*① Germani desperata expugnatione castrorum,
**[[w:ゲルマニア|ゲルマーニア]]人たちは(キケロの)[[w:カストラ|陣営]]の攻略に絶望して、
*quod nostros iam constitisse in munitionibus videbant,
**というのは、我が方(ローマ勢)が防備のところに立っているのを見たからであるが、
*cum ea praeda quam in silvis deposuerant, trans Rhenum sese receperunt.
**森の中にしまい込んでいた略奪品とともに、レヌス(=[[w:ライン川|ライン川]])の向こう側に撤退した。
*② Ac tantus fuit etiam post discessum hostium terror,
**敵たちの立ち去った後でさえ(ローマ勢の)畏怖はたいへんなものであったので、
*ut ea nocte, cum C.(Gaius) Volusenus missus cum equitatu ad castra venisset,
**その夜に、(追討戦に)派遣されていたガーイウス・ウォルセーヌスが騎兵隊とともに陣営へ帰着したときに
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:en:Gaius Volusenus|Gaius Volusenus]]'' は、[[ガリア戦記_第3巻#5節|第3巻5節]]のアルプス・オクトードゥールスの戦い、<br> [[ガリア戦記_第4巻#21節|第4巻21節]]・[[ガリア戦記_第4巻#23節|23節]]のブリタンニアへの先遣で既述。<br> この後、さらに第8巻23節<sub>([[s:la:Commentarii_de_bello_Gallico/Liber_VIII#23|s]])</sub>、48節<sub>([[s:la:Commentarii_de_bello_Gallico/Liber_VIII#48|s]])</sub>でも活躍する。)</span>
*fidem non faceret adesse cum incolumi Caesarem exercitu.
**カエサルが無傷の軍隊とともに近くに来ていることを(陣営の残留組に)信用させなかったほどである。
*③ Sic omnino animos timor praeoccupaverat, ut paene alienata mente
**ほとんど気でも違ったかのように、皆の心を怖れが占めていた。
**:(訳注:sic … ut ~ の構文;「~と同様に…である」)
*deletis omnibus copiis equitatum se ex fuga recepisse dicerent
**(残留者たちは、カエサルら)全軍勢が滅ぼされて、[[w:騎兵|騎兵隊]]が敗走から退いて来たのだ、と言った。
*neque incolumi exercitu Germanos castra oppugnaturos fuisse contenderent.
**(カエサルら)軍隊が無傷であれば、ゲルマーニア人が陣営を襲撃しなかっただろう、と断言した。
**:(訳注:oppugnaturos fuisse ;間接話法では非現実な[[w:条件法|条件文]]の帰結は「未来分詞+fuisse」で表される。)
*④ Quem timorem Caesaris adventus sustulit.
**その怖れをカエサルの到着が取り除いた。
**:(訳注:sustulit は tollō の完了・能動3人称単数形)
===42節===
'''カエサルがスガンブリー族の襲来と撤退を運命に帰する'''
*① Reversus ille, eventus belli non ignorans,
**引き返して来た彼(カエサル)は、戦争の成り行きというものを知らないはずがないので、
*unum quod cohortes ex statione et praesidio essent emissae,
**ひとつ(だけ)、<ruby><rb>[[w:コホルス|諸大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> が[[w:歩哨|歩哨]]や守備から(糧秣徴発に)派遣されたことを
*questus ─ ne minimo quidem casu locum relinqui debuisse ─
**不慮の事態に対して最小限のいかなる余地も残されるべきではなかった、と嘆いた。
*multum Fortunam in repentino hostium adventu potuisse iudicavit,
**不意の敵たちの到来においては運命(の女神)が大いに力を持つ、と断じた。
*② multo etiam amplius, quod paene ab ipso vallo portisque castrorum barbaros avertisset.
**さらに、より一層大きかったのは、(運命が)ほとんど蛮族をその陣営の防柵と諸門から追い返してしまったことである。
*③ Quarum omnium rerum maxime admirandum videbatur,
**それらのすべての事態でとりわけ驚くべきと思われたのは、
*quod Germani, qui eo consilio Rhenum transierant, ut Ambiorigis fines depopularentur,
**その意図で[[w:アンビオリクス|アンビオリクス]]の領土を荒らすようにレヌス(=[[w:ライン川|ライン川]])を渡河していた[[w:ゲルマニア|ゲルマーニア]]人が、
*ad castra Romanorum delati
**ローマ人の陣営の方へそらされて、
*optatissimum Ambiorigi beneficium obtulerunt.
**アンビオリクスに最も望ましい恩恵を施してしまったことである。
==対エブロネス族追討戦(2)==
===43節===
'''アンビオリクスが辛うじて追討を逃れる'''
*① Caesar rursus ad vexandos hostes profectus
**カエサルは再び敵たちを苦しめるために出発して、
*magno coacto <equitum> numero ex finitimis civitatibus in omnes partes dimittit.
**[[w:騎兵|騎兵]]の多数を隣接する諸部族から徴集して、あらゆる方面に派遣した。
**:(訳注:<equitum> 「騎兵の」は近代の校訂者による挿入である。)
*② Omnes vici atque omnia aedificia quae quisque conspexerat incendebantur,
**おのおのが目にしたすべての村々およびすべての建物が焼き打ちされた。
*pecora interficiebantur<ref>pecora interficiebantur はβ系写本の記述で、α系写本にはない。</ref>, praeda ex omnibus locis agebatur;
**家畜は屠殺され、あらゆる場所から略奪品が奪い去られた。
*③ frumenta non solum tanta multitudine iumentorum atque hominum consumebantur,
**役畜および人間たちのこれほど大勢により穀物が消費され尽くしたのみならず、
*sed etiam anni tempore atque imbribus procubuerant,
**季節と豪雨によってさえも(穀物が)倒れた。
*ut si qui etiam in praesentia se occultassent,
**その結果、もし(エブロネス族の)何者かが現状では身を隠しているとしても、
*tamen his deducto exercitu rerum omnium inopia pereundum videretur.
**それでも彼らは(ローマ人の)軍隊が引き揚げれば、あらゆるものの欠乏により死滅するはずと思われた。
*④ Ac saepe in eum locum ventum est tanto in omnes partes diviso equitatu,
**たいへん多くの騎兵隊があらゆる方面に分遣されて、しばしば以下のような状態に出くわした。
*ut non modo visum ab se Ambiorigem in fuga circumspicerent captivi
**捕虜たちが、自分たちによって逃亡中の[[w:アンビオリクス|アンビオリクス]]が目撃されたと見回しただけでなく、
*nec plane etiam abisse ex conspectu contenderent,
**(アンビオリクスが)視界からまったく消え去ってはいないとさえ主張した。
*⑤ ut spe consequendi inlata atque infinito labore suscepto,
**その結果、(アンビオリクスを)追跡する希望がもたらされて、さらに限りない労苦が従事された。
*qui se summam ab Caesare gratiam inituros putarent,
**カエサルから最高の恩恵を得ようと思った者たちは、
*paene naturam studio vincerent,
**熱意により(身体的な)資質にほとんど打ち克ったが、
*semperque paulum ad summam felicitatem defuisse videretur,
**いつも最高の恵みにあと少しで足りなかったと思われる。
*⑥ atque ille latebris aut silvis<ref>aut silvis はβ系写本の記述で、α系写本にはない。</ref> aut saltibus se eriperet
**かつ彼(アンビオリクス)は隠れ処、あるいは森林、あるいは峡谷によって自らを救い、
*et noctu occultatus alias regiones partesque peteret
**夜に秘されて、別の地方や方面をめざした。
*non maiore equitum praesidio quam quattuor,
**4名より多くない騎兵の護衛によって、
*quibus solis vitam suam committere audebat.
**自らの生命をその者たちだけにあえて委ねたのだ。
===44節===
'''カエサルが撤退し、造反者アッコを処刑する'''
*① Tali modo vastatis regionibus
**このようなやり方で(エブロネス族の)諸地域を荒廃させて、
[[画像:Porte_Mars_01.jpg|thumb|right|200px|ドゥロコルトルム(現在の[[w:ランス (マルヌ県)|ランス]])に建てられた帝政ローマ時代(3世紀)の[[w:凱旋門|凱旋門]]。]]
*exercitum Caesar duarum cohortium damno [[w:la:Remi|Durocortorum]] Remorum reducit
**カエサルは、2個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> の損失(だけ)で、軍隊を[[w:レミ族|レミ族]]の[[w:ドゥロコルトルム|ドゥロコルトルム]]に連れ戻して、
**:(訳注:ドゥロコルトルムはレミ族の首邑で、現在の[[w:ランス (マルヌ県)|ランス]] Reims である。)
*concilioque in eum locum Galliae indicto
**その地においてガッリアの(領袖たちの)会合を公示して、
*de coniuratione Senonum et Carnutum quaestionem habere instituit
**[[w:セノネス族|セノネス族]]と[[w:カルヌテス族|カルヌテス族]]の共謀について詮議することを決定した。
*② et de Accone, qui princeps eius consilii fuerat,
**その謀計の首謀者であった[[w:アッコ (セノネス族)|アッコ]]については
*graviore sententia pronuntiata more maiorum supplicium sumpsit.
**より重い判決が布告され、(ローマ人の)先祖の習慣により極刑に処した。
**:(訳注:ローマ史家[[w:テオドール・モムゼン|モムゼン]]は、アッコはローマの<ruby><rb>[[w:リクトル|先導吏]]</rb><rp>(</rp><rt>リクトル</rt><rp>)</rp></ruby> により[[w:斬首刑|斬首]]されたと言及している<ref>『モムゼン ローマの歴史Ⅳ』長谷川博隆訳、名古屋大学出版会、p.233 を参照。</ref>。
**:外国から来た侵略者カエサルがこのような刑罰を下したことに、ガッリア人たちは憤激した。[[ガリア戦記 第7巻#1節|第7巻1節]]を参照。)
*③ Nonnulli iudicium veriti profugerunt.
**少なからぬ者たちは、裁判を恐れて逃走した。
*Quibus cum aqua atque igni interdixisset,
**その者たちには水と火が禁じられたうえで、
**:(訳注:「水と火を禁じる」とは追放処分のことで、居住権や財産の没収などを指す。)
*duas legiones ad fines Treverorum, duas in Lingonibus,
**2個[[w:ローマ軍団|軍団]]をトレーウェリー族の領土へ、2個(軍団)を[[w:リンゴネス族|リンゴネス族]](の領土)に、
*sex reliquas in Senonum finibus [[w:la:Agedincum|Agedinci]] in hibernis conlocavit
**残りの6個(軍団)を[[w:セノネス族|セノネス族]]の領土の[[w:アゲディンクム|アゲディンクム]]に、冬営地に宿営させた。
**:(訳注:アゲディンクムは、現在の[[w:サン (ヨンヌ県)|サン]] Sens である。)
*frumentoque exercitui proviso,
**軍隊の糧秣を調達してから、
*ut instituerat, in Italiam ad conventus agendos profectus est.
**定めていたように、イタリアに開廷(巡回裁判)を行なうために出発した。
**:(訳注:ここで「イタリア」とはカエサルが総督を務める[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]のことと思われる。)
----
*<span style="background-color:#99ff99;">「ガリア戦記 第6巻」了。「[[ガリア戦記 第7巻]]」へ続く。</span>
==脚注==
<references />
==参考リンク==
*ウィキペディア英語版・日本語版
**[[w:en:Category:Tribes of ancient Gaul|Category:Tribes of ancient Gaul]]([[w:Category:ガリアの部族|Category:ガッリアの部族]])
***[[w:en:Eburones|Eburones]]([[w:エブロネス族|エブロネス族]])
***[[w:en:Nervii|Nervii]]([[w:ネルウィイ族|ネルウィイ族]])
***[[w:en:Senones|Senones]](セノネス族)- [[w:la:Senones|la:Senones]]
***[[w:en:Carnutes|Carnutes]](カルヌテス族)
***[[w:en:Parisii (Gaul)|Parisii (Gaul)]]([[w:パリシイ族|パリスィ族]])
****[[w:en:Lutetia|Lutetia]]([[w:ルテティア|ルテティア]])
***[[w:en:Menapii|Menapii]](メナピイ族)
***[[w:en:Treveri|Treveri]](トレーウェリー族)
***[[w:en:Aedui|Aedui]]([[w:ハエドゥイ族|ハエドゥイ族]])
***[[w:en:Sequani|Sequani]](セクアニ族)
***[[w:en:Remi|Remi]](レーミー族)
**[[w:en:Category:Germanic peoples|Category:Germanic peoples]](ゲルマーニア人のカテゴリ)
***[[w:en:Category:Ancient Germanic peoples|Category:Ancient Germanic peoples]](古代ゲルマーニア人)
***[[w:en:Germanic peoples|Germanic peoples]](ゲルマーニア人)
***[[w:en:Ubii|Ubii]](ウビイー族)
***[[w:en:Suebi|Suebi]]([[w:スエビ族|スエービー族]])
***[[w:en:Chatti|Chatti]](カッティー族)
***[[w:en:Cherusci|Cherusci]](ケールスキー族)
***[[w:en:Sicambri|Sicambri]](スガンブリー族)
***[[w:en:Hercynian Forest|Hercynian Forest]](ヘルキュニアの森)
**地理学者・史家
***[[w:en:Posidonius|Posidonius]]([[w:ポセイドニオス|ポセイドニオス]];BC135-51年頃)- [[w:la:Posidonius Apameus|la:Posidonius Apameus]]
***[[w:en:Diodorus Siculus|Diodorus Siculus]]([[w:シケリアのディオドロス|シケリアのディオドロス]];BC1世紀) - [[w:la:Diodorus Siculus|la:Diodorus Siculus]]
****〔ウィキソース ギリシア語版:[[s:el:Διόδωρος Σικελιώτης|Διόδωρος Σικελιώτης]](シケリアのディオドロス)- [[s:el:Ιστορική Βιβλιοθήκη|Ιστορική Βιβλιοθήκη]](歴史叢書)〕
***[[w:en:Strabo|Strabo]]([[w:ストラボン|ストラボン]];BC63年頃–AD24年頃)- [[w:la:Strabo|la:Strabo]]
****〔ウィキソース ギリシア語版:[[s:el:Στράβων|Στράβων]](ストラボン) - [[s:el:Γεωγραφία|Γεωγραφία]](世界地誌)〕
***[[w:en:Tacitus|Tacitus]]([[w:タキトゥス|タキトゥス]];56年頃–117年頃)- [[w:la:Cornelius Tacitus|la:Cornelius Tacitus]]
****[[w:en:Germania (book)|Germania (book)]]([[w:ゲルマニア (書物)|ゲルマーニア (書物)]])- [[w:la:Germania (opus Taciti)|la:Germania (opus Taciti)]]
***[[w:en:Pomponius Mela|Pomponius Mela]](ポンポニウス・メラ;1世紀)- [[w:la:Pomponius Mela|Pomponius Mela]]
***[[w:en:Athenaeus|Athenaeus]]([[w:アテナイオス|アテナイオス]];2世紀頃)- [[w:la:Athenaeus Naucratita|la:Athenaeus Naucratita]]
***[[w:en:Theodor Mommsen|Theodor Mommsen]]([[w:テオドール・モムゼン|テオドール・モムゼン]];19世紀)- [[w:la:Theodorus Mommsen|la:Theodorus Mommsen]]
**[[w:en:Category:Celtic culture|Category:Celtic culture]](ケルト文化)
**[[w:en:Category:Celtic mythology|Category:Celtic mythology]]([[w:Category:ケルト神話|Category:ケルト神話]])
***[[w:en:Druid|Druid]]([[w:ドルイド|ドルイド]]) - [[w:la:Druis|la:Druis]]
***[[w:en:Wicker Man|Wicker Man]]([[w:ウィッカーマン|ウィッカーマン]])
**[[w:en:Category::Celtic_gods|Category::Celtic_gods]](ケルトの神々)
**[[w:en:Category:Ancient Gaulish and British gods|Category:Ancient Gaulish and British gods]](古代ガッリアとブリタニアの神々)
***[[w:en:Taranis|Taranis]](タラニス)
***[[w:en:Cernunnos|Cernunnos]](ケルヌンノス)
***[[w:en:Dis Pater|Dis Pater]](ディス・パテル)
***[[w:en:Sucellus|Sucellus]](スケッルス)
**カエサルの副官たち
***[[w:en:Titus_Labienus|Titus Labienus]]([[w:ティトゥス・ラビエヌス|ティトゥス・ラビエヌス]])- [[w:la:Titus_Labienus|la:Titus Labienus]]
***[[w:en:Trebonius|Gaius Trebonius]]([[w:ガイウス・トレボニウス|ガイウス・トレボニウス]])- [[w:la:Gaius Trebonius|la:Gaius Trebonius]]
***[[w:en:Quintus_Tullius_Cicero|Quintus Tullius Cicero]]([[w:クィントゥス・トゥッリウス・キケロ|クィントゥス・トゥッリウス・キケロ]])- [[w:la:Quintus_Tullius_Cicero|la:Quintus Tullius Cicero]]
***[[w:en:|en:]]([[w:|w:]])
***[[w:en:|en:]]([[w:|w:]])
*ウィクショナリー フランス語版
**[[wikt:fr:calo]](カーロー、軍属奴隷)
4oyeim4scrar1kjdwerbr4mkuitk04i
263031
263027
2024-11-04T15:28:54Z
Linguae
449
/* 7節 */ 修整
263031
wikitext
text/x-wiki
[[Category:ガリア戦記|6]]
[[ガリア戦記]]> '''第6巻''' >[[ガリア戦記 第6巻/注解|注解]]
<div style="text-align:center">
<span style="font-size:20px; font-weight:bold; font-variant-caps: petite-caps; color:white; background: rgb(47,94,255);background: linear-gradient(180deg, rgba(47,94,255,1) 0%, rgba(24,56,255,1) 50%, rgba(0,8,255,1) 100%);"> C IVLII CAESARIS COMMENTARIORVM BELLI GALLICI </span>
<span style="font-size:40px; font-weight:bold; color:white; background: rgb(47,94,255);background: linear-gradient(180deg, rgba(47,94,255,1) 0%, rgba(24,56,255,1) 50%, rgba(0,8,255,1) 100%);"> LIBER SEXTVS </span>
</div>
[[画像:Gaule_-53.png|thumb|right|150px|ガリア戦記 第6巻の情勢図(BC53年)。<br>黄色の領域がローマ領。桃色が同盟部族領。]]
{| id="toc" style="align:left;clear:all;" align="left" cellpadding="5"
! style="background:#ccccff; text-align:left;" colspan="2" | ガリア戦記 第6巻 目次
|-
| style="text-align:right; font-size: 0.86em;"|
'''[[#ガッリア北部の平定|ガッリア北部の平定]]''':<br />
'''[[#第二次ゲルマーニア遠征|第二次ゲルマーニア遠征]]''':<br />
'''[[#ガッリア人の社会と風習について|ガッリア人の社会と風習について]]''':<br />
'''[[#ゲルマーニアの風習と自然について|ゲルマーニアの風習と自然について]]''':<br />
'''[[#対エブロネス族追討戦(1)|対エブロネス族追討戦(1)]]''':<br />
'''[[#スガンブリー族のアドゥアトゥカ攻略戦|スガンブリー族のアドゥアトゥカ攻略戦]]''':<br />
'''[[#対エブロネス族追討戦(2)|対エブロネス族追討戦(2)]]''':<br />
<br />
<br />
<br />
<br />
<br />
| style="text-align:left; font-size: 0.86em;"|
[[#1節|01節]] |
[[#2節|02節]] |
[[#3節|03節]] |
[[#4節|04節]] |
[[#5節|05節]] |
[[#6節|06節]] |
[[#7節|07節]] |
[[#8節|08節]] <br />
[[#9節|09節]] |
[[#10節|10節]] <br />
[[#11節|11節]] |
[[#12節|12節]] |
[[#13節|13節]] |
[[#14節|14節]] |
[[#15節|15節]] |
[[#16節|16節]] |
[[#17節|17節]] |
[[#18節|18節]] |
[[#19節|19節]] |
[[#20節|20節]] <br />
[[#21節|21節]] |
[[#22節|22節]] |
[[#23節|23節]] |
[[#24節|24節]] |
[[#25節|25節]] |
[[#26節|26節]] |
[[#27節|27節]] |
[[#28節|28節]] <br />
[[#29節|29節]] |
[[#30節|30節]] |
[[#31節|31節]] |
[[#32節|32節]] |
[[#33節|33節]] |
[[#34節|34節]] <br />
[[#35節|35節]] |
[[#36節|36節]] |
[[#37節|37節]] |
[[#38節|38節]] |
[[#39節|39節]] |
[[#40節|40節]] |
[[#41節|41節]] |
[[#42節|42節]] <br/>
[[#43節|43節]] |
[[#44節|44節]] <br/>
1節 [[#コラム「カエサルの軍団」|コラム「カエサルの軍団」]]<br>
10節 [[#コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」|コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」]]<br>10節 [[#コラム「ガッリア・ゲルマーニアの地誌・民族誌について」|コラム「ガッリア・ゲルマーニアの地誌・民族誌について」]]<br />
[[#脚注|脚注]]<br />
[[#参考リンク|参考リンク]]<br />
|}
<br style="clear:both;" />
__notoc__
<div style="background-color:#dfffdf;">
==<span style="color:#009900;">はじめに</span>==
:<div style="color:#009900;width:85%;">カエサルは、第1巻の年([[w:紀元前58年|紀元前58年]])から<ruby><rb>[[w:プロコンスル|前執政官]]</rb><rp>(</rp><rt>プロコンスル</rt><rp>)</rp></ruby>として属州総督に赴任した。が、これは[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]、[[w:イリュリクム|イッリュリクム]]および[[w:ガリア・ナルボネンシス|ガッリア・トラーンサルピーナ]]の三属州の統治、および4個軍団を5年間にもわたって任されるというローマ史上前代未聞のものであった。これはカエサルが[[w:マルクス・リキニウス・クラッスス|クラッスス]]、[[w:グナエウス・ポンペイウス|ポンペイウス]]と非公式な盟約を結んだ[[w:三頭政治#第一回三頭政治|三頭政治]]の成果であった。カエサルには属州の行政に従事する気持ちははじめからなく、任期のほとんどを夏季は[[w:ガリア戦争|ガッリア侵攻]]に、冬季は首都ローマへの政界工作に費やした。[[ガリア戦記_第3巻#はじめに|第3巻]]の年([[w:紀元前56年|紀元前56年]])に3人は[[w:ルッカ|ルカ]]([[w:la:Luca|Luca]])の会談を行い、カエサルはクラッススとポンペイウスが翌年に執政官になること、カエサルの総督の任期をさらに5年間延長されることを求めた。会談の結果、任期が大幅に延長されることになったカエサルは、もはや軍事的征服の野望を隠そうとせず、ガッリアに止まらず、[[w:ゲルマニア|ゲルマーニア]]や[[w:ブリタンニア|ブリタンニア]]の征服へと向かっていく。一方、第4巻の年([[w:紀元前55年|前55年]])に再び執政官になった二人は、[[w:パルティア|パルティア]]を攻略するためにクラッススが[[w:シリア属州|シュリア]]総督になること、ポンペイウスがカエサルと同様に[[w:ヒスパニア|両ヒスパーニア]]と[[w:アフリカ属州|アフリカ]]の三属州の総督になって4個軍団を任されることを決める。</div>
<div style="text-align:center">
{|
|-
|[[画像:First Triumvirate of Caesar, Crassius and Pompey.jpg|thumb|right|500px|後に[[w:三頭政治#第一回三頭政治|三頭政治]](<span style="font-family:Times New Roman;">[[w:la:Triumviratus|Triumviratus]]</span>)と呼ばれることになる非公式な盟約を結んでいた、左から[[w:ガイウス・ユリウス・カエサル|カエサル]]、[[w:マルクス・リキニウス・クラッスス|クラッスス]]、[[w:グナエウス・ポンペイウス|ポンペイウス]]。<br>3人の同盟はついに破綻の時を迎える。]]
|}
</div>
:<div style="color:#009900;width:85%;">[[w:ガリア戦記 第5巻|第5巻]]の年([[w:紀元前54年|前54年]])、カエサルは満を持して二回目の[[w:ローマによるブリタンニア侵攻 (紀元前55年-紀元前54年)|ブリタンニア侵攻]]を敢行するが、大した戦果は得られず、背後のガッリア情勢を気にしながら帰還する。ついに[[w:アンビオリクス|アンビオリークス]]率いる[[w:エブロネス族|エブローネース族]]、ついで[[w:ネルウィイ族|ネルウィイー族]]が反乱を起こし、カエサルは何とか動乱を鎮めるが、ガッリア諸部族の動きは不穏であり、カエサルは諸軍団とともに越冬することを決める。</div>
:<div style="color:#009900;width:85%;">カエサルがブリタンニア遠征で不在の間に、ポンペイウスに嫁していたカエサルの一人娘[[w:ユリア (ガイウス・ユリウス・カエサルの娘)|ユーリア]]が[[w:産褥|産褥]]で命を落とす。一方、クラッススは属州[[w:シリア属州|シュリア]]に向かうが、これはクラッススの命運とともに三頭政治の瓦解、カエサルとポンペイウスの関係悪化を招来することになる。</div>
:<div style="color:#009900;width:85%;">本巻の年([[w:紀元前53年|前53年]])、カエサルは[[w:エブロネス族|エブローネース族]]追討戦に向かうが、これは大きな嵐の前の出来事に過ぎない。</div>
</div>
<!--
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
==ガッリア北部の平定==
===1節===
*<span style="background-color:#ffd;">[[/注解/1節]] {{進捗|00%|2024-09-18}}</span>
;カエサルがポンペイウスの助けにより新兵を徴募する
*<!--❶-->Multis de causis Caesar maiorem Galliae [[wikt:en:motus#Noun_2|motum]] [[wikt:en:exspectans|exspectans]]
**多くの理由から、カエサルは、ガッリアのより大きな動乱を予期しており、
*per [[wikt:en:Marcus#Latin|Marcum]] [[wikt:en:Silanus#Latin|Silanum]], [[wikt:en:Gaius#Latin|Gaium]] [[wikt:en:Antistius#Latin|Antistium]] Reginum, [[wikt:en:Titus#Latin|Titum]] [[wikt:en:Sextius#Latin|Sextium]], legatos,
**<ruby><rb>[[w:レガトゥス|総督副官]]</rb><rp>(</rp><rt>レガトゥス</rt><rp>)</rp></ruby>の[[w:マルクス・ユニウス・シラヌス (紀元前25年の執政官)|マールクス・スィーラーヌス]]、ガーイウス・アンティスティウス・レーギーヌス、ティトゥス・セクスティウスを介して
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[w:en:Marcus Junius Silanus (consul 25 BC)|Mārcus Iūnius Sīlānus]] はこの年([[w:紀元前53年|前53年]])からカエサルの副官、[[w:紀元前25年|前25年]]に執政官。<br> ''[[w:fr:Caius Antistius Reginus|Gaius Antistius Reginus]]'' は副官として[[ガリア戦記_第7巻#83節|第7巻83節]]と[[ガリア戦記_第7巻#90節|90節]]でも後出。<br> [[w:en:Titus Sextius|Titus Sextius]] はこの年からカエサルの副官、[[ガリア戦記_第7巻#83節|第7巻83節]]でも後出、<br> [[w:三頭政治#第二回三頭政治|第二回三頭政治]]では[[w:アフリカ属州|アフリカ属州]]の総督を務め、[[w:マルクス・アエミリウス・レピドゥス|レピドゥス]]に引き継ぐ。)</span>
*[[wikt:en:dilectus#Noun|dilectum]] habere [[wikt:en:instituo#Latin|instituit]];
**<small>(兵士の)</small>徴募を行なうことを決める。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:dilectus#Noun|dīlēctus]] = [[wikt:en:delectus#Noun_2|dēlēctus]]「選択、徴募」)</span>
:
*<!--❷-->simul ab [[wikt:en:Gnaeus#Latin|Gnaeo]] [[wikt:en:Pompeius#Proper_noun|Pompeio]] [[wikt:en:proconsul#Latin|proconsule]] [[wikt:en:peto#Latin|petit]],
**同時に、<ruby><rb>[[w:プロコンスル|前執政官]]</rb><rp>(</rp><rt>プロコンスル</rt><rp>)</rp></ruby>の[[w:グナエウス・ポンペイウス|グナエウス・ポンペイウス]]に<small>(以下のことを)</small>求める。
*[[wikt:en:quoniam#Latin|quoniam]] ipse ad <u>urbem</u> cum imperio rei publicae causa [[wikt:en:remaneo#Latin|remaneret]],
**<small>(ポンペイウス)</small>自身は<u>首都</u><small>〔[[w:ローマ|ローマ市]]〕</small>の辺りに、<ruby><rb>[[w:インペリウム|軍隊司令権]]</rb><rp>(</rp><rt>インペリウム</rt><rp>)</rp></ruby>を伴って、国務のために留まっていたので、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:urbs#Latin|urbs (urbem)]] は普通名詞として「都市・街」を意味するが、特に首都'''[[w:ローマ|ローマ市]]'''を指す。)</span>
**:<span style="color:#009900;">(訳注:ポンペイウスは、第4巻の年([[w:紀元前55年|前55年]])に[[w:マルクス・リキニウス・クラッスス|クラッスス]]とともに[[w:執政官|執政官]]を務め、<br> 第5巻の年(昨年=[[w:紀元前54年|前54年]])には[[w:ヒスパニア|両ヒスパーニア]]と[[w:アフリカ属州|アフリカ]]の属州総督となったが、<br> 首都ローマの政局が気がかりであったため、任地には副官を派遣して、<br> 自らはローマ郊外に滞在していた。ただ彼は属州総督であったため、<br> [[w:ポメリウム|ポメリウム]]と呼ばれるローマ市中心部に立ち入ることは禁じられていた。)</span>
*quos ex [[wikt:en:cisalpinus#Latin|Cisalpina]] Gallia <u>consulis</u> [[wikt:en:sacramentum#Latin|sacramento]] [[wikt:en:rogo#Latin|rogavisset]],
**[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]の内から、<ruby><rb>[[w:執政官|執政官]]</rb><rp>(</rp><rt>コンスル</rt><rp>)</rp></ruby>のための宣誓を求めていた者たちに、
**:<span style="color:#009900;">(訳注:ポンペイウスは執政官のときに元老院の許可を得て、<br> カエサルの属州で、自らの属州に派遣するための4個軍団の徴募を行った。<br> 徴集された新兵たちは執政官に宣誓したようである。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、主要写本ω では [[wikt:en:consulis#Noun|consulis]]「執政官の」だが、<br> [[ガリア戦記/注解編/写本と校訂版#Ciacconius|Ciacconius]]は [[wikt:en:consul#Latin|consul]]「執政官が」と修正提案している。)</span>
*ad signa [[wikt:en:convenio#Latin|convenire]] et ad se [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iuberet]],
**軍旗のもとに集まって、自分<small>〔カエサル〕</small>のもとへ進発することを命じるようにと。
**:<span style="color:#009900;">(訳注:カエサルは、ポンペイウスに軍団兵の融通を求めたわけだ。<br> ポンペイウスが執政官のときに徴募していたうちの1個軍団がカエサルに貸し出された。<br> ところがその後、<u>第8巻54節の記述</u>によれば <ref>ラテン語文は、[[s:la:Commentarii_de_bello_Gallico/Liber_VIII#54]] などを参照。</ref><ref>英訳は、[[s:en:Commentaries_on_the_Gallic_War/Book_8#54]] などを参照。</ref>、[[w:マルクス・リキニウス・クラッスス|クラッスス]]の死後に、[[w:元老院|元老院]]は、<br> 対[[w:パルティア|パルティア]]戦争のために、カエサルとポンペイウスがそれぞれ1個軍団を供出することを可決したが、<br> ポンペイウスはカエサルに1個軍団の返還を求めたので、<br> カエサルは計2個軍団の引き渡しを求められることになる。<br> このことは、[[内乱記_第1巻#2節|『内乱記』第1巻2節]]以降でも言及される。)</span>
:
*<!--❸-->magni [[wikt:en:intersum#Latin|interesse]] etiam in reliquum tempus ad [[wikt:en:opinio#Latin|opinionem]] Galliae [[wikt:en:existimans#Latin|existimans]]
**ガッリアの世論に対して、これから後の時期にさえも、(カエサルが)大いに重要であると考えていたのは、
*tantas videri Italiae [[wikt:en:facultas#Latin|facultates]]
**(以下の程度に)イタリアの(動員)能力が豊富であると見えることである。
**:<span style="color:#009900;">(訳注:Italiaという語は多義的でさまざまに解釈できるが、<br> 本書ではガッリア・キサルピーナを指すことが多い。)</span>
*ut, si [[wikt:en:aliquid#Etymology_2|quid]] esset in bello [[wikt:en:detrimentum#Latin|detrimenti]] acceptum,
**もし、戦争において何がしかの(兵員の)損害を蒙ったとしても、
*non modo id [[wikt:en:brevis#Latin|brevi]] tempore [[wikt:en:sarcio#Latin|sarciri]],
**それが短期間で修復(できる)だけでなく、
*sed etiam [[wikt:en:maior#Adjective_2|maioribus]] [[wikt:en:augeo#Latin|augeri]] copiis posset.
**より多く軍勢で増されることが可能だ<br>(とガッリアの世論に思われることが重要であるとカエサルは考えたのである)。
:
*<!--❹-->Quod cum [[wikt:en:Pompeius#Proper_noun|Pompeius]] et rei publicae et amicitiae [[wikt:en:tribuo#Latin|tribuisset]],
**そのことを、ポンペイウスは公儀<small>〔ローマ国家〕</small>のためにも(三頭政治の)盟約のためにも認めたので、
*celeriter [[wikt:en:confectus#Latin|confecto]] per suos [[wikt:en:dilectus#Noun|dilectu]]
**(カエサルの)配下の者たちを介して速やかに徴募が成し遂げられて
*tribus ante [[wikt:en:exactus#Latin|exactam]] [[wikt:en:hiems#Latin|hiemem]] et [[wikt:en:constitutus#Participle|constitutis]] et [[wikt:en:adductus#Latin|adductis]] legionibus
**冬が過ぎ去る前に、3個[[w:ローマ軍団|軍団]]が組織されて<small>(カエサルのもとへ)</small>もたらされ、
*[[wikt:en:duplicatus#Latin|duplicato]]<nowiki>que</nowiki> earum [[wikt:en:cohors#Latin|cohortium]] numero, quas cum [[wikt:en:Quintus#Latin|Quinto]] [[wikt:en:Titurius#Latin|Titurio]] [[wikt:en:amitto#Latin|amiserat]],
**それらの<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>の数は、[[w:クィントゥス・ティトゥリウス・サビヌス|クィーントゥス・ティトゥーリウス(・サビーヌス)]]とともに失っていたものの倍にされた。
**:<span style="color:#009900;">(訳注:前巻でサビーヌスとコッタは1個軍団と5個[[w:コホルス|歩兵大隊]](=15個歩兵大隊)を失ったが、<br> 代わりに3個軍団(=30個歩兵大隊)を得たということ。)</span>
*et [[wikt:en:celeritas#Latin|celeritate]] et copiis [[wikt:en:doceo#Latin|docuit]],
**<small>(徴兵の)</small>迅速さと軍勢<small>(の多さ)</small>において<small>(ガッリア人たちに)</small>示したのは、
*quid populi Romani [[wikt:en:disciplina#Latin|disciplina]] atque [[wikt:en:ops#Noun_4|opes]] possent.
**ローマ国民の規律と能力がいかに有力であるかということである。
{| class="wikitable"
|-
| style="vertical-align:top; text-align:left;" |[[画像:Hw-pompey.jpg|thumb|right|250px|[[w:グナエウス・ポンペイウス|グナエウス・ポンペイウス]]の胸像。カエサルおよび[[w:マルクス・リキニウス・クラッスス|マルクス・クラッスス]]とともに[[w:三頭政治|三頭政治]]を行ない、[[w:共和政ローマ|共和政末期のローマ]]を支配した。この巻の年にクラッススが戦死し、ポンペイウスに嫁いでいたカエサルの娘[[w:ユリア (ガイウス・ユリウス・カエサルの娘)|ユーリア]]が前年に病没、三頭政治は瓦解して、やがて[[w:ローマ内戦 (紀元前49年-紀元前45年)|内戦]]へ向かう。]]
| style="vertical-align:top; text-align:left;" |[[画像:Theatre of Pompey 3D cut out.png|thumb|left|400px|'''[[w:ポンペイウス劇場|ポンペイウス劇場]]'''の復元図。[[w:グナエウス・ポンペイウス|ポンペイウス]]の名を冠したこの劇場は、彼が執政官であった[[w:紀元前55年|紀元前55年]]頃に竣工し、当時最大の劇場であった。<br> 伝記作家[[w:プルタルコス|プルータルコス]]は以下のように伝えている<ref>[[s:en:Plutarch%27s_Lives_(Clough)/Life_of_Pompey]] より</ref>:「クラッススは執政官の任期が切れるとすぐに属州へと出発したが、ポンペイウスはローマで劇場の開館式や奉献式に出席し、その式にはあらゆる競技・ショー・運動・体操・音楽などで人々を楽しませた。野獣の狩猟や餌付け、野獣との闘いもあり、500頭のライオンが殺された。しかし何よりも、象の闘いは、恐怖と驚きに満ちた見世物であった」と。<br><br> カエサルの最期の場所でもあり、血みどろのカエサルはポンペイウスの胸像の前で絶命したとされている。]]
|}
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
<div style="background-color:#dfffdf;">
===<span style="color:#009900;">コラム「カエサルの軍団」</span>===
:<div style="color:#009900;width:75%;">カエサルは第1巻の年([[w:紀元前58年|紀元前58年]])に三属州の総督に任官するとともに4個軍団(VI・VII・[[w:en:Legio VIII Augusta|VIII]]・[[w:en:Legio IX Hispana|IX]])を任された。[[w:ヘルウェティイ族|ヘルウェーティイー族]]([[w:la:Helvetii|Helvetii]])と対峙するうちに、元老院に諮らずに独断で2個軍団([[w:en:Legio X Equestris|X]]・[[w:en:Legio XI Claudia|XI]])を徴募する(1巻10節)。<br> 第2巻の年([[w:紀元前57年|紀元前57年]])に3個軍団([[w:en:Legio XII Fulminata|XII]]・[[w:en:Legio XIII Gemina|XIII]]・[[w:en:Legio XIV Gemina|XIV]])を徴募して、計9個軍団。<br><br> [[ガリア戦記_第5巻#24節|『第5巻』24節]]の時点で、カエサルは8個軍団と5個[[w:コホルス|歩兵大隊]]を保持していると記されている。最古参の第6軍団が半減していると考えると、[[w:アドゥアトゥカの戦い|アドゥアトゥカの戦い]]で[[w:アンビオリクス|アンビオリークス]]によって、[[w:クィントゥス・ティトゥリウス・サビヌス|サビーヌス]]やコッタらとともに滅ぼされたのは、第14軍団([[w:en:Legio XIV Gemina|XIV]])と古い第6軍団(VI)の生き残りの5個[[w:コホルス|歩兵大隊]]と考えることができる。<br><br> 本巻の年([[w:紀元前53年|紀元前53年]])では、ポンペイウスの第1軍団がカエサルに譲られ、後にカエサルの軍団の番号系列に合わせて第6軍団(VI)と改称されたようだ。「第14軍団」は全滅させられたので通常は欠番にするところだが、カエサルはあえて再建して第14軍団と第15軍団が徴募され、これら3個軍団を加えると、カエサルが保持するのは計10個軍団となる。<br> もっとも本巻ではカエサルは明瞭な記述をしておらず、上述のように後に2個軍団を引き渡すことになるためか、伝記作家[[w:プルタルコス|プルータルコス]]は、ポンペイウスがカエサルに2個軍団を貸し出した、と説明している。
</div>
</div>
===2節===
*<span style="background-color:#ffd;">[[/注解/2節]] {{進捗|00%|2024-09-29}}</span>
;ガッリア北部の不穏な情勢、トレーウェリー族がライン川東岸のゲルマーニア人を勧誘
*<!--❶-->[[wikt:en:interfectus#Latin|Interfecto]] [[wikt:en:Indutiomarus#Latin|Indutiomaro]], ut [[wikt:en:doceo#Latin|docuimus]],
**<small>([[ガリア戦記 第5巻#58節|第5巻58節]]で)</small>述べたように、インドゥーティオマールスが殺害されると、
*ad eius propinquos a [[wikt:en:Treveri#Latin|Treveris]] imperium [[wikt:en:defero#Latin|defertur]].
**トレーウェリー族の者たちにより彼の縁者たちへ支配権がもたらされる。
*Illi finitimos [[wikt:en:Germanus#Noun|Germanos]] [[wikt:en:sollicito#Latin|sollicitare]] et [[wikt:en:pecunia#Latin|pecuniam]] [[wikt:en:polliceor#Latin|polliceri]] non [[wikt:en:desisto#Latin|desistunt]].
**彼らは隣接する[[w:ゲルマニア|ゲルマーニア]]人たちをそそのかすこと、および金銭を約束することをやめない。
*Cum ab proximis [[wikt:en:impetro#Latin|impetrare]] non possent, [[wikt:en:ulterior#Latin|ulteriores]] [[wikt:en:tempto#Latin|temptant]].
**たとえ隣人たちによって(盟約を)成し遂げることができなくても、より向こう側の者たちに試みる。
:
*<!--❷-->[[wikt:en:inventus#Latin|Inventis]] [[wikt:en:nonnullus#Latin|non nullis]] civitatibus
**少なからぬ部族国家を見出して
*[[wikt:en:ius_iurandum#Latin|iure iurando]] inter se [[wikt:en:confirmo#Latin|confirmant]]
**互いに誓約し合って(支持を)固め、
*obsidibusque de pecunia [[wikt:en:caveo#Latin|cavent]];
**金銭(の保証)のために人質たちを提供する。
*[[wikt:en:Ambiorix#Latin|Ambiorigem]] sibi [[wikt:en:societas#Latin|societate]] et [[wikt:en:foedus#Latin|foedere]] [[wikt:en:adiungo#Latin|adiungunt]].
**[[w:アンビオリクス|アンビオリークス]]を自分たちにとっての連合や同盟に加盟させる。
:
*<!--❸-->Quibus rebus [[wikt:en:cognitus#Participle|cognitis]] Caesar,
**それらの事情を知るや、カエサルは、
*cum undique bellum [[wikt:en:paro#Latin|parari]] videret,
**至る所で戦争が準備されていることを見ていたので、
*[[wikt:en:Nervii#Latin|Nervios]], [[wikt:en:Aduatuci#Latin|Atuatucos]] ac [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:adiunctus#Participle|adiunctis]]
**(すなわち)[[w:ネルウィイ族|ネルウィイー族]]、アトゥアトゥキー族とメナピイー族を加盟させたうえに
*<u>Cisrhenanis</u> omnibus <u>[[wikt:en:Germanus#Noun|Germanis]]</u> esse in armis,
**レーヌス<small>〔[[w:ライン川|ライン川]]〕</small>のこちら側のすべてのゲルマーニア人たちが武装していて、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:en:Germani cisrhenani|Germani Cisrhenani]]''「レーヌスのこちら側のゲルマーニア人」(西岸の諸部族) は西岸部族の総称。<br> ''Germani Transrhenani'' 「レーヌスの向こう側のゲルマーニア人」(東岸の諸部族) の対義語で、<br> 西岸の諸部族が東岸の諸部族を招き寄せているというのが『ガリア戦記』の主張である。)</span>
*[[wikt:en:Senones#Latin|Senones]] ad [[wikt:en:imperatum#Latin|imperatum]] non venire
**セノネース族は<small>(カエサルから)</small>命令されたことに従わずに
*et cum [[wikt:en:Carnutes#Latin|Carnutibus]] finitimisque civitatibus consilia [[wikt:en:communico#Latin|communicare]],
**カルヌーテース族および隣接する諸部族とともに謀計を共有しており、
*a [[wikt:en:Treveri#Latin|Treveris]] [[wikt:en:Germanus#Noun|Germanos]] crebris [[wikt:en:legatio#Latin|legationibus]] [[wikt:en:sollicito#Latin|sollicitari]],
**ゲルマーニア人たちがたびたびトレーウェリー族の使節団によってそそのかされていたので、
*[[wikt:en:mature#Adverb|maturius]] sibi de bello [[wikt:en:cogitandus#Latin|cogitandum]] [[wikt:en:puto#Latin|putavit]].
**<small>(カエサルは)</small>自分にとって<small>(例年)</small>より早めに戦争を計画するべきだと見なした。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===3節===
*<span style="background-color:#ffd;">[[/注解/3節]] {{進捗|00%|2024-10-06}}</span>
;カエサルがネルウィイー族を降し、ガッリアの領袖たちの会合を召集する
*<!--❶-->Itaque [[wikt:en:nondum#Latin|nondum]] [[wikt:en:hiems#Latin|hieme]] [[wikt:en:confectus#Latin|confecta]]
**<small>(カエサルは)</small>こうして、まだ冬が終わらないうちに、
*proximis quattuor [[wikt:en:coactus#Latin|coactis]] legionibus
**近隣の4個[[w:ローマ軍団|軍団]]を集めて、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[ガリア戦記_第5巻#52節|第5巻52節]]で言及されたように、カエサルは、本営を置いていた<br> サマロブリーウァ(現在の[[w:アミアン|アミアン]])周辺の冬営に3個軍団、<br> およびファビウスの軍団を配置していたと思われる。)</span>
*[[wikt:en:de_improviso#Latin|de improviso]] in fines [[wikt:en:Nervii#Latin|Nerviorum]] [[wikt:en:contendo#Latin|contendit]]
**不意に[[w:ネルウィイ族|ネルウィイー族]]の領土に急いだ。
:
*<!--❷-->et, [[wikt:en:priusquam#Latin|prius quam]] illi aut [[wikt:en:convenio#Latin|convenire]] aut [[wikt:en:profugio#Latin|profugere]] possent,
**そして、彼ら<small>(の軍勢)</small>は、集結したり、あるいは逃亡したりできるより前に、
*magno [[wikt:en:pecus#Latin|pecoris]] atque hominum numero [[wikt:en:captus#Latin|capto]]
**家畜たちおよび人間たちの多数を捕らえて、
*atque ea [[wikt:en:praeda#Latin|praeda]] militibus [[wikt:en:concessus#Participle|concessa]]
**それらの戦利品を兵士たちに譲り、
*[[wikt:en:vastatus#Latin|vastatis]]<nowiki>que</nowiki> agris
**耕地を荒らして、
*in [[wikt:en:deditio#Latin|deditionem]] venire atque obsides sibi dare [[wikt:en:cogo#Latin|coegit]].
**<small>(ネルウィイー族に、ローマ勢へ)</small>降伏すること、人質たちを自分<small>〔カエサル〕</small>に供出することを強いた。
:
*<!--❸-->Eo celeriter [[wikt:en:confectus#Latin|confecto]] [[wikt:en:negotium#Latin|negotio]]
**その戦役は速やかに成し遂げられたので、
*rursus in [[wikt:en:hibernum#Latin|hiberna]] legiones [[wikt:en:reduco#Latin|reduxit]].
**再び諸軍団を冬営に連れ戻した。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:本営を置いていたサマロブリーウァ周辺の冬営。)</span>
:
*'''ガッリアの領袖たちの会合'''
*<!--❹-->[[wikt:en:concilium#Latin|Concilio]] Galliae primo [[wikt:en:ver#Latin|vere]], ut [[wikt:en:instituo#Latin|instituerat]], [[wikt:en:indictus#Participle|indicto]],
**ガッリアの<small>(領袖たちの)</small>会合を、定めていたように、春の初めに通告すると、
**:<span style="color:#009900;">(訳注:会合の集合場所は、当初は本営のあるサマロブリーウァだったであろう。)</span>
*cum reliqui praeter [[wikt:en:Senones#Latin|Senones]], [[wikt:en:Carnutes#Latin|Carnutes]] [[wikt:en:Treveri#Latin|Treveros]]<nowiki>que</nowiki> venissent,
**[[w:セノネス族|セノネース族]]、カルヌーテース族とトレーウェリー族を除いて、ほかの者たちは(会合に)現われていたので、
**:<span style="color:#009900;">(訳注:ガッリア北部では、このほかエブローネース族とメナピイー族が参加していないはずである。)</span>
*initium belli ac [[wikt:en:defectio#Latin|defectionis]] hoc esse [[wikt:en:arbitratus#Latin|arbitratus]],
**このこと<span style="color:#009900;">〔3部族の不参加〕</span>は戦争と背反の始まりであると思われて、
*ut omnia [[wikt:en:postpono#Latin|postponere]] videretur,
**<small>(他の)</small>すべて<small>(の事柄)</small>を後回しにすることと見なされるように、
*[[wikt:en:concilium#Latin|concilium]] [[wikt:en:Lutetia#Latin|Lutetiam]] [[wikt:en:Parisii#Latin|Parisiorum]] [[wikt:en:transfero#Latin|transfert]].
**会合を[[w:パリシイ族|パリースィイー族]]の(城塞都市である)[[w:ルテティア|ルーテーティア]]に移す。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:ルーテーティア Lutetia は、写本によってはルーテーキア Lutecia とも表記されている。<br> ラテン語では Lutetia Parisiorum「パリースィイー族の泥土」と呼ばれ、現在の[[w:パリ|パリ市]]である。<br> [[w:ストラボン|ストラボーン]]などによれば[[w:ケルト語|ケルト語]]でルコテキア Lukotekia と呼ばれていたらしい。)</span>
:
; セノネース族について
[[画像:Plan_de_Paris_Lutece2_BNF07710745.png|thumb|right|200px|ルテティア周辺の地図(18世紀頃)]]
*<!--❺-->[[wikt:en:confinis#Latin|Confines]] erant hi [[wikt:en:Senones#Latin|Senonibus]]
**彼ら<small>〔パリースィイー族〕</small>はセノネース族に隣接していて、
*civitatemque patrum memoria [[wikt:en:coniungo#Latin|coniunxerant]],
**父祖の伝承では<small>(セノネース族と一つの)</small>部族として結びついていた。
*sed ab hoc consilio [[wikt:en:absum#Latin|afuisse]] [[wikt:en:existimo#Latin|existimabantur]].
**しかし<small>(パリースィイー族は)</small>これらの謀計には関与していなかったと考えられていた。
:
*<!--❻-->Hac re pro [[wikt:en:suggestus#Latin|suggestu]] [[wikt:en:pronuntiatus#Latin|pronuntiata]]
**<small>(カエサルは)</small>この事を演壇の前で宣言すると、
*eodem die cum legionibus in [[wikt:en:Senones#Latin|Senones]] [[wikt:en:proficiscor#Latin|proficiscitur]]
**同日に諸軍団とともにセノネース族のところに出発して、
*magnisque itineribus eo [[wikt:en:pervenio#Latin|pervenit]].
**強行軍でもってそこに到着した。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===4節===
*<span style="background-color:#ffd;">[[/注解/4節]] {{進捗|00%|2024-10-09}}</span>
;セノネース族のアッコーが造反するが、カエサルはセノネース族とカルヌーテース族を降伏させる
*<!--❶-->[[wikt:en:cognitus#Participle|Cognito]] eius [[wikt:en:adventus#Latin|adventu]],
**彼<small>〔カエサル〕</small>の到来を知ると、
*[[wikt:en:Acco#Latin|Acco]], qui princeps eius consilii fuerat,
**その画策の首謀者であった<small>(セノネース族の)</small>'''アッコー''' は、
*[[wikt:en:iubeo#Latin|iubet]] in oppida multitudinem [[wikt:en:convenio#Latin|convenire]].
**群衆に諸[[w:オッピドゥム|城塞都市]]に集結することを命じる。
:
*[[wikt:en:conans#Latin|Conantibus]], [[wikt:en:priusquam|prius quam]] id [[wikt:en:effici|effici]] posset, [[wikt:en:adsum#Latin|adesse]] Romanos [[wikt:en:nuntio#Verb|nuntiatur]].
**そのことが遂行され得るより前に、ローマ人が接近していることが、企てている者たちに報告される。
:
*<!--❷-->Necessario [[wikt:en:sententia#Latin|sententia]] [[wikt:en:desisto#Latin|desistunt]]
**<small>(セノネース族は)</small>やむなく<small>(カエサルへの謀反の)</small>意図を思いとどまって、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:necessario#Adverb|necessāriō]] = [[wikt:en:necessarie#Adverb|necessāriē]]「やむを得ず」)</span>
*legatosque [[wikt:en:deprecor#Latin|deprecandi]] causa ad Caesarem mittunt;
**<small>(恩赦を)</small>嘆願するために、使節たちをカエサルのもとへ遣わして、
*<u>adeunt</u> per [[wikt:en:Aedui#Latin|Haeduos]], quorum [[wikt:en:antiquitus|antiquitus]] erat in fide civitas.
**部族国家が昔から<small>(ローマ人に対して)</small>忠実であった[[w:ハエドゥイ族|ハエドゥイー族]]を介して、頼み込む。
**:<span style="color:#009900;">(訳注:この部分は、セノネース族がハエドゥイー族の庇護下にあったように訳されることも多いが、<br> [[ガリア戦記 第5巻#54節|第5巻54節]]における両部族とローマ人の関係の記述を考慮して、上のように訳した<ref>[[s:en:Commentaries_on_the_Gallic_War/Book_6#4|英語版ウィキソース]]では「they make advances to him through the Aedui, whose state was from ancient times under the protection of Rome.」と英訳されている。</ref>。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:de:adire|adeō]]「(誰かに)アプローチする」「(誰かに)頼る、頼む、懇願する」<ref>[https://www.frag-caesar.de/lateinwoerterbuch/adeo-uebersetzung-1.html adeo-Übersetzung im Latein Wörterbuch]</ref>)</span>
:
*<!--❸-->Libenter Caesar [[wikt:en:petens#Latin|petentibus]] [[wikt:en:Aedui#Latin|Haeduis]] dat [[wikt:en:venia#Latin|veniam]]
**カエサルは、懇願するハエドゥイー族に対して、喜んで<small>(セノネース族への)</small>恩赦を与え、
*[[wikt:en:excusatio#Latin|excusationem]]<nowiki>que</nowiki> accipit,
**<small>(セノネース族の)</small>弁解を受け入れる。
*quod [[wikt:en:aestivus#Latin|aestivum]] tempus [[wikt:en:instans#Latin|instantis]] belli,
**というのは、夏の時季は差し迫っている<small>(エブローネース族らとの)</small>戦争のためのものであり、
*non [[wikt:en:quaestio#Latin|quaestionis]] esse [[wikt:en:arbitror#Latin|arbitrabatur]].
**<small>(謀反人に対する)</small>尋問のためのものではないと<small>(カエサルが)</small>判断していたからである。
**:<span style="color:#009900;">(訳注:エブローネース族との戦争が終わった後に、謀反人への尋問が行なわれることになる。[[#44節|44節]]参照。)</span>
:
*<!--❹-->Obsidibus [[wikt:en:imperatus#Latin|imperatis]] centum,
**<small>(カエサルは)</small>100人の人質<small>(の供出)</small>を命令すると、
*hos Haeduis [[wikt:en:custodiendus#Latin|custodiendos]] [[wikt:en:trado#Latin|tradit]].
**彼ら<small>〔人質たち〕</small>を監視するべく[[w:ハエドゥイ族|ハエドゥイー族]]に引き渡す。
:
*<!--❺-->[[wikt:en:eodem#Adverb|Eodem]] [[wikt:en:Carnutes#Latin|Carnutes]] legatos obsidesque [[wikt:en:mitto#Latin|mittunt]],
**ちょうどそこに、カルヌーテース族が使節たちと人質たちを遣わして、
*[[wikt:en:usus#Participle|usi]] [[wikt:en:deprecator#Latin|deprecatoribus]] [[wikt:en:Remi#Proper_noun_3|Remis]], quorum erant in [[wikt:en:clientela#Latin|clientela]];
**<small>(カルヌーテース族が)</small><ruby><rb>[[w:クリエンテス|庇護]]</rb><rp>(</rp><rt>クリエンテーラ</rt><rp>)</rp></ruby>を受ける関係にあったレーミー族を<ruby><rb>助命仲介者</rb><rp>(</rp><rt>デープレカートル</rt><rp>)</rp></ruby>として利用して、
*eadem ferunt [[wikt:en:responsum#Latin|responsa]].
**<small>(セノネース族のときと)</small>同じ返答を獲得する。
:
*<!--❻-->[[wikt:en:perago#Latin|Peragit]] [[wikt:en:concilium#Noun|concilium]] Caesar
**カエサルは<small>(ガッリア諸部族の領袖たちの)</small>会合を完了して、
*equitesque [[wikt:en:impero#Latin|imperat]] civitatibus.
**[[w:騎兵|騎兵]]たち<small>(の供出)</small>を諸部族に命令する。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===5節===
*<span style="background-color:#ffd;">[[/注解/5節]] {{進捗|00%|2024-10-10}}</span>
;アンビオリークスへの策を練り、メナピイー族へ向かう
*<!--❶-->Hac parte Galliae [[wikt:en:pacatus#Latin|pacata]],
**ガッリアのこの方面が平定されたので、
**:<span style="color:#009900;">(訳注:[[#3節|3節]]~[[#4節|4節]]でネルウィイー族、セノネース族とカルヌーテース族がカエサルに降伏したことを指す。)</span>
*totus et mente et animo in bellum [[wikt:en:Treveri#Latin|Treverorum]] et [[wikt:en:Ambiorix#Latin|Ambiorigis]] [[wikt:en:insisto#Latin|insistit]].
**<small>(カエサルは)</small>全身全霊をかけて、トレーウェリー族と[[w:アンビオリクス|アンビオリークス]]との戦争に着手する。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:totus et [[wikt:en:mens#Latin|mente]] et [[wikt:en:animus#Latin|animo]] 「全身全霊をかけて」''with all his heart and soul'' )</span>
:
*<!--❷-->[[wikt:en:Cavarinus#Latin|Cavarinum]] cum equitatu [[wikt:en:Senones#Latin|Senonum]] [[wikt:en:secum#Latin|secum]] [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iubet]],
**カウァリーヌスに、セノネース族の[[w:騎兵|騎兵]]隊を伴って、自分<small>〔カエサル〕</small>とともに出発することを命じる。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:de:Cavarinus|Cavarinus]]'' は、[[ガリア戦記 第5巻#54節|第5巻54節]]で前述のように、<br> カエサルにより王位に据えられていたが、独立主義勢力により追放された。)</span>
*ne [[wikt:en:aliquis#Latin|quis]] <u>aut</u> ex huius [[wikt:en:iracundia#Latin|iracundia]] <u>aut</u> ex eo, quod [[wikt:en:mereo#Latin|meruerat]], [[wikt:en:odium#Latin|odio]] civitatis [[wikt:en:motus#Noun_2|motus]] [[wikt:en:exsistat|exsistat]].
**彼の激しやすさから、<u>あるいは</u>彼が招来していた反感から、部族国家の何らかの動乱が起こらないようにである。
**:<span style="color:#009900;">(訳注:前節でアッコーら独立主義者たちがカエサルに降伏して、<br> カウァリーヌスが王位に戻されたために、<br> 部族内で反感をかっていたのであろう。)</span>
:
*<!--❸-->His rebus [[wikt:en:constitutus#Participle|constitutis]],
**これらの事柄が取り決められると、
*quod pro explorato habebat, [[wikt:en:Ambiorix#Latin|Ambiorigem]] [[wikt:en:proelium#Latin|proelio]] non esse <u>concertaturum</u>,
**<small>(カエサルは)</small>[[w:アンビオリクス|アンビオリークス]]が戦闘で激しく争うつもりではないことを、確実と見なしていたので、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:pro#Latin|pro]] [[wikt:en:exploratus#Latin|explorato]] = [[wikt:en:exploratus#Latin|exploratum]]「確かなものとして(''as certain'')」)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、χ系(A・Q)およびL・N写本では non esse <u>[[wikt:en:concertaturum|concertaturum]]</u>「激しくつもりではないこと」だが、<br> β系写本では non esse <u>[[wikt:en:contenturum|contenturum]]</u><br> B・M・S写本では non esse <u>concertaturum [[wikt:en:tenturum|tenturum]]</u> となっている。)</span>
*reliqua eius [[wikt:en:consilium#Latin|consilia]] animo [[wikt:en:circumspicio#Latin|circumspiciebat]].
**彼<small>〔アンビオリークス〕</small>のほかの計略に思いをめぐらせていた。
:
; カエサルがメナピイー族の攻略を決意
*<!--❹-->Erant [[wikt:en:Menapii#Latin|Menapii]] propinqui [[wikt:en:Eburones#Latin|Eburonum]] finibus,
**メナピイー族は[[w:エブロネス族|エブローネース族]]の領土に隣り合っていて、
*[[wikt:en:perpetuus#Latin|perpetuis]] [[wikt:en:palus#Latin|paludibus]] [[wikt:en:silva#Latin|silvis]]<nowiki>que</nowiki> [[wikt:en:munitus#Latin|muniti]],
**絶え間ない沼地と森林によって守られており、
*qui uni ex Gallia de pace ad Caesarem legatos [[wikt:en:numquam#Latin|numquam]] [[wikt:en:mitto#Latin|miserant]].
**彼らは[[w:ガリア|ガッリア]]のうちでカエサルのもとへ講和の使節たちを決して遣わさなかった唯一の者たちであった。
:
*Cum his esse [[wikt:en:hospitium#Latin|hospitium]] [[wikt:en:Ambiorix#Latin|Ambiorigi]] [[wikt:en:scio#Latin|sciebat]];
**<small>(カエサルは)</small>[[w:アンビオリクス|アンビオリークス]]が彼らのもとで歓待されていることを知っていたし、
*item per [[wikt:en:Treveri#Latin|Treveros]] venisse Germanis in [[wikt:en:amicitia#Latin|amicitiam]] [[wikt:en:cognosco#Latin|cognoverat]].
**同様にトレーウェリー族を通じて[[w:ゲルマニア|ゲルマーニア]]人と盟約を結んだことも探知していた。
:
*<!--❺-->Haec <u>prius</u> illi [[wikt:en:detrahendus#Latin|detrahenda]] auxilia [[wikt:en:existimo#Latin|existimabat]] <u>quam</u> ipsum bello [[wikt:en:lacesso#Latin|lacesseret]],
**<ruby><rb>彼奴</rb><rp>(</rp><rt>あやつ</rt><rp>)</rp></ruby><small>〔アンビオリークス〕</small>へのこれらの支援は、彼奴自身に戦争で挑みかかる<u>より前に</u>引き離されるべきだと考えていた。
*ne [[wikt:en:desperatus#Latin|desperata]] [[wikt:en:salus#Latin|salute]]
**<small>(アンビオリークスが)</small>身の安全に絶望して、
*<u>aut</u> se in [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:abdo#Latin|abderet]],
**<u>あるいは</u>メナピイー族のところに身を隠したりしないように、
*<u>aut</u> cum [[wikt:en:Transrhenanus#Latin|Transrhenanis]] [[wikt:en:congredior#Latin|congredi]] [[wikt:en:cogo#Latin|cogeretur]].
**<u>あるいは</u>レーヌス<small>〔[[w:ライン川|ライン川]]〕</small>の向こう側の者たちと合同することを強いられないように、である。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''Germani Transrhenani'' 「レーヌスの向こう側のゲルマーニア人」(東岸の諸部族)を<br> ''[[w:en:Germani cisrhenani|Germani Cisrhenani]]''「レーヌスのこちら側のゲルマーニア人」(西岸の諸部族) が<br> 招き寄せているというのが『ガリア戦記』の主張である。)</span>
:
*<!--❻-->Hoc [[wikt:en:initus#Participle|inito]] consilio,
**この計略を決断すると、
*[[wikt:en:totus#Etymology_1|totius]] exercitus [[wikt:en:impedimentum#Latin|impedimenta]] ad [[wikt:en:Labienus#Latin|Labienum]] in [[wikt:en:Treveri#Latin|Treveros]] [[wikt:en:mitto#Latin|mittit]]
**<small>(カエサルは)</small>全軍の[[w:輜重|輜重]]を、トレーウェリー族のところにいる[[w:ティトゥス・ラビエヌス|ラビエーヌス]]のもとへ送り、
*duasque ad eum legiones [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iubet]];
**2個[[w:ローマ軍団|軍団]]に彼<small>〔ラビエーヌス〕</small>のもとへ出発することを命じる。
:
*ipse cum legionibus [[wikt:en:expeditus#Participle|expeditis]] quinque in [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:proficiscor#Latin|proficiscitur]].
**<small>(カエサル)</small>自身は軽装の5個軍団とともにメナピイー族のところに出発する。
:
*<!--❼-->Illi, [[wikt:en:nullus#Adjective|nulla]] [[wikt:en:coactus#Latin|coacta]] [[wikt:en:manus#Latin|manu]],
**あの者らは、何ら手勢を集めず、
*loci [[wikt:en:praesidium#Latin|praesidio]] [[wikt:en:fretus#Adjective|freti]],
**地勢の要害を信頼して、
*in [[wikt:en:silva#Latin|silvas]] [[wikt:en:palus#Latin|paludes]]<nowiki>que</nowiki> [[wikt:en:confugio#Latin|confugiunt]]
**森林や沼地に避難して、
*[[wikt:en:suus#Latin|sua]]<nowiki>que</nowiki> [[wikt:en:eodem#Adverb|eodem]] [[wikt:en:confero#Latin|conferunt]].
**自分たちの家財を同じところに運び集める。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===6節===
*<span style="background-color:#ffd;">[[/注解/6節]] {{進捗|00%|2024-10-20}}</span>
;メナピイー族がついにカエサルの軍門に降る
*<!--❶-->Caesar,
**カエサルは、
*[[wikt:en:partitus#Latin|partitis]] copiis cum [[wikt:en:Gaius#Latin|Gaio]] [[wikt:en:Fabius#Latin|Fabio]] legato et [[wikt:en:Marcus#Latin|Marco]] [[wikt:en:Crassus#Latin|Crasso]] [[wikt:en:quaestor#Latin|quaestore]]
**[[w:レガトゥス|副官]]である[[w:ガイウス・ファビウス|ガーイウス・ファビウス]]と[[w:クァエストル|財務官]]である[[w:マルクス・リキニウス・クラッスス (財務官)|マールクス・クラッスス]]とともに軍勢を分配して、
*celeriterque [[wikt:en:effectus#Participle|effectis]] [[wikt:en:pons#Latin|pontibus]]
**速やかに橋梁を造って、
**:<span style="color:#009900;">(訳注:橋梁は軽装の軍団兵が沼地を渡るためのものなので、丸太道のようなものであろうか。)</span>
*[[wikt:en:adeo#Verb|adit]] [[wikt:en:tripertito|tripertito]],
**三方面から<small>(メナピイー族の領土に)</small>接近して、
[[画像:GallischeHoeve.jpg|thumb|right|200px|復元されたメナピイー族の住居(再掲)]]
*[[wikt:en:aedificium#Latin|aedificia]] [[wikt:en:vicus#Latin|vicos]]<nowiki>que</nowiki> [[wikt:en:incendo#Latin|incendit]],
**建物や村々を焼き討ちして、
*magno [[wikt:en:pecus#Latin|pecoris]] atque hominum numero [[wikt:en:potior#Latin|potitur]].
**家畜や人間の多数を<small>(戦利品として)</small>獲得する。
:
*<!--❷-->Quibus rebus [[wikt:en:coactus#Participle|coacti]]
**そのような事態に強いられて、
*[[wikt:en:Menapii#Latin|Menapii]] legatos ad eum [[wikt:en:pax#Latin|pacis]] [[wikt:en:petendus#Latin|petendae]] causa [[wikt:en:mitto#Latin|mittunt]].
**メナピイー族は和平を求めるための使節たちを彼<small>〔カエサル〕</small>のもとへ遣わす。
:
*<!--❸-->Ille [[wikt:en:obses#Latin|obsidibus]] [[wikt:en:acceptus#Latin|acceptis]],
**彼<small>〔カエサル〕</small>は人質たちを受け取ると、
*hostium se [[wikt:en:habiturus#Latin|habiturum]] numero [[wikt:en:confirmo#Latin|confirmat]], si aut [[wikt:en:Ambiorix#Latin|Ambiorigem]] aut eius legatos finibus suis [[wikt:en:recipio#Latin|recepissent]].
**もし[[w:アンビオリクス|アンビオリークス]]か彼の使節を自領に迎え入れたら、自分は<small>(メナピイー族を)</small>敵として見なすだろうと断言する。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:属格の名詞 + numero「〜として」)
:
*<!--❹-->His [[wikt:en:confirmatus#Latin|confirmatis]] rebus,
**これらの事柄を確立すると、
*[[wikt:en:Commius#Latin|Commium]] [[wikt:en:Atrebas#Latin|Atrebatem]] cum [[wikt:en:equitatus#Latin|equitatu]] [[wikt:en:custos#Latin|custodis]] loco in [[wikt:en:Menapii#Latin|Menapiis]] [[wikt:en:relinquo#Latin|relinquit]];
**アトレバーテース族である[[w:コンミウス|コンミウス]]を[[w:騎兵|騎兵]]隊とともに、目付け役として、メナピイー族のところに残す。
**:<span style="color:#009900;">(訳注:コンミウスは、カエサルがアトレバテース族の王にすえて、ブリタンニア遠征の先導役として遣わし、<br> カッスィウェッラウヌスの降伏の仲介を</span>果たしていた。[[ガリア戦記 第4巻#21節|第4巻21節]]・27節や[[ガリア戦記 第5巻#22節|第5巻22節]]などを参照。)
*ipse in [[wikt:en:Treveri#Latin|Treveros]] [[wikt:en:proficiscor#Latin|proficiscitur]].
**<small>(カエサル)</small>自身はトレーウェリー族のところに出発する。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===7節===
*<span style="background-color:#ffd;">[[/注解/7節]] {{進捗|00%|2024-10-27}}</span>
[[画像:Titelberg_01.jpg|thumb|right|200px|トレーウェリー族の城砦跡(再掲)]]
;トレーウェリー族の開戦準備、ラビエーヌスの計略
*<!--❶-->Dum haec a Caesare [[wikt:en:gero#Latin|geruntur]],
**これらのことがカエサルによって遂行されている間に、
*[[wikt:en:Treveri#Latin|Treveri]] magnis [[wikt:en:coactus#Participle|coactis]] [[wikt:en:peditatus#Latin|peditatus]] [[wikt:en:equitatus#Etymology_1|equitatus]]<nowiki>que</nowiki> copiis
**トレーウェリー族は、[[w:歩兵|歩兵]]隊と[[w:騎兵|騎兵]]隊の大軍勢を徴集して、
*[[wikt:en:Labienus#Latin|Labienum]] cum una legione, quae in eorum finibus <u>[[wikt:en:hiemo#Latin|hiemaverat]]</u>,
**彼らの領土において越冬していた1個[[w:ローマ軍団|軍団]]とともに[[w:ティトゥス・ラビエヌス|ラビエーヌス]]を、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、α系写本では [[wikt:en:hiemaverat|hiemaverat]] <small>(過去完了形)</small> だが、<br> β系写本では [[wikt:en:hiemabat|hiemabat]] <small>(未完了過去形)</small> などとなっている。)</span>
*[[wikt:en:adorior#Latin|adoriri]] [[wikt:en:paro#Latin|parabant]],
**襲撃することを準備していた。
:
*<!--❷-->iamque ab eo non longius [[wikt:en:biduum#Latin|bidui]] via [[wikt:en:absum#Verb|aberant]],
**すでに、そこ<small>〔ラビエーヌスの冬営〕</small>から2日間の道のりより遠く離れていなかったが、
*cum duas venisse legiones [[wikt:en:missus#Noun_2|missu]] Caesaris [[wikt:en:cognosco#Latin|cognoscunt]].
**そのときに、カエサルが派遣した2個軍団が到着したことを知る。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[#5節|5節]]で既述のように、カエサルはラビエーヌスのところへ全軍の輜重と2個軍団を派遣していた。<br> こうして、ラビエーヌスはローマ全軍の輜重と3個軍団を任されることになった。)
:
*<!--❸-->[[wikt:en:positus#Latin|Positis]] <u>castris</u> a milibus passuum [[wikt:en:quindecim#Latin|quindecim]](XV)
**<small>(トレーウェリー勢は、ラビエーヌスの冬営から)</small>15ローママイルのところに<u>野営地</u>を設置して、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位#ミーッレ・パッスーム、ミーリア(ローママイル)|ローママイル]]は約1.48 kmで、15マイルは約22 km)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[w:カストラ|カストラ]] [[wikt:en:castra#Latin|castra]] という語はローマ勢の行軍中の野営地や常設の宿営地に用いられ、<br> 非ローマ系部族の野営地に用いられることは稀である。)</span>
*auxilia [[wikt:en:Germani#Latin|Germanorum]] [[wikt:en:exspecto#Latin|exspectare]] [[wikt:en:constituo#Latin|constituunt]].
**[[w:ゲルマニア|ゲルマーニア]]人の援軍を待つことを決める。
:
*<!--❹-->[[wikt:en:Labienus#Latin|Labienus]] hostium [[wikt:en:cognitus#Participle|cognito]] consilio
**ラビエーヌスは、敵勢<small>〔トレーウェリー族〕</small>の計略を知ると、
*[[wikt:en:sperans#Latin|sperans]] [[wikt:en:temeritas#Latin|temeritate]] eorum [[wikt:en:fore#Etymology_2_2|fore]] [[wikt:en:aliqui#Latin|aliquam]] [[wikt:en:dimico#Latin|dimicandi]] facultatem,
**彼らの無謀さにより何らかの争闘する機会が生ずるであろうと期待して、
*[[wikt:en:praesidium#Latin|praesidio]] quinque(V) cohortium [[wikt:en:impedimentum#Latin|impedimentis]] [[wikt:en:relictus#Latin|relicto]]
**5個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>の守備隊を[[w:輜重|輜重]]のために残し、
*cum XXV(viginti quinque) cohortibus magnoque [[wikt:en:equitatus#Etymology_1|equitatu]] contra hostem [[wikt:en:proficiscor#Latin|proficiscitur]]
**25個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>および多勢の騎兵隊とともに、敵に抗して進発する。
*et mille passuum [[wikt:en:intermissus#Latin|intermisso]] spatio castra [[wikt:en:communio#Latin|communit]].
**<small>(トレーウェリー勢から)</small>1ローママイルの間隔を置いて、[[w:カストラ|陣営]]<small>〔野営地〕</small>を固める。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位#ミーッレ・パッスーム、ミーリア(ローママイル)|ローママイル]]は約1.48 km)</span>
:
*<!--❺-->Erat inter [[wikt:en:Labienus#Latin|Labienum]] atque hostem [[wikt:en:difficilis#Latin|difficili]] [[wikt:en:transitus#Latin|transitu]] flumen [[wikt:en:ripa#Latin|ripis]]<nowiki>que</nowiki> [[wikt:en:praeruptus#Adjective|praeruptis]].
**ラビエーヌスと敵の間には、渡ることが困難な川が、急峻な岸とともにあった。
*Hoc <u>neque</u> ipse [[wikt:en:transeo#Latin|transire]] habebat in animo
**これを<small>(ラビエーヌス)</small>自身は渡河するつもりではなかったし、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:~ habeo in animo「~するつもりである」)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:neque ~, neque …「~でもないし、…でもない」)</span>
*<u>neque</u> hostes [[wikt:en:transiturus#Latin|transituros]] [[wikt:en:existimo#Latin|existimabat]].
**敵勢も渡河して来ないであろうと<small>(ラビエーヌスは)</small>考えていた。
:
*<!--❻-->[[wikt:en:augeo#Latin|Augebatur]] auxiliorum [[wikt:en:cotidie#Latin|cotidie]] spes.
**<small>(トレーウェリー勢にとって、ゲルマーニア人の)</small>援軍への期待は日ごとに増されるばかりであった。
*[[wikt:en:loquor#Latin|Loquitur]] <u>in consilio</u> [[wikt:en:palam#Adverb|palam]]:
**<small>(ラビエーヌスは)</small>会議において公然と<small>(以下のように)</small>述べる。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、主要写本ωでは in [[wikt:en:consilio|consilio]] だが、<br> [[ガリア戦記/注解編/写本と校訂版#Aldus|Aldus]] は in [[wikt:en:concilium#Latin|concilio]] と修正提案し、<br> Hecker は [[wikt:en:consulto#Adverb|consulto]] と修正提案している。)</span>
*[[wikt:en:quoniam#Latin|quoniam]] [[wikt:en:Germani#Latin|Germani]] [[wikt:en:adpropinquo#Latin|adpropinquare]] [[wikt:en:dico#Latin|dicantur]],
**ゲルマーニア人<small>(の軍勢)</small>が近づいていることが言われているので、
*sese suas exercitusque fortunas in [[wikt:en:dubium#Noun|dubium]] non [[wikt:en:devocaturus#Latin|devocaturum]]
**自分は自らと軍隊の命運を不確実さの中に引きずり込むことはないであろうし、
*et postero die prima luce castra [[wikt:en:moturus#Latin|moturum]].
**翌日の夜明けには陣営を引き払うであろう。
:
*<!--❼-->Celeriter haec ad hostes [[wikt:en:defero#Latin|deferuntur]],
**これら<small>(のラビエーヌスの発言)</small>は速やかに敵勢<small>〔トレーウェリー族〕</small>のもとへ報じられたので、
*ut ex magno Gallorum equitum numero [[wikt:en:nonnullus#Latin|non nullos]] <u>Gallos</u> [[wikt:en:gallicus#Latin|Gallicis]] rebus [[wikt:en:faveo#Latin|favere]] natura [[wikt:en:cogo#Latin|cogebat]].
**ガッリア人の境遇を想う気質が、<small>(ローマ側)</small>ガッリア人騎兵の多数のうちの若干名を励ましていたほどである。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部の [[wikt:en:Gallus#Noun|Gallos]] は α系写本の記述で、β系写本では欠く。)</span>
:
*<!--❽-->[[wikt:en:Labienus#Latin|Labienus]], noctu tribunis militum primisque ordinibus <u>convocatis</u>,
**ラビエーヌスは、夜間に<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby>たちと第一序列(の[[w:ケントゥリオ|百人隊長]])たちを召集すると、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1個軍団当たりの<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby> の定員は計6名。<br> 第一序列の<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオー</rt><rp>)</rp></ruby>たち primorum ordinum centuriones は、軍団内における[[w:下士官|下士官]]のトップであり、<br> 第一<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> においては定員5名だが、<br> ほかの歩兵大隊においては定員6名であった。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、α系写本では [[wikt:en:convocatus#Latin|convocatis]] だが、<br> β系写本では [[wikt:en:coactus#Participle|coactis]] などとなっている。)</span>
*quid sui sit consilii, [[wikt:en:propono#Latin|proponit]]
**自分の計略がいかなるものであるかを呈示して、
*et, quo facilius hostibus [[wikt:en:timor#Latin|timoris]] [[wikt:en:det#Latin|det]] [[wikt:en:suspicio#Noun|suspicionem]],
**それ<small>〔計略〕</small>によって、よりたやすく敵勢に<small>(ローマ勢の)</small>恐怖心という推測を起こすべく、
*maiore [[wikt:en:strepitus#Latin|strepitu]] et [[wikt:en:tumultus#Latin|tumultu]], quam populi Romani fert [[wikt:en:consuetudo#Latin|consuetudo]]
**ローマ国民の習慣が引き起こすよりもより大きな騒音や喧騒をもって
*castra [[wikt:en:moveo#Latin|moveri]] [[wikt:en:iubeo#Latin|iubet]].
**陣営を引き払うことを命じる。
*His rebus fugae [[wikt:en:similis#Latin|similem]] [[wikt:en:profectio#Latin|profectionem]] [[wikt:en:efficio#Latin|effecit]].
**<small>(ラビエーヌスは)</small>これらの事によって、逃亡に似た進発を実現した。
:
*<!--❾-->Haec quoque per exploratores
**これら<small>(ラビエーヌスの発言や出発騒ぎの)</small>おのおのが、偵察者たちを通じて、
*ante lucem in tanta propinquitate castrorum ad hostes deferuntur.
**明け方の前には、両陣営のこれほどの近さにより、敵勢へ報じられた。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===8節===
*<span style="background-color:#ffd;">[[/注解/8節]] {{進捗|00%|2024-10-28}}</span>
;ラビエーヌスがトレーウェリー族を降す
*<!--❶-->Vix agmen novissimum extra munitiones processerat,
**やっと<small>(ローマ勢の)</small>隊列の最後尾が城砦の外側に進み出ようとしていた、
*cum Galli cohortati inter se, ne speratam praedam ex manibus dimitterent
**そのときにガッリア人たちは、期待していた戦利品を<small>(彼らの)</small>手から逸しないように、互いに鼓舞し合って、
*── longum esse perterritis Romanis Germanorum auxilium exspectare,
**── ローマ人が脅かされているのに、[[w:ゲルマニア|ゲルマーニア]]人の援軍を待つことは長たらしいものである。
*neque suam pati dignitatem,
**<small>(以下のことは)</small>自分たちの品格が耐えられない。
*ut tantis copiis tam exiguam manum, praesertim fugientem atque impeditam,
**これほどの大軍勢で<small>(ローマの)</small>手勢のそれほどの貧弱さを、とりわけ逃げ出して足手まといになっている者たちを
*adoriri non audeant ──
**あえて襲撃しないとは──<small>(と鼓舞し合って)</small>
*flumen transire et iniquo loco committere proelium non dubitant.
**川を渡って、<small>(切り立った岸を登りながら)</small>不利な場所で交戦することをためらわなかった。
:
*<!--❷-->Quae fore suspicatus Labienus,
**そのようなことになることを想像していた[[w:ティトゥス・ラビエヌス|ラビエーヌス]]は、
*ut omnes citra flumen eliceret,
**<small>(敵の)</small>総勢を川のこちら側に誘い出すように、
*eadem usus simulatione itineris placide progrediebatur.
**行軍の同じ見せかけを用いて、穏やかに前進した。
:
*<!--❸-->Tum praemissis paulum impedimentis atque in tumulo quodam conlocatis
**それから、[[w:輜重|輜重]](の隊列)を少し先に遣わして、ある丘に配置した。
*<!--▲直接話法--><span style="background-color:#e8e8ff;"><span style="color:#009900;">«</span> Habetis,<span style="color:#009900;">»</span></span> inquit, <!--▲直接話法--><span style="background-color:#e8e8ff;"><span style="color:#009900;">«</span>milites, quam petistis facultatem; </span>
**<small>(ラビエーヌスは)</small>「兵士らよ、汝らは求めていた機会を持っているぞ。」と言った。
*<span style="background-color:#e8e8ff;">hostem impedito atque iniquo loco tenetis: </span>
**「敵たちは<small>(岸で)</small>妨げられて、不利な場所を占めている。」
:
*<!--❹--><span style="background-color:#e8e8ff;">praestate eandem nobis ducibus virtutem, quam saepe numero imperatori praestitistis, </span>
**「我々指導者たちに、しばしば将軍<small>〔カエサル〕</small>に示したのと同じ武勇を示してくれ。」
*<span style="background-color:#e8e8ff;">atque illum adesse et haec coram cernere existimate.<span style="color:#009900;">»</span></span>
**「彼<small>〔カエサル〕</small>が訪れて、これ<small>〔武勇〕</small>を目の前で見ていると考えてくれ。」
:
*<!--❺-->Simul signa ad hostem converti
**同時に、軍旗が敵の方へ向きを変えられること、
**:<span style="color:#009900;">(訳注:軍勢を敵側へ向けて反転すること)</span>
*aciemque dirigi iubet,
**戦列が整えられること、を命じた。
*et paucis turmis praesidio ad impedimenta dimissis
**かつ若干の[[w:トゥルマ|騎兵小隊]]を輜重のための守備隊として送り出して、
**:<span style="color:#009900;">(訳注:騎兵小隊 turma はローマ軍の[[w:アウクシリア|支援軍]]における中規模の編成単位で、<br> 各30騎ほどと考えられている。)</span>
*reliquos equites ad latera disponit.
**残りの[[w:騎兵|騎兵]]たちを<small>(軍勢の)</small>側面へ分置した。
:
*<!--❻-->Celeriter nostri clamore sublato pila in hostes immittunt.
**速やかに、我が方<small>〔ローマ勢〕</small>は雄叫びを上げて、[[w:ピルム|ピールム]](投槍)を敵勢へ放り入れた。
*Illi, ubi praeter spem, quos <modo> fugere credebant, infestis signis ad se ire viderunt,
**彼らは、ただ逃げると信じていた者たちが、期待に反して、軍旗を攻勢にして自分らの方へ来るのを見るや否や、
[[画像:Pilensalve.jpg|thumb|right|200px|[[w:ピルム|ピールム]](投槍)を投げるローマ軍兵士(帝政期)の再演]]
*impetum <u>modo</u> ferre non potuerunt
**<small></small>(ローマ勢の)突撃を持ちこたえることができずに、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部 modo は主要写本ωではこの位置にあるが、<br> 上記の <modo> に移す修正提案がある。)</span>
*ac primo concursu in fugam coniecti proximas silvas petierunt.
**最初の戦闘で逃亡に追い込まれて、近隣の森へ急いだ。
:
*<!--❼-->Quos Labienus equitatu consectatus,
**その<small>(敗走した)</small>者たちを、ラビエーヌスは騎兵隊で追い付いて、
*magno numero interfecto, compluribus captis,
**多数を殺戮して、かなりの者たちを捕らえて、
*paucis post diebus civitatem recepit.
**わずかな日々の後に<small>(トレーウェリーの)</small>部族を<small>(インドゥーティオマールスらの蜂起の前のように)</small>元に戻した。
[[画像:Bund-ro-altburg.jpg|thumb|right|180px|トレーウェリー族の再現された住居(再掲)]]
[[画像:Trier_Kaiserthermen_BW_1.JPG|thumb|right|180px|トレーウェリー族(Treveri)の名を現代に伝えるドイツの[[w:トリーア|トリーア市]](Trier)に残るローマ時代の浴場跡]]
*Nam Germani qui auxilio veniebant
**一方で、援軍として来ようとしていたゲルマーニア人たちは、
*percepta Treverorum fuga sese domum receperunt.
**トレーウェリー族の逃亡を把握したので、故国に撤退していった。
:
*<!--❽-->Cum his propinqui Indutiomari,
**彼ら<small></small>(ゲルマーニア人)とともに、インドゥーティオマールスの縁者たちは、
*qui defectionis auctores fuerant,
**その者らは<small></small>(トレーウェリー族におけるカエサルへの)背反の張本人であったが、
*comitati eos ex civitate excesserunt.
**彼ら<small></small>(ゲルマーニア人)を伴って、部族(の領内)から出て行った。
:
*<!--❾-->Cingetorigi,
**キンゲトリークスに対しては、
*quem ab initio permansisse in officio demonstravimus,
**その者は前述したように始めから<small></small>(ローマへの)忠節に留まり続けていた者であるが、
**:<span style="color:#009900;">(訳注:キンゲトリークスについては、[[ガリア戦記 第5巻#3節|第5巻3節]]~4節・[[ガリア戦記 第5巻#56節|56節]]~57節で述べられている。)</span>
*principatus atque imperium est traditum.
**首長の地位と軍隊司令権が委託された。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
==第二次ゲルマーニア遠征==
===9節===
'''再びレーヌスを渡河、ウビイー族を調べる'''
*① Caesar, postquam ex Menapiis in Treveros venit,
**カエサルは、メナピイー族のところからトレーウェリー族のところに来た後で、
*duabus de causis Rhenum transire constituit;
**二つの理由からレーヌス(=[[w:ライン川|ライン川]])を渡ることを決めた。
*② quarum una erat, quod auxilia contra se Treveris miserant,
**その(理由の)一つは、(ゲルマーニア人が)自分(カエサル)に対抗して、トレーウェリー族に援軍を派遣していたことであった。
*altera, ne ad eos Ambiorix receptum haberet.
**もう一つ(の理由)は、彼らのところへ[[w:アンビオリクス|アンビオリクス]]が避難所を持たないように、ということであった。
*③ His constitutis rebus
**これらの事柄を決定すると、
*paulum supra eum locum, quo ante exercitum traduxerat,
**以前に軍隊を渡らせていた場所の少し上流に、
*facere pontem instituit.
**橋を造ることを決意した。
*④ Nota atque instituta ratione
**経験しかつ建造していた方法で、
*magno militum studio
**兵士の大きな熱意により
*paucis diebus opus efficitur.
**わずかな日数で作業が完遂された。
*⑤ Firmo in Treveris ad pontem praesidio relicto,
**トレーウェリー族(の領内)の橋のたもとへ強力な守備隊を残した。
*ne quis ab his subito motus oreretur,
**彼らによる何らかの動乱が突然に起こされないように。
*reliquas copias equitatumque traducit.
**残りの軍勢と騎兵隊を(レヌスの東岸へ)渡らせた。
*⑥ Ubii, qui ante obsides dederant atque in deditionem venerant,
**ウビイー族は、以前に(カエサルに対して)人質たちを供出していて、降伏していたが、
**(訳注:この事はすでに[[ガリア戦記 第4巻#16節|第4巻16節]]で述べられている。)
*purgandi sui causa ad eum legatos mittunt,
**自分たちの申し開きをすることのために、彼(カエサル)のところへ使節たちを遣わして、
*qui doceant
**(以下のように)説かせた。
*neque auxilia ex sua civitate in Treveros missa
**自分たちの部族から援軍をトレーウェリー族のところに派遣してもいないし、
*neque ab se fidem laesam:
**自分らにより(ローマへの)信義を傷つけてもいない、と。
*⑦ petunt atque orant ut
**(ウビイー族の使節たちは、以下のように)求め、かつ願った。
*sibi parcat,
**自分たちを容赦し、
*ne communi odio Germanorum innocentes pro nocentibus poenas pendant;
**[[w:ゲルマニア|ゲルマーニア]]人一般への憎しみから、潔白な者たちが加害者たちのために罰を償うことがないように、と。
*si amplius obsidum vellet, dare pollicentur.
**もし、より多くの人質を欲するのなら、供出することを約束する、と。
*⑧ Cognita Caesar causa
**カエサルは事情を調査して、
*reperit ab Suebis auxilia missa esse;
**スエービー族により(トレーウェリー族に)援軍が派遣されていたことを見出した。
*Ubiorum satisfactionem accipit,
**ウビイー族の弁解を受け入れて、
*aditus viasque in Suebos perquirit.
**スエービー族のところに出入りする道筋を問い質した。
===10節===
'''ウビイー族を通じてスエービー族の動静を探る'''
*① Interim paucis post diebus fit ab Ubiis certior
**わずかな日々の後の間に、ウビイー族によって報告されたことには、
*Suebos omnes in unum locum copias cogere
*スエービー族は、すべての軍勢を一か所に集めて、
**(訳注:後述するように、これはカッティー族 [[w:en:Chatti|Chatti]] のことであろう。)
*atque iis nationibus, quae sub eorum sint imperio,
**彼らの支配下にある種族たちに
*denuntiare, ut auxilia peditatus equitatusque mittant.
**[[w:歩兵|歩兵]]隊と[[w:騎兵|騎兵]]隊の援軍を派遣するように指示した。
*② His cognitis rebus
**(カエサルは)これらの事情を知ると、
*rem frumentariam providet, castris idoneum locum deligit;
**糧食調達を準備して、[[w:カストラ|陣営]](を設置するの)に適切な場所を選んだ。
*Ubiis imperat, ut pecora deducant suaque omnia ex agris in oppida conferant,
**ウビイー族には、家畜を連れ去り、自分たちの一切合財を土地から[[w:オッピドゥム|城市]]に運び集めるように命令した。
*sperans barbaros atque imperitos homines
**(カエサルが)期待したのは、野蛮で無知な連中が
*inopia cibariorum adductos ad iniquam pugnandi condicionem posse deduci;
**糧秣の欠乏に動かされて、不都合な条件のもとで戦うことがあり得るように誘引されることであった。
*③ mandat, ut crebros exploratores in Suebos mittant quaeque apud eos gerantur cognoscant.
**偵察者たちをたびたびスエービー族内に遣わして、彼らのもとで遂行されていることを知るように(ウビイー族に)委ねた。
*④ Illi imperata faciunt et paucis diebus intermissis referunt:
**彼ら(ウビイー族)は、命令されたことを実行して、わずかな日々を間に置いて(以下のことを)報告する。
*Suebos omnes, posteaquam certiores nuntii de exercitu Romanorum venerint,
**スエービー族は皆、ローマ人の軍隊についてより確実な報告がもたらされた後で、
*cum omnibus suis sociorumque copiis, quas coegissent,
**自分たちの軍勢と集結していた同盟者たちの軍勢とともに、
*penitus ad extremos fines se recepisse;
**領土の最も遠い奥深くまで撤退していた。
*⑤ silvam esse ibi infinita magnitudine, quae appellatur Bacenis;
**そこには、バケニスと呼ばれている限りない大きさの森林がある。
*hanc longe introrsus pertinere et pro nativo muro obiectam
**これは、はるか内陸に及んでいて、天然の防壁として横たわっており、
*[[wikt:en:Cheruscos|Cheruscos]] ab Suebis Suebosque ab [[wikt:en:Cheruscis|Cheruscis]] iniuriis incursionibusque prohibere:
**ケールスキー族をスエービー族から、スエービー族をケールスキー族から、無法行為や襲撃から防いでいる。
*ad eius initium silvae Suebos adventum Romanorum exspectare constituisse.
**その森の始まりのところで、スエービー族はローマ人の到来を待ち構えることを決定した。
<div style="border:solid #999 1px;background:#feedff;max-width:80%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
===コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」===
[[画像:Hermann (Arminius) at the battle of the Teutoburg Forest in 9 CE by Peter Jannsen, 1873, with painting creases and damage removed.jpg|thumb|right|250px|ウァルスの戦い([[w:de:Varusschlacht|Varusschlacht]])こと[[w:トイトブルク森の戦い|トイトブルク森の戦い]](AD9年)で戦う、ゲルマーニア軍とローマ軍(Johann Peter Theodor Janssen画、1870~1873年頃)。中央上の人物はケールスキー族の名将[[w:アルミニウス (ゲルマン人)|アルミニウス]]。<br>アルミニウスが率いるケールスキー族・カッティー族らゲルマーニア諸部族同盟軍は、P.クィン(ク)ティリウス・ウァルス麾下ローマ3個軍団を壊滅させ、アウグストゥスに「ウァルスよ諸軍団を返せ([[w:la:Publius_Quinctilius_Varus|Quintili Vare]], legiones redde!)」と嘆かせた。]]
<br>
<div style="background:#ecf;"> '''スエービー族とカッティー族'''</div>
:『ガリア戦記』では、第1巻・第4巻および第6巻でたびたび[[w:スエビ族|スエービー族]]の名が言及される。タキトゥス<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の38章「スエービー」などを参照。</ref>など多くの史家が伝えるようにスエービー族 [[wikt:en:Suebi#Latin|Suēbī]] またはスエウィ族 Suēvī とは、単一の部族名ではなく、多くの独立した部族国家から構成される連合体の総称とされる。
:19世紀のローマ史家[[w:テオドール・モムゼン|テオドール・モムゼン]]によれば<ref>『モムゼン ローマの歴史Ⅳ』長谷川博隆訳、名古屋大学出版会、のp.201, p.224, p.232などを参照。</ref>、カエサルの時代のローマ人には
「スエービー」とは遊牧民を指す一般的な呼称で、カエサルがスエービーと呼ぶのはカッティー族だという。
:カッティー族とスエービー系諸部族の異同は明確ではないが、多くの史家は両者を区別して伝えている。
: 第1巻37節・51節・53節~54節、第4巻1節~4節・7節などで言及され、「百の郷を持つ」と
されている「スエービー族」は、スエービー系諸部族の総称、あるいは遊牧系の部族を指すのであろう。
: 他方、第4巻16節・19節・第6巻9節~10節・29節で、ウビイー族を圧迫する存在として言及される
:「スエービー族」はモムゼンの指摘のように、カッティー族 [[w:en:Chatti|Chatti]] であることが考えられる。
:タキトゥス著『ゲルマーニア』<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の36章「ケルスキー」などを参照。</ref>でも、カッティー族はケールスキー族と隣接する宿敵として描写され、本節の説明に合致する。
<div style="background:#ecf;"> '''ケールスキー族'''</div>
:ケールスキー族は、『ガリア戦記』では[[#10節|本節]]でカッティー族と隣接する部族として名を挙げられる
:のみである。しかしながら、本巻の年(BC53年)から61年後(AD9年)には、帝政ローマの
:[[w:アウグストゥス|アウグストゥス帝]]がゲルマーニアに派遣していたプブリウス・クィンクティリウス・ウァルス
:([[w:la:Publius_Quinctilius_Varus|Publius Quinctilius Varus]])が率いるローマ軍3個軍団に対して、名将[[w:アルミニウス (ゲルマン人)|アルミニウス]]を
:指導者とするケールスキー族は、カッティー族ら諸部族の同盟軍を組織して、ウァルスの3個軍団を
:[[w:トイトブルク森の戦い|トイトブルク森の戦い]]において壊滅させ、老帝アウグストゥスを嘆かせたという。
<div style="background:#ecf;"> '''ウビイー族'''</div>
:ウビイー族は『ガリア戦記』の第4巻・第6巻でも説明されているように、ローマ人への忠節を
:認められていた。そのため、タキトゥスによれば<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の28章などを参照。</ref>、ゲルマニアへのローマ人の守りとして
:BC38年頃にレヌス(ライン川)左岸のコロニア([[w:la:Colonia_Agrippina|Colonia]];植民市)すなわち現在の[[w:ケルン|ケルン市]]に移された。)
</div>
==ガッリア人の社会と風習について==
<div style="border:solid #999 1px;background:#feedff;max-width:80%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
===コラム「ガッリア・ゲルマーニアの地誌・民族誌について」===
[[画像:Testa di saggio o principe, forse il filosofo poseidonio, 50 ac. ca 01.JPG|thumb|right|200px|アパメアの[[w:ポセイドニオス|ポセイドニオス]]の胸像。地中海世界やガッリアなどを広く訪れて、膨大な著作を残した。<br>『ガリア戦記』の地誌・民族誌的な説明も、その多くを彼の著作に依拠していると考えられている。]]
:これ以降、11節~20節の10節にわたってガッリアの地誌・民族誌的な説明が展開され、さらには、ゲルマーニアの地誌・民族誌的な説明などが21節~28節の8節にわたって続く。ガッリア戦争の背景説明となるこのような地誌・民族誌は、本来ならば第1巻の冒頭に置かれてもおかしくはない。しかしながら、この第6巻の年(BC53年)は、カエサル指揮下のローマ勢にとってはよほど書かれるべき戦果が上がらなかったためか、ガッリア北部の平定とエブロネス族の追討戦だけでは非常に短い巻となってしまうため、このような位置に置いたとも考えられる。ゲルマーニアの森にどんな獣が住んでいるかなど、本筋にほとんど影響のないと思われる記述も見られる。
:『ガリア戦記』におけるガッリアの地誌・民族誌的な説明、特にこの11節以降の部分は、文化史的に重要なものと見なされ、考古学やケルトの伝承などからも裏付けられる。しかし、これらの記述はカエサル自身が見聞したというよりも、むしろ先人の記述、とりわけBC2~1世紀のギリシア哲学ストア派の哲学者・地理学者・歴史学者であった[[w:ポセイドニオス|ポセイドニオス]]([[w:la:Posidonius Apameus|Posidonius Apameus]])の著作に依拠していたと考えられている<ref>『ケルト事典』ベルンハルト・マイヤー著、鶴岡真弓監修、創元社の「ポセイドニオス」「カエサル」の項を参照。</ref> <ref>『ケルト人』ヴァンセスラス・クルータ([[w:fr:Venceslas Kruta|Venceslas Kruta]])著、鶴岡真弓訳、白水社 のp.20-21を参照。</ref>。ポセイドニオスは、ローマが支配する地中海世界やガッリア地域などを広く旅行した。彼の52巻からなる膨大な歴史書は現存しないが、その第23巻にガッリアに関する詳細な記述があったとされ、[[w:シケリアのディオドロス|ディオドロス]]、[[w:ストラボン|ストラボン]]、[[w:アテナイオス|アテナイオス]]らによって引用され、同時代および近代のケルト人観に多大な影響を与えたと考えられている。
:現存するガッリアの地誌・民族誌は、ストラボン<ref>『ギリシア・ローマ世界地誌Ⅰ』ストラボン著、飯尾都人訳、龍溪書舎を参照。</ref>、ディオドロス<ref>『神代地誌』ディオドロス著、飯尾都人訳、龍溪書舎を参照。</ref>、ポンポニウス・メラ<ref>『世界地理』ポンポニウス・メラ著、飯尾都人訳(上掲『神代地誌』に所収)</ref>のものなどがある。現存するゲルマーニアの地誌・民族誌は、ストラボン、タキトゥス<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫などを参照。</ref>、ポンポニウス・メラなどのものがある。
</div>
===11節===
'''ガッリア人の派閥性'''
*① Quoniam ad hunc locum perventum est,
**この地(ゲルマーニア)にまで到達したので、
*non alienum esse videtur de Galliae Germaniaeque moribus et, quo differant hae nationes inter sese proponere.
**[[w:ガリア|ガッリア]]と[[w:ゲルマニア|ゲルマーニア]]の風習について、これらの種族が互いにどのように異なるか述べることは不適切でないと思われる。
*② In Gallia non solum in omnibus civitatibus atque in omnibus <u>[[wikt:en:pagus#Latin|pagis]]</u> partibusque,
**ガッリアにおいては、すべての部族において、さらにすべての<u>郷</u>や地方においてのみならず、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''pagus'' (郷) はここでは、部族の領土の農村区画を指す行政用語<ref name="pagus">''[[w:en:Pagus]]'' 等を参照。</ref>。)</span>
*sed paene etiam in singulis domibus factiones sunt,
**ほとんどの個々の氏族においてさえも、派閥があり、
*earumque factionum principes sunt,
**それらの派閥には、領袖がいる。
*③ qui summam auctoritatem eorum iudicio habere existimantur,
**その者(領袖)らは、彼ら(派閥)の判断に対して、最高の影響力を持っていると考えられている。
*quorum ad arbitrium iudiciumque summa omnium rerum consiliorumque redeat.
**すべての事柄と協議は結局のところ、その者(領袖)らの裁量や判断へ帰する。
*④ Idque eius rei causa antiquitus institutum videtur,
**それは、それらの事柄のために昔から取り決められたものと見られ、
*ne quis ex plebe contra potentiorem auxilii egeret:
**平民のある者が、より権力のある者に対して、援助を欠くことがないように、ということである。
*suos enim quisque opprimi et circumveniri non patitur,
**すなわち(領袖たちの)誰も、身内の者たちが抑圧されたり欺かれたりすることを容認しない。
*neque, aliter si faciat, ullam inter suos habet auctoritatem.
**もし(領袖が)そうでなくふるまったならば、身内の者たちの間で何ら影響力を持てない。
*⑤ Haec eadem ratio est in summa totius Galliae;
**これと同じ理屈が、ガッリア全体の究極において存在する。
*namque omnes civitates in partes divisae sunt duas.
**すなわち、すべての部族が二つの党派に分けられているのである。
===12節===
'''ハエドゥイ族、セクァニ族、レミ族の覇権争い'''
*① Cum Caesar in Galliam venit,
**カエサルがガッリアに来たときに、
*alterius factionis principes erant Haedui, alterius Sequani.
**(二つの)派閥の一方の盟主は[[w:ハエドゥイ族|ハエドゥイ族]]であり、他方は[[w:セクァニ族|セクァニ族]]であった。
**:(訳注:第1巻31節の記述によれば、ハエドゥイ族と[[w:アルウェルニ族|アルウェルニ族]]がそれぞれの盟主であった。
**:カエサルが本節でアルウェルニ族の名を伏せている理由は不明である。
**:また、[[w:ストラボン|ストラボン]]によれば<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.330)</ref>、ハエドゥイ族とセクァニ族の敵対関係においては、
**:両部族を隔てるアラル川の水利権(川舟の通行税)をめぐる争いが敵意を助長していたという。)
*② Hi cum per se minus valerent,
**後者(セクァニ族)は自力ではあまり優勢ではなかったので、
*quod summa auctoritas antiquitus erat in Haeduis
**というのは、昔から最大の影響力はハエドゥイ族にあって、
*magnaeque eorum erant clientelae,
**彼ら(ハエドゥイ族)には多くの庇護民があったからであるが、
*Germanos atque Ariovistum sibi adiunxerant
**[[w:ゲルマニア|ゲルマニア]]人と[[w:アリオウィストゥス|アリオウィストゥス]]を自分たちに会盟させ、
*eosque ad se magnis iacturis pollicitationibusque perduxerant.
**多くの負担と約束で 彼らを自分たちのところに引き入れた。
*③ Proeliis vero compluribus factis secundis
**実にいくつもの戦闘を順調に行なって、
*atque omni nobilitate Haeduorum interfecta
**ハエドゥイ族のすべての高貴な者たちを殺害して、
*tantum potentia antecesserant,
**かなりの勢力で抜きん出たので、
*④ ut magnam partem clientium ab Haeduis ad se traducerent
**結果として、ハエドゥイ族から庇護民の大部分を自分たちへ味方に付けて、
*obsidesque ab iis principum filios acciperent
**彼らから領袖の息子たちを人質として受け取り、
*et publice iurare cogerent nihil se contra Sequanos consilii inituros,
**自分たち(ハエドゥイ族)がセクァニ族に対して何ら謀計を始めるつもりではない、と公に誓うことを強いて、
*et partem finitimi agri per vim occupatam possiderent
**近隣の土地の一部を力ずくで占領して所有地とした。
*Galliaeque totius principatum obtinerent.
**ガッリア全体の指導権を手に入れた。
*⑤ Qua necessitate adductus
**それにより、やむを得ずに動かされて、
*Diviciacus auxilii petendi causa Romam ad senatum profectus infecta re redierat.
**[[w:ディウィキアクス|ディウィキアクス]]は支援を求めるために[[w:ローマ|ローマ市]]に元老院のところへ赴いたが、事を成就せずに帰った。
*⑥ Adventu Caesaris facta commutatione rerum,
**カエサルの到来で事態の変化がなされて、
*obsidibus Haeduis redditis,
**ハエドゥイ族の人質たちは戻されて、
*veteribus clientelis restitutis,
**昔からの庇護民が復帰して、
*novis per Caesarem comparatis,
**カエサルを通じて新参者たちを仲間にした。
*quod ii qui se ad eorum amicitiam adgregaverant,
**というのは、彼ら(ハエドゥイ族)の友好のもとに仲間となっていた者たちが、
*⑦ meliore condicione atque aequiore imperio se uti videbant,
**(セクァニ族)より良い条件とより公平な支配を享受しているように見えて、
*reliquis rebus eorum gratia dignitateque amplificata
**ほかの事柄においても彼ら(ハエドゥイ族)の信望と品格がより増されて、
*Sequani principatum dimiserant.
**セクァニ族は指導権を放棄したのだ。
*In eorum locum Remi successerant:
**彼ら(セクァニ族)の地位において、[[w:レミ族|レミ族]]が取って代わった。
*quos quod adaequare apud Caesarem gratia intellegebatur,
**その者ら(レミ族)はカエサルのもとで信望において(ハエドゥイ族と)同等であると認識されたので、
*ii qui propter veteres inimicitias nullo modo cum Haeduis coniungi poterant,
**昔からの敵対関係のためにハエドゥイ族とどのようなやり方でも結ぶことができなかった者たちは、
*se Remis in clientelam dicabant.
**レミ族との庇護関係に自らを委ねたのだ。
*⑧ Hos illi diligenter tuebantur;
**この者ら(レミ族)はあの者ら(庇護民)を誠実に保護して、
*ita et novam et repente collectam auctoritatem tenebant.
**このようにして、最近に得られた新しい影響力を保持した。
*⑨ Eo tum statu res erat, ut longe principes haberentur Haedui,
**当時、ハエドゥイ族の位置付けは、まったく盟主と見なされるような状態であって、
*secundum locum dignitatis Remi obtinerent.
**レミ族の品格は第二の地位を占めたのだ。
===13節===
'''ガッリア人の社会階級、平民およびドルイドについて(1)'''
*① In omni Gallia eorum hominum, qui aliquo sunt numero atque honore, genera sunt duo.
**全ガッリアにおいて、何らかの地位や顕職にある人々の階級は二つである。
'''平民について'''
*Nam plebes paene servorum habetur loco,
**これに対して、平民はほとんど奴隷の地位として扱われており、
*quae nihil audet per se, nullo adhibetur consilio.
**自分たちを通じては何らあえてすることはないし、誰も相談をされることもない。
*② Plerique, cum aut aere alieno aut magnitudine tributorum aut iniuria potentiorum premuntur,
**多くの者は、あるいは負債、あるいは貢納の多さ、あるいはより権力のある者に抑圧されているので、
*sese in servitutem dicant.
**自らを奴隷身分に差し出している。
*Nobilibus in hos eadem omnia sunt iura, quae dominis in servos.
**高貴な者たちには彼ら(平民)において、奴隷において主人にあるのと同様なすべての権利がある。
'''ドルイドについて'''
*③ Sed de his duobus generibus alterum est druidum, alterum equitum.
**ともかく、これら二つの階級について、一方は[[w:ドルイド|ドルイド]](神官)であり、他方は[[w:騎士|騎士]]である。
*④ Illi rebus divinis intersunt, sacrificia publica ac privata procurant, religiones interpretantur:
**前者(ドルイド)は神事に介在し、公・私の<ruby><rb>[[w:供犠|供犠]]</rb><rp>(</rp><rt>くぎ</rt><rp>)</rp></ruby>を司り、信仰のことを講釈する。
**:(訳注:供犠とは、人や獣を生け贄として神前に捧げることである。<ruby><rb>[[w:人身御供|人身御供]]</rb><rp>(</rp><rt>ひとみごくう</rt><rp>)</rp></ruby>とも。)
[[画像:Two_Druids.PNG|thumb|right|200px|二人のドルイド。フランスの[[w:オータン|オータン]]、すなわちガッリア中部のビブラクテ辺りで発見された[[w:レリーフ|レリーフ]]。]]
*ad hos magnus adulescentium numerus disciplinae causa concurrit,
**この者ら(ドルイド)のもとへ、若者の多数が教えのために群り集まり、
*magnoque hi sunt apud eos honore.
**この者ら(ドルイド)は、彼ら(ガッリア人)のもとで大いなる地位にある。
*⑤ Nam fere de omnibus controversiis publicis privatisque constituunt,
**なぜなら(ドルイドは)ほとんどすべての公・私の訴訟ごとに判決をするのである。
*et, si quod est admissum facinus, si caedes facta,
**もし何らかの罪悪が犯されれば、もし殺害がなされれば、
*si de hereditate, de finibus controversia est,
**もし、遺産について、地所について、訴訟ごとがあれば、
*idem decernunt, praemia poenasque constituunt;
**同じ人たち(ドルイド)が裁決し、補償や懲罰を判決するのである。
*⑥ si qui aut privatus aut populus eorum decreto non stetit, sacrificiis interdicunt.
**もし何らかの個人あるいは集団が彼ら(ドルイド)の裁決を遵守しなければ、(その者らに)供犠を禁じる。
*Haec poena apud eos est gravissima.
**これは、彼ら(ガッリア人)のもとでは、非常に重い懲罰である。
*⑦ Quibus ita est interdictum,
**このように(供犠を)禁じられた者たちは、
*hi numero impiorum ac sceleratorum habentur,
**彼らは、不信心で不浄な輩と見なされて、
*his omnes decedunt, aditum sermonemque defugiunt,
**皆が彼らを忌避して、近づくことや会話を避ける。
*ne quid ex contagione incommodi accipiant,
**(彼らとの)接触から、何らかの災厄を負うことがないようにである。
*neque his petentibus ius redditur
**彼らが請願しても(元通りの)権利は戻されないし、
*neque honos ullus communicatur.
**いかなる地位(に就くこと)も許されない。
*⑧ His autem omnibus druidibus praeest unus,
**ところで、これらすべてのドルイドを一人が指導しており、
*qui summam inter eos habet auctoritatem.
**その者は彼ら(ドルイドたち)の間に最高の影響力を持っている。
*⑨ Hoc mortuo
**この者が死んだならば、
*aut, si qui ex reliquis excellit dignitate, succedit,
**あるいは、もし残りの者たちの中から品格に秀でた者がおれば、継承して、
*aut, si sunt plures pares, suffragio druidum {adlegitur}<ref>adlegitur はβ系写本の記述で、α系写本にはない。</ref>;
**あるいは、もしより多くの者たちが同等であれば、ドルイドの投票で{選ばれる}。
*nonnumquam etiam armis de principatu contendunt.
**ときどきは、武力でさえも首座を争うことがある。
*⑩ Hi certo anni tempore
**彼ら(ドルイド)は年間の定められた時期に
*in finibus Carnutum, quae regio totius Galliae media habetur, considunt in loco consecrato.
**ガッリア全体の中心地方と見なされている[[w:カルヌテス族|カルヌテス族]]の領土において、[[w:聖地|聖地]]に集合する。
**:(訳注:これはカエサルが支配する「ガッリア全体」の話で、他の地方には別の中心地があったようである。)
*Huc omnes undique, qui controversias habent, conveniunt
**ここへ、至る所から訴訟などを持つあらゆる者たちが集まって、
*eorumque decretis iudiciisque parent.
**彼ら(ドルイド)の裁決や判断に服従する。
*⑪ Disciplina in Britannia reperta atque inde in Galliam translata esse existimatur,
**(ドルイドの)教えは[[w:ブリタンニア|ブリタンニア]]で見出され、そこからガッリアにもたらされたと考えられている。
**:(訳注:これに対して、[[w:シケリアのディオドロス|ディオドロス]]は、ガッリア人の信仰は[[w:ピュタゴラス教団|ピュタゴラスの教説]]であると伝えている<ref>ディオドロス『神代地誌』(前掲、p.408)</ref>。
**:[[w:ストラボン|ストラボン]]によれば、これは東方のゲタエ人([[w:en:Getae|Getae]];[[w:トラキア|トラキア]]系ないし[[w:ダキア|ダキア]]系)を通じて取り入れたものだという<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、第7巻 第3章 第5節)</ref>。)
*⑫ et nunc, qui diligentius eam rem cognoscere volunt,
**今でも、その事柄をより入念に探究することを欲する者たちは、
*plerumque illo discendi causa proficiscuntur.
**たいてい、かの地に研究するために旅立つ。
===14節===
'''ドルイドについて(2)'''
*① Druides a bello abesse consuerunt
**[[w:ドルイド|ドルイド]]たちは、戦争に関与しない習慣であり、
*neque tributa una cum reliquis pendunt;
**ほかの者と一緒に貢納(租税)を支払うこともない。
*militiae vacationem omniumque rerum habent immunitatem.
**[[w:徴兵制度|兵役]]の免除や、すべての事柄において免除特権を持っているのである。
[[画像:Druids,_in_the_early_morning_glow_of_the_sun.jpg|thumb|right|200px|現代イギリスのドルイド教復興主義者たち]]
*② Tantis excitati praemiis
**このような特典に駆り立てられて
*et sua sponte multi in disciplinam conveniunt
**自らの意思で多くの者が教え(の場)に集まっても来るし、
*et a parentibus propinquisque mittuntur.
**親たちや縁者たちによって送られても来る。
*③ Magnum ibi numerum versuum ediscere dicuntur.
**(彼らは)そこで詩句の多数を習得すると言われている。
*Itaque annos nonnulli vicenos in disciplina permanent.
**こうして、少なからぬ者たちが、20年にもわたって教え(の場)に残留する。
[[画像:Dédicace_de_Segomaros_(inscription gallo-grecque).png|thumb|right|200px|ギリシア文字で刻まれたガッリアの碑文]]
*Neque fas esse existimant ea litteris mandare,
**それら(の詩句)を文字で刻み込むことは、神意に背くと考えている。
*cum in reliquis fere rebus, publicis privatisque rationibus, Graecis litteris utantur.
**もっとも、ほかの事柄においては、公・私の用件に[[w:ギリシア文字|ギリシア文字]]を用いる。
*④ Id mihi duabus de causis instituisse videntur,
**それは、私(カエサル)には、二つの理由で(ドルイドが)定めたことと思われる。
**:(訳注:これは、カエサルが自らを一人称で示している珍しい個所である。)
*quod neque in vulgum disciplinam efferri velint
**というのは、教えが一般大衆にもたらされることは欲していないし、
*neque eos, qui discunt, litteris confisos minus memoriae studere:
**(教えを)学ぶ者が、文字を頼りにして、あまり暗記することに努めなくならないようにである。
[[画像:Dying_gaul.jpg|thumb|right|200px|『[[w:瀕死のガリア人|瀕死のガリア人]]』([[w:en:Dying_Gaul|Dying Gaul]])像(ローマ市の[[w:カピトリーノ美術館|カピトリーノ美術館]])]]
*quod fere plerisque accidit, ut
**というのも、ほとんど多くの場合に起こることには、
*praesidio litterarum diligentiam in perdiscendo ac memoriam remittant.
**文字の助けによって、入念に猛勉強することや暗記することを放棄してしまうのである。
*⑤ In primis hoc volunt persuadere,
**とりわけ、彼ら(ドルイド)が説くことを欲しているのは、
*non interire animas, sed ab aliis post mortem transire ad alios,
**霊魂は滅びることがないのみならず、死後にある者から別のある者へ乗り移るということである。
**:(訳注:ガッリア人の[[w:輪廻転生|転生信仰]]は、[[w:ピュタゴラス教団|ピュタゴラスの教説]]であると、[[w:シケリアのディオドロス|ディオドロス]]が伝えている<ref>ディオドロス『神代地誌』(前掲、p.408)</ref>。)
*atque hoc maxime ad virtutem excitari putant metu mortis neglecto.
**これによって(ガッリア人は)死の恐怖に無頓着になって最も武勇へ駆り立てられると(ドルイドは)思っている。
[[画像:Universum.jpg|thumb|right|200px|古代以来の伝統的な世界観における天空と平らな大地。カルデアやギリシアを除けば、丸い地球という観念は知られていなかった。]]
*Multa praeterea de sideribus atque eorum motu,
**さらに多く、星々とその動きについて、
*de mundi ac terrarum magnitudine, de rerum natura,
**天空と大地の大きさについて、物事の本質について、
*de deorum immortalium vi ac potestate
**不死の神々の力と支配について、
*disputant et iuventuti tradunt.
**研究して、青年たちに教示するのである。
<br>
<br>
*('''訳注:ドルイドについて'''
:ケルト社会の神官・祭司・僧などとされるドルイドについては、おそらくは[[w:ポセイドニオス|ポセイドニオス]]、そしてカエサル、
:および[[w:シケリアのディオドロス|ディオドロス]]<ref>ディオドロス『神代地誌』(前掲、p.410-p.411)</ref>、[[w:ストラボン|ストラボン]]<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.341-p.342)</ref>、ポンポニウス・メラ<ref>ポンポニウス・メラ『世界地理』(前掲、p.549)</ref>などのギリシア人・ローマ人の著述家たちがそれぞれ
:書き残しているために同時代や現代に知られている。しかし、本節にもあるように、その秘密主義からか、
:古代ギリシア・ローマの著作にあるほかには、その詳細については不明である。)
===15節===
[[画像:BIATEC_pri_NBS_1.jpg|thumb|right|200px|ケルト系の王ビアテック([[w:en:Biatec|Biatec]])の騎馬像([[w:スロバキア国立銀行|スロバキア国立銀行]])。彼はBC1世紀のケルトの硬貨に刻まれた人物で、現代[[w:スロバキア・コルナ|スロバキアの5コルナ]]硬貨にも刻まれている。]]
[[画像:Bige_Musée_de_Laon_050208.jpg|thumb|right|200px|二頭立て二輪馬車([[w:チャリオット|戦車]])に乗るガリア人像(仏・ラン博物館)]]
'''ガッリア人の騎士階級について'''
*① Alterum genus est equitum.
**(ドルイドと並ぶ)もう一つの階級は、[[w:騎士|騎士]]である。
*Hi, cum est usus atque aliquod bellum incidit
**彼らは、必要とされ、かつ何らかの戦争が勃発したときには、
*─ quod fere ante Caesaris adventum quotannis accidere solebat,
**─ それ(戦争)はカエサルの到来以前にはほとんど毎年のように起こるのが常であり、
*uti aut ipsi iniurias inferrent aut inlatas propulsarent ─,
**自身が侵犯行為を引き起こすためか、あるいは引き起こされて撃退するためであったが、─
*omnes in bello versantur,
**総勢が戦争に従事した。
*② atque eorum ut quisque est genere copiisque amplissimus,
**さらに彼らは、高貴な生まれで財産が非常に大きければ大きいほど、
**:(訳注:ut quisque ~ ita;おのおのが~であればあるほどますます)
*ita plurimos circum se ambactos clientesque habet.
**自らの周囲に非常に多くの臣下や庇護民たちを侍らせる。
*Hanc unam gratiam potentiamque noverunt.
**(騎士たちは)これが信望や権勢(を示すこと)の一つであると認識しているのである。
===16節===
'''ガッリア人の信仰と生け贄、ウィッカーマン'''
*① Natio est omnis Gallorum admodum dedita religionibus,
**ガッリア人のすべての部族民は、まったく信仰行為に身を捧げている。
*② atque ob eam causam,
**その理由のために、
*qui sunt adfecti gravioribus morbis
**非常に重い病気を患った者たち
*quique in proeliis periculisque versantur,
**および戦闘において危険に苦しめられる者たちは、
*aut pro victimis homines immolant
**あるいは<ruby><rb>[[w:生贄|生け贄]]</rb><rp>(</rp><rt>いけにえ</rt><rp>)</rp></ruby>の獣(犠牲獣)の代わりに人間を供えたり、
*aut se immolaturos vovent,
**あるいは自らを犠牲にするつもりであると誓願し、
*administrisque ad ea sacrificia druidibus utuntur,
**その<ruby><rb>[[w:供犠|供犠]]</rb><rp>(</rp><rt>くぎ</rt><rp>)</rp></ruby>を執り行う者として[[w:ドルイド|ドルイド]]を利用するのである。
*③ quod, pro vita hominis nisi hominis vita reddatur,
**というのは(一人の)人間の生命のためには、(もう一人の)人間の生命が償われない限り、
*non posse deorum immortalium numen placari arbitrantur,
**不死の神々の<ruby><rb>御霊</rb><rp>(</rp><rt>みたま</rt><rp>)</rp></ruby>がなだめられることができないと思われているからである。
*publiceque eiusdem generis habent instituta sacrificia.
**同じような類いの供儀が公けに定められているのである。
[[画像:WickerManIllustration.jpg|thumb|right|310px|柳の枝で編んだ巨人[[w:ウィッカーマン|ウィッカーマン]]([[w:en:Wicker_Man|Wicker Man]])の想像画(18世紀)。この特異な風習は、近代になって人々の興味をかき立て、いくつもの想像画が描かれた<ref>例えば『ケルト人─蘇るヨーロッパ<幻の民>』C.エリュエール著、鶴岡真弓監修、創元社、p.130の挿絵などを参照。</ref>。1973年にはイギリスで映画化され<ref>“[[w:en:The Wicker Man (1973 film)|The Wicker Man]]”はウィッカーマンを題材にした1973年のイギリスのカルト映画作品。</ref>、2006年にはアメリカなどでも映画化された<ref>“[[w:en:The Wicker Man (2006 film)|The Wicker Man]]”は上記作品をリメイクした2006年のアメリカ・カナダ・ドイツの映画作品。</ref>。]]
[[画像:Burning_wicker_man_by_Bruce_McAdam.jpg|thumb|right|100px|スコットランドの野外博物館で燃やされるウィッカーマン(2008年)]]
'''ウィッカーマン'''
*④ Alii immani magnitudine simulacra habent,
**ある者たちは、恐ろしく大規模な像を持って、
*quorum contexta viminibus membra vivis hominibus complent;
**その柳の枝で編み込まれた肢体を人間たちで満杯にして、
*quibus succensis
**それらを燃やして、
*circumventi flamma exanimantur homines.
**人々は炎に取り巻かれて息絶えさせられるのである。
*⑤ Supplicia eorum qui in furto aut in latrocinio
**窃盗あるいは追い剥ぎに関わった者たちを処刑することにより、
*aut aliqua noxia sint comprehensi,
**あるいは何らかの罪状により捕らわれた者たち(の処刑)により、
*gratiora dis immortalibus esse arbitrantur;
**不死の神々に感謝されると思っている。
*sed, cum eius generis copia defecit,
**しかしながら、その類いの量が欠けたときには、
*etiam ad innocentium supplicia descendunt.
**潔白な者たちさえも犠牲にすることに頼るのである。
<br><br>
:('''訳注''':このような'''[[w:ウィッカーマン|ウィッカーマン]]'''の供犠については[[w:ストラボン|ストラボン]]も伝えており<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.343)</ref>、
:[[w:人身御供|人身御供]]の種類の一つとして、干し草やたきぎで巨像を作り、その中へあらゆる
:家畜・野生動物や人間たちを投げ込んで丸焼きにする習慣があったという。
: また、[[w:シケリアのディオドロス|ディオドロス]]<ref>ディオドロス『神代地誌』(前掲、p.410~p.411)</ref>やストラボンによれば、ドルイドはむしろ'''[[w:予言|予言者]]・[[w:占い|占い師]]'''
:であるという。ドルイドが重要な問題について占うときには、供犠される人間の
:腹または背中を剣などで刺して、犠牲者の倒れ方、肢体のけいれん、出血の様子
:などを観察して、将来の出来事を占うのだという。)
===17節===
'''ガッリアの神々(ローマ風解釈)'''
*① Deum maxime [[w:la:Mercurius_(deus)|Mercurium]] colunt.
**(ガッリア人は)神々のうちでとりわけ[[w:メルクリウス|メルクリウス]]を崇拝する。
**:(訳注:メルクリウスは[[w:ローマ神話|ローマ神話]]の神名であり、本節の神名はすべてローマ風解釈である。)
*Huius sunt plurima simulacra:
**彼の偶像が最も多い。
*hunc omnium inventorem artium ferunt,
**(ガッリア人は)彼をすべての技芸の発明者であると言い伝えており、
*hunc viarum atque itinerum ducem,
**彼を道および旅の案内者として、
*hunc ad quaestus pecuniae mercaturasque habere vim maximam arbitrantur.
**彼が金銭の利得や商取引で絶大な力を持つと思われている。
[[画像:Taranis_Jupiter_with_wheel_and_thunderbolt_Le_Chatelet_Gourzon_Haute_Marne.jpg|thumb|right|200px|ガッリアの雷神タラニス([[w:en:Taranis|Taranis]])の神像([[w:en:National_Archaeological_Museum_(France)|フランス国立考古学博物館]])。雷を司ることからローマ神話のユピテルと同一視された。左手に車輪、右手に稲妻を持っている。]]
[[画像:God_of_Etang_sur_Arroux_possible_depiction_of_Cernunnos.jpg|thumb|right|200px|ガッリアの神ケルヌンノス([[w:en:Cernunnos|Cernunnos]])の神像(フランス国立考古学博物館)。]]
*Post hunc [[w:la:Apollo|Apollinem]] et [[w:la:Minerva|Martem]] et [[w:la:Iuppiter|Iovem]] et [[w:la:Mars_(deus)|Minervam]].
**彼に続いて、[[w:アポローン|アポロ]]と[[w:マルス (ローマ神話)|マルス]]と[[w:ユーピテル|ユピテル]]と[[w:ミネルウァ|ミネルウァ]]を(ガッリア人は崇拝する)。
*② De his eandem fere, quam reliquae gentes, habent opinionem:
**これら(の神々)について、ほかの種族とほぼ同じ見解を持っている。
*Apollinem morbos depellere,
**アポロは病気を追い払い、
*Minervam operum atque artificiorum initia tradere,
**ミネルウァは工芸や技術の初歩を教示し、
*Iovem imperium caelestium tenere,
**ユピテルは天界の統治を司り、
*Martem bella regere.
**マルスは戦争を支配する。
*③ Huic, cum proelio dimicare constituerunt,
**彼(マルス)には、(ガッリア人が)戦闘で干戈を交えることを決心したときに、
*ea quae bello ceperint, plerumque devovent:
**戦争で捕獲したものを、たいていは奉納するものである。
*cum superaverunt, animalia capta immolant
**(戦闘で)打ち勝ったときには、捕獲された獣を生け贄に供えて、
*reliquasque res in unum locum conferunt.
**残りの物を1か所に運び集める。
*④ Multis in civitatibus harum rerum ex(s)tructos tumulos locis consecratis conspicari licet;
**多くの部族において、これらの物が積み上げられた塚を、神聖な地で見ることができる。
*⑤ neque saepe accidit, ut neglecta quispiam religione
**何らかの者が信仰を軽視するようなことが、しばしば起こることはない。
*aut capta apud se occultare aut posita tollere auderet,
**捕獲されたものを自分のもとに隠すこと、あるいは(塚に)置かれたものをあえて運び去ることは。
*gravissimumque ei rei supplicium cum cruciatu constitutum est.
**そんな事には、拷問を伴う最も重い刑罰が決められている。
**:(訳注:最も重い刑罰とは、処刑であると思われる。)
<br>
:(訳注:'''ローマ風解釈について'''
:ガッリアなどケルト文化の社会においては、非常に多くの神々が信仰されており、
:ケルト語による多くの神名が知られており、考古学的にも多くの神像が遺されている。
:しかしながら、これらの神々がどのような性格や権能を持っていたのか、詳しくは判っていない。
:ローマ人は、数多くのケルトの神々をローマ神話の神々の型に当てはめて解釈した。
:[[w:タキトゥス|タキトゥス]]はこれを「[[w:ローマ風解釈|ローマ風解釈]]」[[w:en:Interpretatio_Romana#Roman_version|Interpretatio Romana]] <ref>タキトゥス『ゲルマーニア』43章([[s:la:De_origine_et_situ_Germanorum_(Germania)#XLIII|ラテン語原文]])を参照。</ref>と呼んでいる<ref>『ケルト事典』(前掲)「ローマ風解釈」の項を参照。</ref>。)
===18節===
[[画像:Gaul_god_Sucellus.jpg|thumb|right|200px|ガッリアの神スケッルス([[w:en:Sucellus|Sucellus]])の神像。[[w:冥界|冥界]]の神とされ、ディス・パテルと同一視されたと考えられている。]]
'''ガッリア人の時間や子供についての観念'''
*① Galli se omnes ab Dite patre prognatos praedicant
**ガッリア人は、自分たちは皆、ディス・パテルの末裔であると公言しており、
**:(訳注:ディス・パテル [[w:en:Dis_Pater|Dis Pater]] も前節と同様にローマ神話の神名である。)
*idque ab druidibus proditum dicunt.
**それは[[w:ドルイド|ドルイド]]たちにより伝えられたと言う。
;時間の観念
*② Ob eam causam spatia omnis temporis non numero dierum, sed noctium finiunt;
**その理由のために、すべての[[w:時間|時間]]の間隔を、[[w:昼|昼間]]の数ではなく、[[w:夜|夜間]](の数)で区切る。
*dies natales et mensum et annorum initia sic observant, ut noctem dies subsequatur.
**誕生日も、月や年の初めも、夜間に昼間が続くように注意を払っている。
;子供についての観念
*③ In reliquis vitae institutis hoc fere ab reliquis differunt,
**人生のほかの風習において、以下の点でほかの者たち(種族)からほぼ異なっている。
*quod suos liberos, nisi cum adoleverunt, ut munus militiae sustinere possint,
**自分の子供たちが、[[w:徴兵制度|兵役の義務]]を果たすことができるように成長したときでない限り、
*palam ad se adire non patiuntur
**公然と自分のところへ近づくことは許されないし、
*filiumque puerili aetate in publico in conspectu patris adsistere turpe ducunt.
**少年期の息子が公けに父親の見ているところでそばに立つことは恥ずべきと見なしている。
===19節===
'''ガッリア人の婚姻と財産・葬儀の制度'''
*① Viri, quantas pecunias ab uxoribus dotis nomine acceperunt,
**夫は、妻から[[w:持参金|持参金]]の名目で受け取った金銭の分だけ、
*tantas ex suis bonis aestimatione facta cum dotibus communicant.
**自分の財産のうちから見積もられた分を、持参金とともに一つにする。
*② Huius omnis pecuniae coniunctim ratio habetur fructusque servantur:
**これらのすべての金銭は共同に算定が行なわれて、[[w:利子|利子]]が貯蓄される。
*uter eorum vita superarit,
**彼ら2人のいずれかが、人生において生き残ったら、
*ad eum pars utriusque cum fructibus superiorum temporum pervenit.
**双方の分がかつての期間の利子とともに(生き残った)その者(の所有)に帰する。
[[画像:Hallstatt_culture_ramsauer.jpg|thumb|right|200px|[[w:ハルシュタット文化|ハルシュタット文化]]の[[w:墳丘墓|墳丘墓]]から発掘された遺骸と[[w:副葬品|副葬品]](19世紀の模写)。ガッリアなどではハルシュタット文化後期から[[w:土葬|土葬]]が普及したが、[[w:ラ・テーヌ文化|ラ・テーヌ文化]]中期から再び[[w:火葬|火葬]]が主流になったと考えられている。]]
*③ Viri in uxores, sicuti in liberos, vitae necisque habent potestatem;
**夫は、妻において、子供におけるのと同様に、生かすも殺すも勝手である。
*et cum pater familiae inllustriore loco natus decessit, eius propinqui conveniunt
**上流身分に生まれた家族の父親が死去したとき、彼の近縁の者たちが集まって、
*et de morte, si res in suspicionem venit, de uxoribus in servilem modum quaestionem habent,
**死について、もし疑念が出来したならば、妻について、[[w:奴隷|奴隷]]におけるようなやり方で審問して、
*et si compertum est, igni atque omnibus tormentis excruciatas interficiunt.
**もし(疑念が)確認されたならば、火やあらゆる責め道具によって[[w:拷問|拷問]]にかけて誅殺する。
*④ Funera sunt pro cultu Gallorum magnifica et sumptuosa;
**[[w:葬儀|葬儀]]は、ガッリア人の生活習慣の割には派手でぜいたくなものである。
*omniaque quae vivis cordi fuisse arbitrantur in ignem inferunt, etiam animalia,
**生前に大切であったと思われるもの一切合財を、獣でさえも、火の中に投げ入れる。
*ac paulo supra hanc memoriam servi et clientes, quos ab his dilectos esse constabat,
**さらに、より以前のこの記憶では、彼ら(亡者)により寵愛されていたことが知られていた奴隷や庇護民をも、
*iustis funeribus confectis una cremabantur.
**慣習による葬儀が成し遂げられたら、一緒に火葬されていたのである。
===20節===
'''ガッリア部族国家の情報統制'''
*① Quae civitates commodius suam rem publicam administrare existimantur,
**より適切に自分たちの公儀(=国家体制)を治めると考えられているような部族は、
*habent legibus sanctum,
**(以下のように)定められた法度を持つ。
*si quis quid de re publica a finitimis rumore aut fama acceperit,
**もし、ある者が公儀に関して近隣の者たちから何らかの噂や風聞を受け取ったならば、
*uti ad magistratum deferat neve cum quo alio communicet,
**官吏に報告して、他の者と伝え合ってはならないと。
*② quod saepe homines temerarios atque imperitos falsis rumoribus terreri
**というのは、無分別で無知な人間たちはしばしば虚偽の噂に恐れて、
*et ad facinus impelli et de summis rebus consilium capere cognitum est.
**罪業に駆り立てられ、重大な事態についての考えを企てると認識されているからである。
*③ Magistratus quae visa sunt occultant,
**官吏は、(隠すことが)良いと思われることを隠して、
*quaeque esse ex usu iudicaverunt, multitudini produnt.
**有益と判断していたことを、民衆に明らかにする。
*De re publica nisi per concilium loqui non conceditur.
**公儀について、集会を通じてでない限り、語ることは認められていない。
==ゲルマーニアの風習と自然について==
===21節===
'''ゲルマーニア人の信仰と性'''
*① Germani multum ab hac consuetudine differunt.
**[[w:ゲルマニア|ゲルマーニア]]人はこれに対し、風習が大いに異なっている。
*Nam neque druides habent, qui rebus divinis praesint, neque sacrificiis student.
**すなわち、神事を司る[[w:ドルイド|ドルイド]]も持たないし、供犠に熱心でもない。
*② Deorum numero
**神々に数えるものとして、
*eos solos ducunt, quos cernunt et quorum aperte opibus iuvantur, Solem et Vulcanum et Lunam,
**(彼らが)見分けるものや明らかにその力で助けられるもの、[[w:太陽|太陽]]と[[w:ウォルカヌス|ウォルカヌス]](火の神)と[[w:月|月]]だけを信仰して、
*reliquos ne fama quidem acceperunt.
**ほかのものは風聞によってさえも受け入れていない。
**:(訳注:これに対して、[[w:タキトゥス|タキトゥス]]は、ゲルマーニア人はメルクリウスやマルスなどを信仰すると伝えている<ref>タキトゥス『ゲルマーニア』2章・9章を参照</ref>。)
*③ Vita omnis in venationibus atque in studiis rei militaris consistit:
**すべての人生は、[[w:狩猟|狩猟]]に、および[[w:軍事|軍事]]への執心に依拠しており、
*ab parvulis labori ac duritiae student.
**幼時より労役や負担に努める。
*④ Qui diutissime impuberes permanserunt, maximam inter suos ferunt laudem:
**最も長く純潔に留まった者は、自分たちの間で最大の賞賛を得る。
*hoc ali staturam, ali vires nervosque confirmari putant.
**これによって、ある者には背の高さが、ある者には力と筋肉が強化されると、思っている。
*⑤ Intra annum vero vicesimum feminae notitiam habuisse in turpissimis habent rebus;
**20歳にならない内に女を知ってしまうことは、とても恥ずべきことであると見なしている。
*cuius rei nulla est occultatio,
**その(性の)事を何ら隠すことはない。
*quod et promiscue in fluminibus perluuntur
**というのは、川の中で(男女が)混じって入浴しても、
*et pellibus aut parvis renonum tegimentis utuntur, magna corporis parte nuda.
**なめし皮や、小さな毛皮の覆いを用いるが、体の大部分は裸なのである。
===22節===
'''ゲルマーニア人の土地制度'''
*① Agri culturae non student,
**(ゲルマーニア人は)[[w:農耕|土地を耕すこと]]に熱心ではなく、
*maiorque pars eorum victus in lacte, caseo, carne consistit.
**彼らの大部分は、生活の糧が[[w:乳|乳]]、[[w:チーズ|チーズ]]、[[w:肉|肉]]で成り立っている。
*② Neque quisquam agri modum certum aut fines habet proprios;
**何者も、土地を確定した境界で、しかも持続的な領地として、持ってはいない。
*sed magistratus ac principes in annos singulos
**けれども、官吏や領袖たちは、各年ごとに、
*gentibus cognationibusque hominum, quique una coierunt,
**一緒に集住していた種族や血縁の人々に、
*quantum et quo loco visum est agri adtribuunt
**適切と思われる土地の規模と場所を割り当てて、
*atque anno post alio transire cogunt.
**翌年には他(の土地)へ移ることを強いるのである。
**:(訳注:[[ガリア戦記 第4巻#1節|第4巻1節]]には、スエービー族の説明として同様の記述がある。)
*③ Eius rei multas adferunt causas:
**(官吏たちは)その事の多くの理由を説明する。
*ne adsidua consuetudine capti studium belli gerendi agricultura commutent;
**(部族民が)[[w:居住|定住]]する習慣にとらわれて、戦争遂行の熱意を土地を耕すことに変えてしまわないように。
*ne latos fines parare studeant, potentioresque humiliores possessionibus expellant;
**広大な領地を獲得することに熱心になって、有力者たちが弱者たちを地所から追い出さないように。
*ne accuratius ad frigora atque aestus vitandos aedificent;
**寒さや暑さを避けるために(住居を)非常な入念さで建築することがないように。
*ne qua oriatur pecuniae cupiditas, qua ex re factiones dissensionesque nascuntur;
**金銭への欲望が増して、その事から派閥や不和が生ずることのないように。
*ut animi aequitate plebem contineant, cum suas quisque opes cum potentissimis aequari videat.
**おのおのが自分の財産も最有力者のも同列に置かれていると見ることで、心の平静により民衆を抑えるように。
<br>
:(訳注:[[w:ストラボン|ストラボン]]<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.510)</ref>や[[w:タキトゥス|タキトゥス]]<ref>タキトゥス『ゲルマーニア』23章・16章などを参照。26章では農耕についても解説されている。</ref>などの著述家たちも、ゲルマーニアの住民が農耕をせず、
:遊牧民のように移動しながら暮らし、小さな住居に住み、食料を家畜に頼っていると記述している。)
===23節===
'''ゲルマーニア諸部族のあり方'''
*① Civitatibus maxima laus est
**諸部族にとって、最も称賛されることは、
*quam latissime circum se vastatis finibus solitudines habere.
**できる限り広く自分たちの周辺で領土を荒らして荒野に保っておくことである。
*② Hoc proprium virtutis existimant,
**以下のことを(自分たちの)武勇の特質と考えている。
*expulsos agris finitimos cedere,
**近隣の者たちが土地から追い払われて立ち去ること、
*neque quemquam prope {se} audere consistere;
**および、何者も自分たちの近くにあえて定住しないこと、である。
*③ simul hoc se fore tutiores arbitrantur, repentinae incursionis timore sublato.
**他方、これにより、予期せぬ襲撃の恐れを取り除いて、自分たちはより安全であろうと思われた。
*④ Cum bellum civitas aut inlatum defendit aut infert,
**部族に戦争がしかけられて防戦したり、あるいはしかけたりしたときには、
*magistratus, qui ei bello praesint, ut vitae necisque habeant potestatem, deliguntur.
**その戦争を指揮して、生かすも殺すも勝手な権力を持つ将官が選び出される。
*⑤ In pace nullus est communis magistratus,
**平時においては、(部族に)共通の将官は誰もいないが、
*sed principes regionum atque <u>[[wikt:en:pagus#Latin|pagorum]]</u> inter suos ius dicunt controversiasque minuunt.
**地域や<u>郷</u>の領袖たちが、身内の間で判決を下して、訴訟ごとを減らす。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''pagus'' (郷) はここでは、部族の領土の農村区画を指す行政用語<ref name="pagus"/>。)</span>
*⑥ Latrocinia nullam habent infamiam, quae extra fines cuiusque civitatis fiunt,
**それぞれの部族の領土の外で行なう略奪のことは、何ら恥辱とは見なしていない。
*atque ea iuventutis exercendae ac desidiae minuendae causa fieri praedicant.
**さらに、それ(略奪)は、青年たちを訓練することや、怠惰を減らすことのために行なわれる、と公言している。
*⑦ Atque ubi quis ex principibus in concilio dixit
**そして、領袖たちのうちのある者が(次のように)言うや否や、
*se ducem fore, qui sequi velint, profiteantur,
**《自分が(略奪の)引率者となるから、追随したい者は申し出るように》と(言うや否や)、
*consurgunt ii qui et causam et hominem probant, suumque auxilium pollicentur
**(略奪の)口実にも(引率する)人物にも賛同する者は立ち上がって、自らの支援を約束して、
*atque ab multitudine conlaudantur:
**群衆から大いに誉められる。
*⑧ qui ex his secuti non sunt,
**これら(約束した者)のうちで(略奪に)追随しない者は、
*in desertorum ac proditorum numero ducuntur,
**逃亡兵や裏切り者と見なされて、
*omniumque his rerum postea fides derogatur.
**その後は、彼らにとってあらゆる事の信頼が(皆から)拒まれる。
*⑨ Hospitem violare fas non putant;
**客人に暴行することは道理に適うとは思ってはいない。
*qui quacumque de causa ad eos venerunt,
**彼ら(ゲルマーニア人)のところへ理由があって来た者(=客人)は誰であれ、
*ab iniuria prohibent, sanctos habent,
**無法行為から防ぎ、尊ぶべきであると思っている。
*hisque omnium domus patent victusque communicatur.
**彼ら(客人)にとってすべての者の家は開放されており、生活用品は共有される。
**:(訳注:客人への接待ぶりについては、[[w:タキトゥス|タキトゥス]]<ref>タキトゥス『ゲルマーニア』21章を参照。</ref>も伝えている。)
===24節===
[[画像:Celts.svg|thumb|right|200px|ケルト文化の広がり(BC800年~BC400年頃)。ケルト系部族の優越は、[[w:鉄器|鉄器]]文化の発達などによると考えられている。]]
[[画像:Mappa_di_Eratostene.jpg|thumb|right|200px|[[w:エラトステネス|エラトステネス]]の地理観を再現した世界地図(19世紀)。左上に「Orcynia Silva(オルキュニアの森)」とある。]]
[[画像:Hallstatt_LaTene.png|thumb|right|200px|[[w:ハルシュタット文化|ハルシュタット文化]]期と[[w:ラ・テーヌ文化|ラ・テーヌ文化]]期におけるケルト系部族の分布。右上にウォルカエ族(Volcae)やボイイ族(Boii)の名が見える。ボイイ族が居住していた地域はボイオハエムム(Boihaemum)と呼ばれ、[[w:ボヘミア|ボヘミア]](Bohemia)として現在に残る。]]
'''ゲルマーニア人とガッリア人'''
*① Ac fuit antea tempus,
**かつてある時代があって、
*cum Germanos Galli virtute superarent,
**そのとき、[[w:ゲルマニア|ゲルマーニア]]人を[[w:ガリア|ガッリア]]人が武勇で優っており、
*ultro bella inferrent, propter hominum multitudinem agrique inopiam
**人間の多さと土地の欠乏のために(ガッリア人は)自発的に戦争をしかけて、
*trans Rhenum colonias mitterent.
**レーヌス(=[[w:ライン川|ライン川]])の向こう側へ入植者たちを送り込んでいた。
*② Itaque ea quae fertilissima Germaniae sunt loca circum Hercyniam silvam,
**[[w:ヘルキュニア|ヘルキュニア]]の森の周辺のゲルマーニアで最も肥沃な地を、
*quam Eratostheni et quibusdam Graecis fama notam esse video,
**それを[[w:エラトステネス|エラトステネス]]や[[w:ギリシア人|ギリシア人]]のある者たちも風聞により知っていたと私は見出して、
*quam illi Orcyniam appellant,
**それを彼らはオルキュニアと呼んでいるが、
*Volcae Tectosages occupaverunt atque ibi consederunt;
**(その地を)ウォルカエ族系のテクトサゲス族が占領して、そこに定住していた。
*③ quae gens ad hoc tempus his sedibus sese continet
**その種族は、この時代までこの居場所に留まっており、
*summamque habet iustitiae et bellicae laudis opinionem.
**公正さと戦いの称賛で最高の評判を得ている。
*④ Nunc quod in eadem inopia, egestate, patientia qua Germani permanent,
**今も、窮乏や貧困を、ゲルマーニア人が持ちこたえているのと同じ忍耐をもって、
*eodem victu et cultu corporis utuntur;
**同じ食物および体の衣服を用いている。
*⑤ Gallis autem provinciarum propinquitas et transmarinarum rerum notitia
**これに対して、ガッリア人にとって(ローマの)属州に近接していること、および海外のものを知っていることは、
*multa ad copiam atque usus largitur,
**富や用品の多くが供給されている。
*paulatim adsuefacti superari multisque victi proeliis
**(ガッリア人は)しだいに圧倒されることや多くの戦闘で打ち負かされることに慣らされて、
*ne se quidem ipsi cum illis virtute comparant.
**(ガッリア人)自身でさえも彼ら(ゲルマーニア人)と武勇で肩を並べようとはしないのである。
<br>
:('''訳注''':本節の①項については、[[w:タキトゥス|タキトゥス]]が著書『[[w:ゲルマニア (書物)|ゲルマーニア]]』28章([[s:la:De_origine_et_situ_Germanorum_(Germania)#XXVIII|原文]])において、次のように言及している。
:''Validiores olim Gallorum res fuisse summus auctorum divus Iulius tradit; ''
:かつてガッリア人の勢力がより強力であったことは、最高の証言者である神君ユリウス(・カエサル)も伝えている。
:''eoque credibile est etiam Gallos in Germaniam transgressos:''
:それゆえに、ガッリア人でさえもゲルマーニアに渡って行ったと信ずるに値するのである。)
===25節===
'''ヘルキュニアの森林地帯'''
*① Huius Hercyniae silvae, quae supra demonstrata est, latitudo
**前に述べたヘルキュニアの森の幅は、
*novem dierum iter expedito patet:
**軽装の旅で9日間(かかるだけ)広がっている。
*non enim aliter finiri potest,
**なぜなら(ゲルマーニア人は)他に境界を定めることができないし、
*neque mensuras itinerum noverunt.
**道のりの測量というものを知っていないのである。
[[画像:FeldbergPanorama.jpg|thumb|center|1000px|ヘルキュニアの森林地帯(ドイツ南西部、[[w:シュヴァルツヴァルト|シュヴァルツヴァルトの森]]の最高峰フェルドベルク山 [[w:en:Feldberg_(Black Forest)|Feldberg]] の眺望)]]
*② Oritur ab Helvetiorum et Nemetum et Rauracorum finibus
**(その森は)[[w:ヘルウェティイ族|ヘルウェティイ族]]とネメテス族とラウラキ族の領土から発しており、
**:(訳注:これはライン川東岸に沿って南北に長い現在の[[w:シュヴァルツヴァルト|シュヴァルツヴァルトの森]]のことである。)
*rectaque fluminis [[w:la:Danubius|Danubii]] regione
**ダヌビウス川に沿って真っ直ぐに(流れ)、
**:(訳注:ダヌビウス Danubius はダヌウィウス Danuvius とも呼ばれ、現在の[[w:ドナウ川|ドナウ川]]である。)
*pertinet ad fines Dacorum et Anartium;
**[[w:ダキア人|ダキ族]]やアナルテス族の領土へ至る。
**:(訳注:これは[[w:ダキア|ダキア]] [[w:la:Dacia|Dacia]] すなわち現在の[[w:ルーマニア|ルーマニア]]辺りの地域である。)
*③ hinc se flectit sinistrorsus diversis ab flumine regionibus
**ここ(ダヌビウス川)から(森は)左方へ向きを変えて、川の地域からそれて、
**:(訳注:川が南へ折れるのとは逆に、森は北へそれて[[w:エルツ山地|エルツ山地]]を通って[[w:カルパティア山脈|カルパティア山脈]]に至ると考えられている<ref>タキトゥス『ゲルマーニア』泉井久之助訳注、岩波文庫、p.131-132の注などを参照</ref>。)
*multarumque gentium fines propter magnitudinem attingit;
**(森の)大きさのために、多くの種族の領土に接しているのである。
*④ neque quisquam est huius Germaniae, qui se aut adisse ad initium eius silvae dicat,
**その森の(東の)端緒へ訪れたと言う者は、こちら(西側)の[[w:ゲルマニア|ゲルマーニア]]に属する者では誰もいないし、
*cum dierum iter LX processerit,
**60日間の旅で進んでも(いないのであるが)、
*aut, quo ex loco oriatur, acceperit:
**あるいは(森が)どの場所から生じているか把握した(者もいないのである)。
*⑤ multaque in ea genera ferarum nasci constat, quae reliquis in locis visa non sint;
**それ(=森)の中には、ほかの地では見られない野獣の多くの種類が生息していることが知られている。
*ex quibus quae maxime differant ab ceteris et memoriae prodenda videantur,
**それらのうちで、ほかの(地の)ものと大きく異なったものは、記録で伝えるべきものであり、
*haec sunt.
**以下のものである。
===26節===
[[画像:Rentier fws 1.jpg|thumb|right|200px|[[w:トナカイ|トナカイ]]([[w:la:Tarandrus|Rangifer tarandus]])。発達した枝角を持ち、雌雄ともに角があるという特徴は本節の説明に合致している。が、角が一本ということはないし、野生のトナカイは少なくとも現在では極北の地にしか住まない。]]
'''ヘルキュニアの野獣①'''
*① Est [[w:la:Bos|bos]] [[w:la:Cervus|cervi]] figura,
**雄[[w:シカ|鹿]]の姿形をした[[w:ウシ|牛]]がいる。
*cuius a media fronte inter aures unum [[w:la:Cornu|cornu]] existit
**それの両耳の間の額の真ん中から一つの角が出ており、
*excelsius magisque derectum his, quae nobis nota sunt, cornibus;
**我々(ローマ人)に知られている角よりも非常に高くて真っ直ぐである。
*ab eius summo sicut palmae ramique late diffunduntur.
**その先端部から、手のひらや枝のように幅広く広がっている。
*Eadem est feminae marisque natura,
**雌と雄の特徴は同じであり、
*eadem forma magnitudoque cornuum.
**角の形や大きさも同じである。
<br>
:('''訳注''':カエサルによる本節の記述は[[w:ユニコーン|ユニコーン]](一角獣)の伝説に
:結び付けられている。しかし本節における発達した枝角の説明は、むしろ
:[[w:トナカイ|トナカイ]]や[[w:ヘラジカ|ヘラジカ]]のような獣を想起させる。)
===27節===
[[画像:Bigbullmoose.jpg|thumb|right|250px|[[w:ヘラジカ|ヘラジカ]](Alces alces)。<br>発達した枝角と大きな体を持ち、名称以外は本節の説明とまったく合致しない。<br>しかしながら、[[w:ガイウス・プリニウス・セクンドゥス|大プリニウス]]の『[[w:博物誌|博物誌]]』第8巻(16章・39節)には、[[w:アクリス|アクリス]]([[w:en:Achlis|achlis]])という一見ヘラジカ(alces)のような奇獣が紹介され、その特徴は本節②項以下のカエサルの説明とほぼ同じであることが知られている。]]
[[画像:Gressoney-Saint-Jean-Museo-IMG 1824.JPG|thumb|right|250px|[[w:ノロジカ|ノロジカ]](Capreolus capreolus)。<br>ヨーロッパに広く分布する小鹿で、まだら模様で山羊にも似ているので、本節①項の説明と合致する。しかし、関節はあるし、腹ばいにもなる。]]
'''ヘルキュニアの野獣②'''
*① Sunt item, quae appellantur [[w:la:Alces|alces]].
**アルケスと呼ばれるものもいる。
**:(訳注:アルケス alces とは[[w:ヘラジカ|ヘラジカ]](オオシカ)を指す単語であるが本節の説明と矛盾する。)
*Harum est consimilis [[w:la:Capra|capris]] figura et varietas pellium,
**これらの姿形や毛皮のまだらは雄[[w:ヤギ|山羊]]に似ている。
*sed magnitudine paulo antecedunt
**が、(山羊を)大きさで少し優っており、
*mutilaeque sunt cornibus
**角は欠けていて、
*et crura sine nodis articulisque habent.
**脚部には関節の類いがない。
**:(訳注:nodus も articulus も関節の類いを意味する)
*② Neque quietis causa procumbunt
**休息のために横たわらないし、
*neque, si quo adflictae casu conciderunt,
**もし何か不幸なことで偶然にも倒れたならば、
*erigere sese aut sublevare possunt.
**自らを起こすことも立ち上げることもできない。
*③ His sunt arbores pro cubilibus;
**これらにとって木々は寝床の代わりである。
*ad eas se adplicant
**それら(の木々)へ自らを寄りかからせて、
*atque ita paulum modo reclinatae quietem capiunt.
**こうして少しだけもたれかかって休息を取るのである。
*④ Quarum ex vestigiis
**それらの足跡から
*cum est animadversum a venatoribus, quo se recipere consuerint,
**(鹿が)どこへ戻ることを常としているかを狩人によって気付かれたときには、
*omnes eo loco aut ab radicibus subruunt aut accidunt arbores,
**その地のすべての木々を(狩人は)根から倒すか、あるいは傷つけて、
*tantum ut summa species earum stantium relinquatur.
**それらの(木々の)いちばん(外側)の見かけが、立っているかのように残して置かれる。
*⑤ Huc cum se consuetudine reclinaverunt,
**そこに(鹿が)習性によってもたれかかったとき、
*infirmas arbores pondere adfligunt atque una ipsae concidunt.
**弱った木々を重みで倒してしまい、自身も一緒に倒れるのである。
===28節===
[[画像:Wisent.jpg|thumb|right|250px|[[w:ヨーロッパバイソン|ヨーロッパバイソン]]([[w:la:Bison|Bison bonasus]])。<br>かつてヨーロッパに多数生息していた野牛で、相次ぐ乱獲により野生のものは20世紀初頭にいったん絶滅したが、動物園で繁殖させたものを再び野生に戻す試みが行なわれている。]]
[[画像:Muybridge Buffalo galloping.gif|thumb|right|200px|疾走するバイソン]]
[[画像:Drinkhoorn_roordahuizum.JPG|thumb|right|200px|酒杯として用いられた野獣の角。銀で縁取りされている。]]
'''ヘルキュニアの野獣③'''
*③ Tertium est genus eorum, qui uri appellantur.
**第3のものは、野牛と呼ばれる種類である。
*Hi sunt magnitudine paulo infra [[w:la:Elephantidae|elephantos]],
**これらは、大きさで少し[[w:ゾウ|象]]に劣るが、
*specie et colore et figura [[w:la:Taurus|tauri]].
**見かけと色と姿形は雄[[w:ウシ|牛]]である。
*② Magna vis eorum est et magna velocitas,
**それらの力は大きく、(動きも)とても速く、
*neque homini neque ferae, quam conspexerunt, parcunt.
**人間でも野獣でも、見かけたものには容赦しない。
*Hos studiose foveis captos interficiunt.
**(ゲルマーニア人は)これらを熱心に落とし穴で捕らえたものとして殺す。
*③ Hoc se labore durant adulescentes
**この労苦により青年たちを鍛え、
*atque hoc genere venationis exercent,
**[[w:狩猟|狩猟]]のこの類いで鍛錬するのであり、
*et qui plurimos ex his interfecerunt,
**これら(の野牛)のうちから最も多くを殺した者は、
*relatis in publicum [[w:la:Cornu|cornibus]], quae sint testimonio,
**証拠になるための[[w:角|角]]を公の場に持参して、
*magnam ferunt laudem.
**大きな賞賛を得るのである。
*④ Sed adsuescere ad homines et mansuefieri ne parvuli quidem excepti possunt.
**けれども(野牛は)幼くして捕らえられてさえも、人間に慣れ親しんで飼い慣らされることはできない。
*⑤ Amplitudo cornuum et figura et species multum a nostrorum boum cornibus differt.
**角の大きさや形や見かけは、我々(ローマ人)の牛の角とは大いに異なる。
*⑥ Haec studiose conquisita ab labris argento circumcludunt
**これらは熱心に探し求められて、縁を[[w:銀|銀]]で囲って、
*atque in amplissimis epulis pro poculis utuntur.
**とても贅沢な祝宴において[[w:盃|杯]]として用いられるのである。
==対エブロネス族追討戦(1)==
===29節===
'''ゲルマーニアから撤兵、対アンビオリクス戦へ出発'''
*① Caesar, postquam per Ubios exploratores comperit Suebos sese in silvas recepisse,
**カエサルは、ウビイー族の偵察者たちを通じてスエービー族が森に撤退したことを確報を受けた後で、
**:(訳注:[[#10節|10節]]によれば、バケニス Bacenis の森。[[#コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について|既述]]のように、スエービー族とはカッティー族 [[w:en:Chatti|Chatti]] と考えられる。)
*inopiam frumenti veritus,
**糧食の欠乏を恐れて、
*quod, ut supra demonstravimus, minime omnes Germani agri culturae student,
**というのは、前に説明したように、ゲルマーニア人は皆が土地を耕すことに決して熱心でないので、
**:(訳注:[[#22節|22節]]を参照。耕地がなければ、ローマ軍は穀物の現地調達ができない。)
*constituit non progredi longius;
**より遠くへ前進しないことを決めた。
*② sed, ne omnino metum reditus sui barbaris tolleret
**けれども、自分たち(ローマ軍)が戻って来る恐れを蛮族からまったく取り去ってしまわないように、
*atque ut eorum auxilia tardaret,
**かつ、彼ら(ゲルマーニア人)の(ガッリア人への)支援を遅らせるように、
*reducto exercitu partem ultimam pontis, quae ripas Ubiorum contingebat,
**ウビイー族側の岸(=レーヌス川東岸)につなげていた橋の最後の部分に軍隊を連れ戻して、
*in longitudinem pedum ducentorum rescindit
**(橋を)長さ200[[w:ペース (長さ)|ペース]](=約60m)切り裂いて、
*③ atque in extremo ponte turrim tabulatorum quattuor constituit
**橋の先端のところに4層の櫓を建てて、
*praesidiumque cohortium duodecim pontis tuendi causa ponit
**12個[[w:コホルス|歩兵大隊]]の守備隊を橋を防護するために配置して、
*magnisque eum locum munitionibus firmat.
**その場所を大きな城砦で固めた。
*Ei loco praesidioque C.(Gaium) Volcacium Tullum adulescentem praeficit.
**その場所と守備隊を青年ガイウス・ウォルカキウス・トゥッルスに指揮させた。
**:(訳注:元執政官 [[w:en:Lucius_Volcatius_Tullus_(consul_66_BC)|Lucius Volcatius Tullus]] に対して、青年 adulescentem と区別したのであろう。
**:ウォルカキウス Volcacium の綴りは、写本により相異する。)
*④ Ipse, cum maturescere frumenta inciperent,
**(カエサル)自身は、穀物が熟し始めたので、
*ad bellum [[w:la:Ambiorix|Ambiorigis]] profectus per Arduennam silvam,
**[[w:アンビオリクス|アンビオリクス]]との戦争へ、アルドゥエンナの森を通って進発した。
**:(訳注:アルドゥエンナの森については、[[ガリア戦記 第5巻#3節|第5巻3節]]ですでに説明されている。)
*quae est totius Galliae maxima
**それ(=森)は全ガッリアで最も大きく、
*atque ab ripis Rheni finibusque Treverorum ad Nervios pertinet
**レヌス(=[[w:ライン川|ライン川]])の岸およびトレーウェリー族の境界から、[[w:ネルウィイ族|ネルウィイ族]](の領土)へ及んでおり、
*milibusque amplius quingentis in longitudinem patet,
**長さは500ローママイル(=約740km)より大きく広がっている。
*L.(Lucium) Minucium Basilum cum omni equitatu praemittit,
**ルキウス・ミヌキウス・バスィルスをすべての騎兵隊とともに先遣した。
*si quid celeritate itineris atque opportunitate temporis proficere possit;
**行軍の迅速さと時間の有利さによって、何かを得られるかどうかということである。
*⑤ monet, ut ignes in castris fieri prohibeat, ne qua eius adventus procul significatio fiat:
**野営において火を生じることを禁じるように、何事かにより遠くから彼の到来の予兆を生じないように、戒めた。
*sese confestim subsequi dicit.
**(カエサル)自らは、ただちに後から続くと言った。
===30節===
'''アンビオリクスがバスィリスのローマ騎兵から逃れる'''
*① Basilus, ut imperatum est, facit.
**バスィルスは、命令されたように、行なった。
*Celeriter contraque omnium opinionem confecto itinere
**速やかに、かつ皆の予想に反して、行軍を成し遂げて、
*multos in agris inopinantes deprehendit:
**(城市でない)土地にいた気付かないでいる多くの者を捕らえた。
*eorum indicio ad ipsum Ambiorigem contendit, quo in loco cum paucis equitibus esse dicebatur.
**彼らの申し立てにより、[[w:アンビオリクス|アンビオリクス]]その人がわずかな騎兵たちとともにいると言われていた場所に急いだ。
*② Multum cum in omnibus rebus, tum in re militari potest Fortuna.
**あらゆる事柄においても、とりわけ軍事においても、運命(の女神)が大いに力がある。
*Nam magno accidit casu,
**実際のところ、大きな偶然により生じたのは、
*ut in ipsum incautum etiam atque imparatum incideret,
**(アンビオリクス)自身でさえも油断していて不用意なところに(バスィルスが)遭遇したが、
*priusque eius adventus ab omnibus videretur, quam fama ac nuntius adferretur:
**彼の到来が(ガッリア勢の)皆により見られたのが、風聞や報告により知らされるよりも早かったのである。
*sic magnae fuit fortunae
**同様に(アンビオリクスにとって)大きな幸運に属したのは、
*omni militari instrumento, quod circum se habebat, erepto,
**自らの周りに持っていたすべての武具を奪われて、
*raedis equisque comprehensis
**四輪馬車や馬を差し押さえられても、
*ipsum effugere mortem.
**(アンビオリクス)自身は死を逃れたことである。
*③ Sed hoc quoque factum est,
**しかし、以下のこともまた起こった。
*quod aedificio circumdato silva,
**(アンビオリクスの)館が森で取り巻かれており、
*─ ut sunt fere domicilia Gallorum, qui vitandi aestus causa
**─ ガッリア人の住居はほぼ、暑さを避けることのために、
*plerumque silvarum atque fluminum petunt propinquitates ─,
**たいてい森や川の近接したところに求めるのであるが ─
*comites familiaresque eius angusto in loco paulisper equitum nostrorum vim sustinuerunt.
**彼の従者や郎党どもが、狭い場所でしばらく、我が方(ローマ勢)の騎兵の力を持ちこたえたのだ。
*④ His pugnantibus illum in equum quidam ex suis intulit:
**彼らが戦っているときに、彼(アンビオリクス)を配下のある者が馬に押し上げて、
*fugientem silvae texerunt.
**逃げて行く者(アンビオリクス)を森が覆い隠した。
*Sic et ad subeundum periculum et ad vitandum multum Fortuna valuit.
**このように(アンビオリクスが)危険に突き進んだことや避けられたことに対して、運命(の女神)が力をもったのである。
===31節===
'''エブロネス族の退避、カトゥウォルクスの最期'''
*① [[w:la:Ambiorix|Ambiorix]] copias suas iudicione non conduxerit, quod proelio dimicandum non existimarit,
**[[w:アンビオリクス|アンビオリクス]]は、戦闘で争闘するべきとは考えていなかったので、自らの判断で軍勢を集めなかったのか、
*an tempore exclusus et repentino equitum adventu prohibitus,
**あるいは、時間に阻まれ、予期せぬ[[w:騎兵|騎兵]]の到来に妨げられて、
*cum reliquum exercitum subsequi crederet,
**(ローマ勢の)残りの軍隊(=軍団兵)が後続して来ることを信じたためなのか、
*dubium est.
**不確かなことである。
*② Sed certe dimissis per agros nuntiis sibi quemque consulere iussit.
**けれども、確かに領地を通じて伝令を四方に遣わして、おのおのに自らを助けることを命じた。
*Quorum pars in Arduennam silvam, pars in continentes paludes profugit;
**それらの者たち(領民)のある一部はアルドゥエンナの森に、一部は絶え間ない沼地に退避した。
*③ qui proximi Oceano fuerunt,
**<ruby><rb>大洋<span style="color:#009900;">〔[[w:大西洋|大西洋]]〕</span></rb><rp>(</rp><rt>オーケアヌス</rt><rp>)</rp></ruby>にとても近いところにいた者たちは、
*hi insulis sese occultaverunt, quas aestus efficere consuerunt:
**[[w:潮汐|満潮]]が形成するのが常であった島々に身を隠した。
[[画像:Taxus baccata MHNT.jpg|thumb|right|300px|[[w:ヨーロッパイチイ|ヨーロッパイチイ]]([[w:en:Taxus baccata|Taxus baccata]])<br>欧州などに広く自生するイチイ科の[[w:針葉樹|針葉樹]]。赤い果実は食用で甘い味だが、種子には[[w:タキシン|タキシン]](taxine)という[[w:アルカロイド|アルカロイド]]系の毒物が含まれており、種子を多量に摂れば[[w:痙攣|けいれん]]を起こして[[w:呼吸困難|呼吸困難]]で死に至る。<br>他方、[[w:タキサン|タキサン]](taxane)という成分は[[w:抗がん剤|抗がん剤]]などの[[w:医薬品|医薬品]]に用いられる。]]
*④ multi ex suis finibus egressi
**多くの者たちは、自分たちの領土から出て行って、
*se suaque omnia alienissimis crediderunt.
**自分たちとその一切合財をまったく異邦の者たちに委ねた。
*⑤Catuvolcus, rex dimidiae partis Eburonum,
**[[w:カトゥウォルクス|カトゥウォルクス]]は、[[w:エブロネス族|エブロネス族]]の半分の地方の王であり、
*qui una cum Ambiorige consilium inierat,
**アンビオリクスと一緒に(カエサルに造反する)企てに取りかかった者であるが、
**:(訳注:[[ガリア戦記 第5巻#26節|第5巻26節]]を参照。)
*aetate iam confectus, cum laborem aut belli aut fugae ferre non posset,
**もはや老衰していたので、戦争の労苦、あるいは逃亡の労苦に耐えることができなかったので、
**:(訳注:aetate confectus 老衰した)
*omnibus precibus detestatus Ambiorigem, qui eius consilii auctor fuisset,
**その企ての張本人であったアンビオリクスをあらゆる呪詛のことばで呪って、
*taxo, cuius magna in Gallia Germaniaque copia est, se exanimavit.
**[[w:ガリア|ガッリア]]や[[w:ゲルマニア|ゲルマーニア]]に大量にあった[[w:イチイ属|イチイ]]によって、息絶えたのであった。
===32節===
'''ゲルマーニア部族の弁明、アドゥアトゥカに輜重を集める'''
*① Segni Condrusique, ex gente et numero Germanorum,
**[[w:ゲルマニア|ゲルマーニア]]人の種族や集団のうち、[[w:セグニ族|セグニ族]]と[[w:コンドルスィ族|コンドルスィ族]]は、
*qui sunt inter Eburones Treverosque,
**[[w:エブロネス族|エブロネス族]]とトレーウェリー族の間にいたが、
*legatos ad Caesarem miserunt oratum,
**カエサルのところへ嘆願するために使節たちを遣わした。
*ne se in hostium numero duceret
**自分たちを敵として見なさないように、と。
*neve omnium Germanorum, qui essent citra Rhenum, unam esse causam iudicaret;
**しかも、レーヌス(=[[w:ライン川|ライン川]])のこちら側にいるゲルマーニア人すべての事情は1つであると裁断しないように、と。
*nihil se de bello cogitavisse, nulla Ambiorigi auxilia misisse.
**自分たちは、戦争についてまったく考えたことはないし、[[w:アンビオリクス|アンビオリクス]]に何ら援軍を派遣したことはない、と。
*② Caesar explorata re quaestione captivorum,
**カエサルは捕虜を審問することによってその事を探り出すと、
*si qui ad eos Eburones ex fuga convenissent,
**もし彼らのところへ逃亡しているエブロネス族の者たちの誰かが訪れたならば、
*ad se ut reducerentur, imperavit;
**自分(カエサル)のところへ連れ戻されるようにと、命令した。
*si ita fecissent, fines eorum se violaturum negavit.
**もしそのように行なったならば、彼らの領土を自分(カエサル)が侵害することはないであろうと主張した。
*③ Tum copiis in tres partes distributis
**それから、軍勢を3方面に分散して、
*impedimenta omnium legionum Aduatucam contulit.
**すべての軍団の[[w:輜重|輜重]]を[[w:アドゥアトゥカ|アドゥアトゥカ]]に運び集めた。
**:(訳注:アドゥアトゥカ Aduatuca の表記は、写本によってはアトゥアトゥカ Atuatuca となっている。現在の[[w:トンゲレン|トンゲレン市]]。)
*④ Id castelli nomen est.
**それは、城砦の名前である。
*Hoc fere est in mediis Eburonum finibus,
**これは、エブロネス族の領土のほぼ真ん中にあり、
*ubi Titurius atque Aurunculeius hiemandi causa consederant.
**そこには、[[w:クィントゥス・ティトゥリウス・サビヌス|ティトゥリウス(・サビヌス)]]と[[w:ルキウス・アウルンクレイウス・コッタ|アウルンクレイウス(・コッタ)]]が越冬するために陣取っていた。
*⑤ Hunc cum reliquis rebus locum probabat,
**(カエサルは)この場所を、ほかの事柄によっても是認したし、
*tum quod superioris anni munitiones integrae manebant, ut militum laborem sublevaret.
**またとりわけ前年の防備が損なわれずに存続していたので、兵士の労苦を軽減するためでもある。
*Praesidio impedimentis legionem quartamdecimam reliquit,
**(全軍の)輜重の守備隊として第14軍団を(そこに)残した。
*unam ex his tribus, quas proxime conscriptas ex Italia traduxerat.
**(それは)最近にイタリアから徴集されたものとして連れて来られた3個(軍団)のうちの1個である。
**:(訳注:[[#1節|1節]]を参照。イタリア Italia とはカエサルが総督であった[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]のことであろう。)
*Ei legioni castrisque Q.(Quintum) Tullium Ciceronem praeficit ducentosque equites ei attribuit.
**その[[w:ローマ軍団|軍団]]と陣営には[[w:クィントゥス・トゥッリウス・キケロ|クィントゥス・トゥッリウス・キケロ]]を指揮者として、200騎の騎兵を彼に割り当てた。
===33節===
'''軍勢をカエサル、ラビエヌス、トレボニウスの三隊に分散'''
*① Partito exercitu
**軍隊を分配して、
*T.(Titum) Labienum cum legionibus tribus ad Oceanum versus
**[[w:ティトゥス・ラビエヌス|ティトゥス・ラビエヌス]]には、3個[[w:ローマ軍団|軍団]]とともに、<ruby><rb>大洋<span style="color:#009900;">〔[[w:大西洋|大西洋]]〕</span></rb><rp>(</rp><rt>オーケアヌス</rt><rp>)</rp></ruby>の方へ向けて、
*in eas partes, quae Menapios attingunt, proficisci iubet;
**[[w:メナピイ族|メナピイ族]]に接する地方に出発することを命じた。
*② C.(Gaium) Trebonium cum pari legionum numero
**[[w:ガイウス・トレボニウス|ガイウス・トレボニウス]]には、軍団の同数とともに、
*ad eam regionem, quae Aduatucis adiacet, depopulandam mittit;
**[[w:アドゥアトゥキ族|アドゥアトゥキ族]]に隣接する領域へ、荒らすために派遣した。
[[画像:Locatie-Maas-3.png|thumb|right|200px|[[w:ベルギー|ベルギー]]周辺の地図。図の左側を[[w:スヘルデ川|スヘルデ川]]が、右側を[[w:マース川|マース川]]が流れているため、両河川は離れており、カエサルがどの地に言及しているのかはわからない。]]
[[画像:Schelde_4.25121E_51.26519N.jpg|thumb|right|200px|ベルギーの[[w:アントウェルペン|アントウェルペン]]周辺を流れる[[w:スヘルデ川|スヘルデ川]]河口付近の[[w:衛星画像|衛星画像]]。ラビエヌスが向かったメナピイ族に接する地方である。]]
*③ ipse cum reliquis tribus ad flumen [[w:la:Scaldis|Scaldim]], quod influit in [[w:la:Mosa|Mosam]],
**(カエサル)自身は、残りの3個(軍団)とともに、モサ(川)に流れ込むスカルディス川のところへ、
**:(訳注:スカルディス Scaldis は現在の[[w:スヘルデ川|スヘルデ川]] Schelde で、フランス北部からベルギー、オランダへ流れている。
**:モサ川 Mosa すなわち現在の[[w:マース川|マース川]] Maas とは運河でつながるが、当時の関係およびカエサルの目的地は不詳。)
*extremasque Arduennae partes ire constituit,
**かつ[[w:アルデンヌ|アルドゥエンナ]](の森林)の外縁の地方へ行軍することを決めた。
*quo cum paucis equitibus profectum Ambiorigem audiebat.
**そこへは、アンビオリクスがわずかな騎兵たちとともに出発したと聞いていたのだ。
*④ Discedens post diem septimum sese reversurum confirmat;
**(カエサルは陣営を)離れるに当たって、7日目の後(=6日後)に自分は引き返して来るであろうと断言した。
*quam ad diem ei legioni, quae in praesidio relinquebatur, deberi frumentum sciebat.
**その当日には、守備に残される軍団にとって糧食が必要とされることを(カエサルは)知っていたのだ。
*⑤ Labienum Treboniumque hortatur,
**(カエサルは)ラビエヌスとトレボニウスを(以下のように)鼓舞した。
*si rei publicae commodo facere possint,
**もし(ローマ軍全体の)公務のために都合良く行動することができるならば、
*ad eum diem revertantur,
**その日には戻って、
*ut rursus communicato consilio exploratisque hostium rationibus
**再び(互いの)考えを伝達して、敵たちの作戦を探り出し、
*aliud initium belli capere possint.
**次なる戦争の端緒を捉えようではないか、と。
<br>
:('''訳注:カエサル麾下の軍団配分について'''
:[[ガリア戦記 第5巻#8節|第5巻8節]]の記述によれば、ブリタンニアへ2度目の遠征をする前(BC54年)のカエサルは少なくとも8個軍団と騎兵4000騎を
:指揮していた。[[ガリア戦記 第5巻#24節|第5巻24節]]によれば、帰還後は8個軍団および軍団から離れた5個[[w:コホルス|歩兵大隊]]を指揮していたが、
:アンビオリクスによる[[w:アドゥアトゥカの戦い|アドゥアトゥカの戦い]]で[[w:クィントゥス・ティトゥリウス・サビヌス|サビヌス]]らとともに1個軍団と5個大隊が壊滅したので、残りは7個軍団となる。
:[[#1節|本巻1節]]によれば、この年(BC53年)には3個軍団を新たに徴集したので、計10個軍団となったはずである。
:[[#29節|29節]]では、このうちから12個大隊をライン川に架かる橋の守備に残し、[[#32節|32節]]では輜重の守備としてアドゥアトゥカに1個軍団を残した。
:本節の記述通りにラビエヌス、トレボニウス、カエサルがそれぞれ3個軍団(計9個)を受け持ったとすると、あわせて10個軍団と12個大隊という勘定になる。
:したがって、この勘定が正しいのであれば、ライン川に残した12個大隊は各軍団から引き抜いたものであり、各軍団は定員を割っていると考えられる。)
===34節===
'''夷を以って夷を制す対エブロネス族包囲網'''
*① Erat, ut supra demonstravimus, manus certa nulla,
**前に説明したように、(エブロネス族には)決まった手勢がなかったし、
**:(訳注:[[#31節|31節]]を参照。)
*non oppidum, non praesidium, quod se armis defenderet,
**自分たちが武器で防衛するような[[w:オッピドゥム|城市]]も、防塁もなかった。
*sed in omnes partes dispersa multitudo.
**けれども、あらゆる方面に大勢が分散されていた。
*② Ubi cuique aut valles abdita aut locus silvestris aut palus impedita
**おのおのが、密かな峡谷、あるいは森に覆われた土地といったところに、
*spem praesidi aut salutis aliquam offerebat, consederat.
**守備あるいは身の安全の何らかの希望を提供するところに、陣取っていた。
*③ Haec loca vicinitatibus erant nota,
**これらの場所は、近隣の者たちは知っていたので、
**:(訳注:すなわち、近隣のガッリア人には地の利があり、ローマ人には地の利がなかったので)
*magnamque res diligentiam requirebat
**事態はたいへんな注意深さを必要としていた。
*non in summa exercitus tuenda
**(ローマ人の)軍隊全体を守るためではなく、
*─ nullum enim poterat universis <a> perterritis ac dispersis periculum accidere ─,
**─なぜなら、脅かされ分散されている者たちにより(ローマ軍)総勢が危険を生じることはありえなかったので─
*sed in singulis militibus conservandis;
**けれども、個々の(ローマ人の)兵士たちを守ることのために(注意深さを必要としていた)。
*quae tamen ex parte res ad salutem exercitus pertinebat.
**少なくとも、ある面では、そういう事態は軍隊の安全に及んでいた。
*④ Nam et praedae cupiditas multos longius evocabat,
**すなわち、略奪品への欲望が多くの者たちをより遠くへ呼び寄せていたし、
*et silvae incertis occultisque itineribus confertos adire prohibebant.
**森林の不確かで隠された道のりによって密集した行軍を妨げていた。
*⑤ Si negotium confici stirpemque hominum sceleratorum interfici vellent,
**もし、戦役が完遂されること、および非道な連中(=エブロネス族)の血筋が滅ぼされることを欲するならば、
*dimittendae plures manus diducendique erant milites;
**いくつもの部隊が分遣され、兵士たちが展開されるべきである。
*⑥ si continere ad signa manipulos vellent, ut instituta ratio et consuetudo exercitus Romani postulabat,
**もし、ローマ軍が決められた流儀や慣行を要求するように、[[w:マニプルス|中隊]]が軍旗のもとにとどまることを欲するならば、
*locus ipse erat praesidio barbaris,
**その場所が蛮族にとって守りとなるであろう。
*neque ex occulto insidiandi et dispersos circumveniendi
**隠れたところから待ち伏せするため、分散した者たち(=ローマ兵)を包囲するために、
*singulis deerat audacia.
**(エブロネス族の)おのおのにとって勇敢さには事欠かなかった。
*⑦ Ut in eiusmodi difficultatibus, quantum diligentia provideri poterat providebatur,
**そのような困難さにおいては、できるかぎりの注意深さで用心されるほどに、用心されるものであるが、
*ut potius in nocendo aliquid praetermitteretur,
**結果として、むしろ(敵勢への)何らかの加害は差し控えられることになった。
*etsi omnium animi ad ulciscendum ardebant,
**たとえ、皆の心が(エブロネス族に)報復するために燃え立っていたとしても、
*quam cum aliquo militum detrimento noceretur.
**兵士たちの何らかの損失を伴って(敵に)加害がなされるよりも。
**:(訳注:伏兵によって被害をこうむるよりは、ローマ人の安全のために、ローマ兵による攻撃は避けられた。)
*⑧ Dimittit ad finitimas civitates nuntios Caesar;
**カエサルは、近隣の諸部族のところへ伝令たちを分遣した。
*omnes ad se vocat spe praedae ad diripiendos Eburones,
**[[w:エブロネス族|エブロネス族]]に対して戦利品を略奪することの望みを呼びかけた。
*ut potius in silvis Gallorum vita quam legionarius miles periclitetur,
**森の中で、軍団の兵士たちよりも、むしろガッリア人たちの生命が危険にさらされるように、
*simul ut magna multitudine circumfusa
**同時にまた、たいへんな大勢で取り囲むことによって、
*pro tali facinore stirps ac nomen civitatis tollatur.
**(サビヌスらを滅ぼした)あれほどの罪業の報いとして、部族の血筋と名前が抹殺されるように、と。
*Magnus undique numerus celeriter convenit.
**至る所から多数の者が速やかに集結した。
==スガンブリー族のアドゥアトゥカ攻略戦==
===35節===
'''スガンブリー族が略奪に駆り立てられてアドゥアトゥカへ向かう'''
*① Haec in omnibus Eburonum partibus gerebantur,
**これらのこと(=追討戦)が[[w:エブロネス族|エブロネス族]]のすべての地方で遂行されていたが、
*diesque adpetebat septimus, quem ad diem Caesar ad impedimenta legionemque reverti constituerat.
**カエサルがその日に[[w:輜重|輜重]]と(キケロの)[[w:ローマ軍団|軍団]]のところへ引き返すと決めていた7日目が近づいていた。
*② Hic quantum in bello Fortuna possit et quantos adferat casus, cognosci potuit.
**ここに、戦争では運命(の女神)がどれほどのことに力を持ち、どれほどの結末を引き起こすかを知ることができた。
**:(訳注:[[#30節|30節]]でもそうだが、カエサルは戦況が芳しくないと運命 Fortuna を持ち出すようである。[[#42節|42節]]も参照。)
*③ Dissipatis ac perterritis hostibus, ut demonstravimus,
**(前節で)説明したように、追い散らされて、脅かされている敵たちには、
*manus erat nulla quae parvam modo causam timoris adferret.
**(ローマ勢に敵を)恐れる理由を少しの程度も引き起こすようないかなる手勢もなかった。
*④ Trans Rhenum ad Germanos
**レーヌス(=[[w:ライン川|ライン川]])の向こう側の[[w:ゲルマニア|ゲルマーニア]]人のところへ、
*pervenit fama, diripi Eburones atque ultro omnes ad praedam evocari.
**エブロネス族が収奪され、(近隣部族の)皆が略奪品へ向けて自発的に誘惑されているという風評が達した。
*⑤ Cogunt equitum duo milia Sugambri, qui sunt proximi Rheno,
**レーヌスの近隣にいたスガンブリ族は、騎兵2000騎を徴集した。
*a quibus receptos ex fuga Tenctheros atque Usipetes supra docuimus.
**前に説明したように、彼らによって[[w:テンクテリ族|テンクテリ族]]と[[w:ウスィペテス族|ウスィペテス族]]が逃亡から迎え入れられたのだ。
**:(訳注:[[ガリア戦記 第4巻#16節|第4巻16節]]および[[ガリア戦記 第4巻#18節|18~19節]]を参照。)
*⑥ Transeunt Rhenum navibus ratibusque
**(スガンブリー族は)レーヌスを船団や筏で渡河した。
*triginta milibus passuum infra eum locum, ubi pons erat perfectus praesidiumque ab Caesare relictum.
**カエサルにより橋が造り上げられて守備隊が残された地点よりも下流に30ローママイル(約44km)のところを。
*Primos Eburonum fines adeunt;
**手始めとしてエブロネス族の領土に殺到して、
*multos ex fuga dispersos excipiunt,
**逃亡からちりぢりにさせられた多くの者たちを追い捕らえて、
*magno pecoris numero, cuius sunt cupidissimi barbari, potiuntur.
**蛮族たちが最も熱望している家畜の多数をわがものにした。
*⑦ Invitati praeda longius procedunt.
**(スガンブリー族の軍勢は)略奪品に誘われて、より遠くに進み出た。
*Non hos palus ─ in bello latrociniisque natos ─, non silvae morantur.
**戦争や追いはぎに生まれついていたので、沼地も森林も彼らを妨げることがなかった。
*Quibus in locis sit Caesar, ex captivis quaerunt;
**カエサルがどの場所にいるのか、捕虜から問い質した。
*profectum longius reperiunt omnemque exercitum discessisse cognoscunt.
**(彼が)より遠くに旅立って、軍隊の総勢が立ち去ったことを、知った。
*⑧ Atque unus ex captivis "Quid vos," inquit,
**なおかつ、捕虜たちのうちの一人が「なぜ、あんたたちは」と言い出した。
*"hanc miseram ac tenuem sectamini praedam,
**「この取るに足らない、ちっぽけな略奪品を追い求めるのか。
**:(訳注:sectamini はデポネンティア動詞 sector の直説法・2人称複数・現在形)
*quibus licet iam esse fortunatissimos?
**(あんたたちは)今や、最も富裕な者に成り得るのに。
*⑨ Tribus horis Aduatucam venire potestis:
**(この場所から)3時間で[[w:アドゥアトゥカ|アドゥアトゥカ]]に到達できる。
**:(訳注:古代ローマの時間は、不定時法であり、当地の緯度や季節により長さは異なる。)
*huc omnes suas fortunas exercitus Romanorum contulit;
**ここへ、ローマ軍がすべての財産を運び集めたのだ。
*praesidii tantum est, ut ne murus quidem cingi possit,
**守備隊は、城壁が取り巻かれることさえできないほどの(貧弱な)ものでしかない。
*neque quisquam egredi extra munitiones audeat."
**何者も防備の外側へあえて出て行こうとはしないのだ。」
*⑩ Oblata spe Germani,
**ゲルマーニア人たちは(ローマ軍の財産という)望みを提示されて、
*quam nacti erant praedam, in occulto relinquunt;
**(すでにエブロネス族の者たちから)獲得していた略奪品を秘されたところに残しておいて、
*ipsi Aduatucam contendunt usi eodem duce, cuius haec indicio cognoverant.
**自身は、このことを申告により知ったところの同じ(捕虜の)案内人を使役して、アドゥアトゥカに急いだ。
<br>
:('''訳注:部族名・地名の表記について'''
:スガンブリー族 Sugambri:α系写本では Sugambri、T・U写本では Sygambri、V・R写本では Sigambri
:テンクテリ族 Tenctheri:β系写本では Tenctheri、α系写本では Thenctheri
:アドゥアトゥカ Aduatuca:α系・T写本では Aduatuca、V・ρ系写本では Atuatuca)
===36節===
'''アドゥアトゥカのキケロが糧秣徴発に派兵する'''
*① [[w:la:Quintus_Tullius_Cicero|Cicero]], qui omnes superiores dies
**[[w:クィントゥス・トゥッリウス・キケロ|キケロ]]は(期日の7日目)より以前の日々すべてを
*praeceptis Caesaris cum summa diligentia milites in castris continuisset
**カエサルの指図により、最高の入念さとともに、兵士たちを陣営の中に留めておき、
*ac ne calonem quidem quemquam extra munitionem egredi passus esset,
**<ruby><rb>[[w:カロネス|軍属奴隷]]</rb><rp>(</rp><rt>カロネス</rt><rp>)</rp></ruby> でさえも、何者も防備の外側に出て行くことを許されなかった。
*septimo die diffidens de numero dierum Caesarem fidem servaturum,
**(期日の)7日目に、カエサルが日数についての約束を守るであろうか、という不信を抱いた。
*quod longius eum<ref>eum はβ系写本の記述で、α系写本にはない。</ref> progressum audiebat,
**というのは、彼(カエサル)は、はるか遠くに前進したと聞いていたのだし、
*neque ulla de reditu eius fama adferebatur,
**彼の帰還については何ら伝言を届けられていなかったからである。
*② simul eorum permotus vocibus,
**同時に(キケロは)以下のような者たちの声に揺り動かされた。
*qui illius patientiam paene obsessionem appellabant, siquidem ex castris egredi non liceret,
**もし本当に陣営から出て行くことが許されないならば、彼の忍耐はほぼ攻囲(籠城)であるというのだ。
*nullum eiusmodi casum exspectans,
**以下のような事態を予期してもいなかった。
*quo novem oppositis legionibus maximoque equitatu,
**9個[[w:ローマ軍団|軍団]]と最大限の[[w:騎兵|騎兵]]隊が(敵と)対峙して、
*dispersis ac paene deletis hostibus
**敵たちは散らばらされて、ほとんど抹殺されたのに、
*in milibus passuum tribus offendi posset,
**(自陣から)3ローママイルの内で(敵対勢力から)襲撃され得るとは。
[[画像:PraetorianVexillifer_1.jpg|thumb|right|200px|帝政期に用いられた軍旗(ウェクスィッルム)の一種を再現したもの。]]
*quinque cohortes frumentatum in proximas segetes mittit,
**5個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>を糧秣徴発するために、近隣の耕地に派遣した。
*quas inter et castra unus omnino collis intererat.
**それら(の耕地)と陣営の間には、ただ一つの丘陵が介在するだけであった。
*③ Complures erant in castris<ref>in castris はβ系写本の記述で、α系写本にはない。</ref> ex legionibus aegri relicti;
**陣営の中には、諸軍団のうちから少なからぬ傷病者たちが残留していた。
*ex quibus qui hoc spatio dierum convaluerant, circiter trecenti(CCC),
**その者たちのうちから、この日々の間に回復していた約300名が、
*sub vexillo una mittuntur;
**<ruby><rb>[[w:ウェクスィッルム|軍旗]]</rb><rp>(</rp><rt>ウェクスィッルム</rt><rp>)</rp></ruby>のもとで一緒に派遣された。
*magna praeterea multitudo calonum, magna vis iumentorum quae in castris subsederant,
**そのうえに、軍属奴隷の大多数、陣営の中に残留していた(ロバなどの)役畜の多数が、
*facta potestate sequitur.
**機会を与えられて、随行した。
===37節===
[[画像:Castra1.png|thumb|right|200px|ローマ式[[w:カストラ|陣営]]([[w:la:Castra_Romana|castra Romana]])の概略図(再掲)。'''7'''が第10大隊の門(porta decumana)で、陣営の裏門に当たる。]]
'''スガンブリー族がキケロの陣営に襲来'''
*① Hoc ipso tempore et casu Germani equites interveniunt
**このまさにその時と状況に、[[w:ゲルマニア|ゲルマーニア]]人の[[w:騎兵|騎兵]]たちが出現して、
*protinusque eodem illo, quo venerant, cursu
**さらに前方へ(彼らが)やって来たのと同じ突進でもって、
*ab decumana porta in castra inrumpere conantur,
**第10大隊の門(=裏門)から陣営の中に突入することを試みた。
**:(訳注:decumana porta は[[ガリア戦記 第2巻#24節|第2巻24節]]で既出、図を参照。)
*② nec prius sunt visi obiectis ab ea parte silvis, quam [[wikt:la:castrum|castris]] adpropinquarent,
**その方面については森林がじゃま立てしていたので(彼らは)陣営に接近するまでは視認されなかったのだ。
*usque eo ut qui sub [[w:la:Vallum|vallo]] tenderent mercatores, recipiendi sui facultatem non haberent.
**そこまで(敵が急に来たので)、防柵の下に宿営していた商人たちが退避する機会を持たなかったほどであった。
*③ Inopinantes nostri re nova perturbantur,
**予感していなかった我が方は、新しい事態に混乱させられて、
*ac vix primum impetum cohors in statione sustinet.
**やっとのことで[[w:歩哨|歩哨]]に就いていた[[w:コホルス|歩兵大隊]]が(敵の)最初の突撃を持ちこたえた。
*④ Circumfunduntur ex reliquis hostes partibus, si quem aditum reperire possent.
**敵たちは、何らかの入口を探り出せないかと、ほかの方面から取り囲んだ。
*⑤ Aegre portas nostri tuentur;
**我が方(=ローマ勢)は辛うじて(四方の)諸門を固守して、
*reliquos aditus locus ipse per se munitioque defendit.
**ほかの入口を、その位置そのものと防備が(敵の突入から)防護した。
*⑥ Totis trepidatur castris,
**陣営の全体が震撼させられて、
*atque alius ex alio causam tumultus quaerit;
**各人がほかの者に騒乱の原因を尋ね合った。
**:(訳注:エブロネス族を追討している最中に、スガンブリー族が来襲するとは予想だにしなかったからである。)
*neque quo signa ferantur, neque quam in partem quisque conveniat provident.
**が、どこへ軍旗が運ばれるのか、どの方面におのおのが集結するのか、判らなかった。
*⑦ Alius iam castra capta pronuntiat,
**ある者は、すでに陣営は占拠されたと公言し、
*alius deleto exercitu atque imperatore victores barbaros venisse contendit;
**別のある者は、軍隊も将軍(カエサル)も滅びて蛮族が勝利者としてやって来たのだ、と断言した。
*⑧ plerique novas sibi ex loco religiones fingunt
**たいていの者たちは、その場所から、新奇な迷信的感情を創り上げ、
*Cottaeque et Tituri calamitatem, qui in eodem occiderint castello,
**同じ砦のところで斃れた[[w:ルキウス・アウルンクレイウス・コッタ|コッタ]]と[[w:クィントゥス・ティトゥリウス・サビヌス|ティトゥリウス(・サビヌス)]]の敗亡を
*ante oculos ponunt.
**眼前に想い描いた。
*⑨ Tali timore omnibus perterritis
**このような怖れによって(陣営内部の)皆が脅えており、
*confirmatur opinio barbaris, ut ex captivo audierant, nullum esse intus praesidium.
**蛮族にとっては、捕虜から聞いていたように、内部に守備隊が存在していないという見解が強められた。
*⑩ Perrumpere nituntur
**(スガンブリー勢は、陣営の防備を)突破することに努め、
*seque ipsi adhortantur, ne tantam fortunam ex manibus dimittant.
**これほどの幸運を手から取りこぼさないように、自分たちが自身を鼓舞した。
===38節===
'''バクルスと百人隊長たちが防戦する'''
*① Erat aeger cum<ref>cum はα系写本の記述で、β系写本では in となっている。</ref> praesidio relictus P.(Publius) Sextius Baculus,
**(キケロの陣営には)プーブリウス・セクスティウス・バクルスが傷病者として、守備兵とともに残されていた。
**:<span style="color:#009900;">(訳注:[[w:la:Publius Sextius Baculus|Publius Sextius Baculus]] などの記事を参照。)</span>
*qui primum pilum ad<ref>ad はα系写本の記述で、β系写本では apud となっている。</ref> Caesarem duxerat,
**その者はカエサルのもとで<ruby><rb>[[w:プリムス・ピルス|首位百人隊長]]</rb><rp>(</rp><rt>プリムス・ピルス</rt><rp>)</rp></ruby> の座に就いていたことがあり、
*cuius mentionem superioribus proeliis fecimus,
**かつての戦闘で彼に言及したが、
**:<span style="color:#009900;">(訳注:[[ガリア戦記 第2巻#25節|第2巻25節]] および [[ガリア戦記 第3巻#5節|第3巻5節]]を参照。)</span>
*ac diem iam quintum cibo caruerat.
**(このとき)食物を欠いてすでに5日目であった。
*② Hic diffisus suae atque omnium saluti inermis ex tabernaculo prodit;
**彼は、自らと皆の身の安全に疑念を抱いて、非武装のまま天幕小屋から出て来て、
*videt imminere hostes atque in summo esse rem discrimine;
**敵たちが迫って来ていること、および事態が重大な危急にあることを目の当たりにして、
*capit arma a proximis atque in porta consistit.
**すぐ近くの者から武器を取って、門のところに陣取った。
*③ Consequuntur hunc centuriones eius cohortis quae in statione erat;
**歩哨に立っていた(1個)<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> の<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオ</rt><rp>)</rp></ruby> たちが彼に追随して、
**:(訳注:1個歩兵大隊の百人隊長は、定員通りであれば、6名いた。)
*paulisper una proelium sustinent.
**しばらく一緒に戦闘を持ちこたえた。
*④ Relinquit animus Sextium gravibus acceptis vulneribus;
**セクスティウス(・バクルス)は重い傷を受けて、気を失った。
*Deficiens<ref>deficiens はβ系写本の記述で、α系写本にはない。</ref> aegre per manus tractus servatur.
**(彼は)衰弱して、(味方の)手から手に運ばれて辛うじて救助された。
*⑤ Hoc spatio interposito reliqui sese confirmant
**こうしてしばらくした後で、ほかの者たちは意を強くした。
*tantum, ut in munitionibus consistere audeant speciemque defensorum praebeant.
**(それは)防壁にあえて陣取って、防戦者たちの姿を示したほどであった。
===39節===
'''スガンブリー族が糧秣徴発部隊をも襲う'''
*① Interim confecta frumentatione milites nostri clamorem exaudiunt;
**その間に、糧秣徴発を成し遂げると、我が方の兵士たち(=ローマ軍団兵)は叫び声を聞きつけて、
*praecurrunt equites;
**[[w:騎兵|騎兵]]たちが先駆けして、
*quanto res sit in periculo cognoscunt.
**事態がどれほどの危険にあるかを認識した。
*② Hic vero nulla munitio est quae perterritos recipiat;
**そこには、まさに、脅え上がった者たちを受け入れるような、いかなる防備もなかったのである。
*modo conscripti atque usus militaris imperiti
**やっと徴集されたばかりの者たち、なおかつ兵役の経験に通じていない者たちは、
*ad tribunum militum centurionesque ora convertunt;
**<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby>や<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオ</rt><rp>)</rp></ruby>たちの方へ顔を向けた。
*quid ab his praecipiatur exspectant.
**彼ら(上官たち)によって何を指図されるか、待っていたのである。
*③ Nemo est tam fortis, quin rei novitate perturbetur.
**新奇な事態に不安にさせられないほど勇敢な者は、誰もいなかった。
*④ Barbari signa procul conspicati oppugnatione desistunt,
**蛮族たちは、(糧秣徴発隊の)軍旗を遠くから視認すると、(陣営への)攻囲を停止した。
*redisse primo legiones credunt, quas longius discessisse ex captivis cognoverant;
**(彼らは)当初は、より遠くに立ち去ったことを捕虜から知っていた(ローマの)諸軍団が戻って来たと思ったが、
*postea despecta paucitate ex omnibus partibus impetum faciunt.
**後には、(糧秣徴発隊の)寡勢ぶりを侮って、あらゆる方向から突撃して来た。
===40節===
'''敵中突破して陣営へ戻る糧秣徴発部隊の明暗'''
*① Calones in proximum tumulum procurrunt.
**[[w:カロネス|軍属奴隷]]たちは、近隣の丘に先駆けした。
*Hinc celeriter deiecti
**(彼らは)ここから、(突撃して来る敵の軍勢を眺めて)たちまち当てが外れて、
*se in signa manipulosque coniciunt;
**(後方にいた)軍旗と[[w:マニプルス|歩兵中隊]]のところに身を投じた。
*eo magis timidos perterrent milites.
**それゆえに、臆病な兵士たちを大いに脅かした。
[[画像:Wedge-diagram.svg|thumb|right|200px|[[w:くさび|楔(くさび)]]の図。本節で述べられているのは、ローマ勢が楔(図の黒い部分)のように突撃することにより、敵を中央突破しようという戦術であろう。]]
*② Alii cuneo facto ut celeriter perrumpant, censent
**(ローマ兵の)ある者たちは、速やかに(敵中を)突破するように、<ruby><rb>[[w:くさび|楔形]]</rb><rp>(</rp><rt>くさびがた</rt><rp>)</rp></ruby>隊列を形成しようと考慮した。
*─ quoniam tam propinqua sint castra,
**─ 陣営がこれほどまで近隣にあるので、
*etsi pars aliqua circumventa ceciderit, at reliquos servari posse confidunt ─,
**たとえ、一部の誰かが包囲されて斃れたとしても、残りの者たちは救われることが可能だと確信したのだ ─。
*③ alii ut in iugo consistant atque eundem omnes ferant casum.
**別のある者たちは、(丘の)尾根に陣取って、皆が同じ命運に耐え忍ぼうと(考えた)。
*④ Hoc veteres non probant milites, quos sub vexillo una profectos docuimus.
**既述したように軍旗のもとで一緒に発って来た古参兵たちは、後者(の案)を承認しなかった。
**:(訳注:[[#36節|36節]]③項で既述のように、回復した傷病兵たちが同行してきていた。)
*Itaque inter se cohortati
**こうして、(古参の傷病兵たちは)互いに激励し合って、
*duce C.(Gaio) Trebonio equite Romano, qui iis erat praepositus,
**彼らの指揮を委ねられていたローマ人[[w:騎士|騎士階級]]のガイウス・トレボニウスを統率者として、
**:(訳注:[[#33節|33節]]で3個軍団を率いて出発した副官の[[w:ガイウス・トレボニウス|ガイウス・トレボニウス]]とは明らかに同名の別人である。)
*per medios hostes perrumpunt incolumesque ad unum omnes in castra perveniunt.
**敵たちの中央を突破して、一人に至るまで皆が無傷で陣営に到着した。
*⑤ Hos subsecuti calones equitesque eodem impetu militum virtute servantur.
**彼らに追随して、軍属奴隷と[[w:騎兵|騎兵]]たちが同様の突撃をして、兵士たちの武勇により救われた。
*⑥ At ii qui in iugo constiterant,
**それに対して(丘の)尾根に陣取った者たちは、
*nullo etiam nunc usu rei militaris percepto
**今になってさえも、軍事的行動というものを把握しておらず、
*neque in eo quod probaverant consilio permanere, ut se loco superiore defenderent,
**より高い場所で身を守るという、彼らが承認していた考えに留まりもせず、
*neque eam quam prodesse aliis vim celeritatemque viderant, imitari potuerunt,
**(彼らが)別の者たち(=古参兵)に役立ったのを見ていたところの力と迅速さを真似することもできなかった。
*sed se in castra recipere conati iniquum in locum demiserunt.
**けれども、陣営に退却することを試みたが、不利な場所に落ち込んで行った。
*⑦ Centuriones, quorum nonnulli ex inferioribus ordinibus reliquarum legionum
**[[w:ケントゥリオ|百人隊長]]たちといえば、彼らの少なからぬ者たちは、ほかの[[w:ローマ軍団|軍団]]のより低い序列から、
*virtutis causa in superiores erant ordines huius legionis traducti,
**武勇のおかげで、この軍団のより高い序列に異動させられていたが、
*ne ante partam rei militaris laudem amitterent, fortissime pugnantes conciderunt.
**かつて獲得した軍事的な賞賛を失わないように、とても果敢に奮戦して斃れた。
*⑧ Militum pars horum virtute
**兵士たちの一部は、これら(討ち死にした百人隊長たち)の武勇により、
*submotis hostibus praeter spem incolumis in castra pervenit,
**予想に反して敵たちが撃退されたので、無傷で陣営に到着した。
*pars a barbaris circumventa periit.
**別の一部は、蛮族によって包囲されて、討ち死にした。
===41節===
'''スガンブリー族の撤退、カエサルの帰還'''
*① Germani desperata expugnatione castrorum,
**[[w:ゲルマニア|ゲルマーニア]]人たちは(キケロの)[[w:カストラ|陣営]]の攻略に絶望して、
*quod nostros iam constitisse in munitionibus videbant,
**というのは、我が方(ローマ勢)が防備のところに立っているのを見たからであるが、
*cum ea praeda quam in silvis deposuerant, trans Rhenum sese receperunt.
**森の中にしまい込んでいた略奪品とともに、レヌス(=[[w:ライン川|ライン川]])の向こう側に撤退した。
*② Ac tantus fuit etiam post discessum hostium terror,
**敵たちの立ち去った後でさえ(ローマ勢の)畏怖はたいへんなものであったので、
*ut ea nocte, cum C.(Gaius) Volusenus missus cum equitatu ad castra venisset,
**その夜に、(追討戦に)派遣されていたガーイウス・ウォルセーヌスが騎兵隊とともに陣営へ帰着したときに
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:en:Gaius Volusenus|Gaius Volusenus]]'' は、[[ガリア戦記_第3巻#5節|第3巻5節]]のアルプス・オクトードゥールスの戦い、<br> [[ガリア戦記_第4巻#21節|第4巻21節]]・[[ガリア戦記_第4巻#23節|23節]]のブリタンニアへの先遣で既述。<br> この後、さらに第8巻23節<sub>([[s:la:Commentarii_de_bello_Gallico/Liber_VIII#23|s]])</sub>、48節<sub>([[s:la:Commentarii_de_bello_Gallico/Liber_VIII#48|s]])</sub>でも活躍する。)</span>
*fidem non faceret adesse cum incolumi Caesarem exercitu.
**カエサルが無傷の軍隊とともに近くに来ていることを(陣営の残留組に)信用させなかったほどである。
*③ Sic omnino animos timor praeoccupaverat, ut paene alienata mente
**ほとんど気でも違ったかのように、皆の心を怖れが占めていた。
**:(訳注:sic … ut ~ の構文;「~と同様に…である」)
*deletis omnibus copiis equitatum se ex fuga recepisse dicerent
**(残留者たちは、カエサルら)全軍勢が滅ぼされて、[[w:騎兵|騎兵隊]]が敗走から退いて来たのだ、と言った。
*neque incolumi exercitu Germanos castra oppugnaturos fuisse contenderent.
**(カエサルら)軍隊が無傷であれば、ゲルマーニア人が陣営を襲撃しなかっただろう、と断言した。
**:(訳注:oppugnaturos fuisse ;間接話法では非現実な[[w:条件法|条件文]]の帰結は「未来分詞+fuisse」で表される。)
*④ Quem timorem Caesaris adventus sustulit.
**その怖れをカエサルの到着が取り除いた。
**:(訳注:sustulit は tollō の完了・能動3人称単数形)
===42節===
'''カエサルがスガンブリー族の襲来と撤退を運命に帰する'''
*① Reversus ille, eventus belli non ignorans,
**引き返して来た彼(カエサル)は、戦争の成り行きというものを知らないはずがないので、
*unum quod cohortes ex statione et praesidio essent emissae,
**ひとつ(だけ)、<ruby><rb>[[w:コホルス|諸大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> が[[w:歩哨|歩哨]]や守備から(糧秣徴発に)派遣されたことを
*questus ─ ne minimo quidem casu locum relinqui debuisse ─
**不慮の事態に対して最小限のいかなる余地も残されるべきではなかった、と嘆いた。
*multum Fortunam in repentino hostium adventu potuisse iudicavit,
**不意の敵たちの到来においては運命(の女神)が大いに力を持つ、と断じた。
*② multo etiam amplius, quod paene ab ipso vallo portisque castrorum barbaros avertisset.
**さらに、より一層大きかったのは、(運命が)ほとんど蛮族をその陣営の防柵と諸門から追い返してしまったことである。
*③ Quarum omnium rerum maxime admirandum videbatur,
**それらのすべての事態でとりわけ驚くべきと思われたのは、
*quod Germani, qui eo consilio Rhenum transierant, ut Ambiorigis fines depopularentur,
**その意図で[[w:アンビオリクス|アンビオリクス]]の領土を荒らすようにレヌス(=[[w:ライン川|ライン川]])を渡河していた[[w:ゲルマニア|ゲルマーニア]]人が、
*ad castra Romanorum delati
**ローマ人の陣営の方へそらされて、
*optatissimum Ambiorigi beneficium obtulerunt.
**アンビオリクスに最も望ましい恩恵を施してしまったことである。
==対エブロネス族追討戦(2)==
===43節===
'''アンビオリクスが辛うじて追討を逃れる'''
*① Caesar rursus ad vexandos hostes profectus
**カエサルは再び敵たちを苦しめるために出発して、
*magno coacto <equitum> numero ex finitimis civitatibus in omnes partes dimittit.
**[[w:騎兵|騎兵]]の多数を隣接する諸部族から徴集して、あらゆる方面に派遣した。
**:(訳注:<equitum> 「騎兵の」は近代の校訂者による挿入である。)
*② Omnes vici atque omnia aedificia quae quisque conspexerat incendebantur,
**おのおのが目にしたすべての村々およびすべての建物が焼き打ちされた。
*pecora interficiebantur<ref>pecora interficiebantur はβ系写本の記述で、α系写本にはない。</ref>, praeda ex omnibus locis agebatur;
**家畜は屠殺され、あらゆる場所から略奪品が奪い去られた。
*③ frumenta non solum tanta multitudine iumentorum atque hominum consumebantur,
**役畜および人間たちのこれほど大勢により穀物が消費され尽くしたのみならず、
*sed etiam anni tempore atque imbribus procubuerant,
**季節と豪雨によってさえも(穀物が)倒れた。
*ut si qui etiam in praesentia se occultassent,
**その結果、もし(エブロネス族の)何者かが現状では身を隠しているとしても、
*tamen his deducto exercitu rerum omnium inopia pereundum videretur.
**それでも彼らは(ローマ人の)軍隊が引き揚げれば、あらゆるものの欠乏により死滅するはずと思われた。
*④ Ac saepe in eum locum ventum est tanto in omnes partes diviso equitatu,
**たいへん多くの騎兵隊があらゆる方面に分遣されて、しばしば以下のような状態に出くわした。
*ut non modo visum ab se Ambiorigem in fuga circumspicerent captivi
**捕虜たちが、自分たちによって逃亡中の[[w:アンビオリクス|アンビオリクス]]が目撃されたと見回しただけでなく、
*nec plane etiam abisse ex conspectu contenderent,
**(アンビオリクスが)視界からまったく消え去ってはいないとさえ主張した。
*⑤ ut spe consequendi inlata atque infinito labore suscepto,
**その結果、(アンビオリクスを)追跡する希望がもたらされて、さらに限りない労苦が従事された。
*qui se summam ab Caesare gratiam inituros putarent,
**カエサルから最高の恩恵を得ようと思った者たちは、
*paene naturam studio vincerent,
**熱意により(身体的な)資質にほとんど打ち克ったが、
*semperque paulum ad summam felicitatem defuisse videretur,
**いつも最高の恵みにあと少しで足りなかったと思われる。
*⑥ atque ille latebris aut silvis<ref>aut silvis はβ系写本の記述で、α系写本にはない。</ref> aut saltibus se eriperet
**かつ彼(アンビオリクス)は隠れ処、あるいは森林、あるいは峡谷によって自らを救い、
*et noctu occultatus alias regiones partesque peteret
**夜に秘されて、別の地方や方面をめざした。
*non maiore equitum praesidio quam quattuor,
**4名より多くない騎兵の護衛によって、
*quibus solis vitam suam committere audebat.
**自らの生命をその者たちだけにあえて委ねたのだ。
===44節===
'''カエサルが撤退し、造反者アッコを処刑する'''
*① Tali modo vastatis regionibus
**このようなやり方で(エブロネス族の)諸地域を荒廃させて、
[[画像:Porte_Mars_01.jpg|thumb|right|200px|ドゥロコルトルム(現在の[[w:ランス (マルヌ県)|ランス]])に建てられた帝政ローマ時代(3世紀)の[[w:凱旋門|凱旋門]]。]]
*exercitum Caesar duarum cohortium damno [[w:la:Remi|Durocortorum]] Remorum reducit
**カエサルは、2個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> の損失(だけ)で、軍隊を[[w:レミ族|レミ族]]の[[w:ドゥロコルトルム|ドゥロコルトルム]]に連れ戻して、
**:(訳注:ドゥロコルトルムはレミ族の首邑で、現在の[[w:ランス (マルヌ県)|ランス]] Reims である。)
*concilioque in eum locum Galliae indicto
**その地においてガッリアの(領袖たちの)会合を公示して、
*de coniuratione Senonum et Carnutum quaestionem habere instituit
**[[w:セノネス族|セノネス族]]と[[w:カルヌテス族|カルヌテス族]]の共謀について詮議することを決定した。
*② et de Accone, qui princeps eius consilii fuerat,
**その謀計の首謀者であった[[w:アッコ (セノネス族)|アッコ]]については
*graviore sententia pronuntiata more maiorum supplicium sumpsit.
**より重い判決が布告され、(ローマ人の)先祖の習慣により極刑に処した。
**:(訳注:ローマ史家[[w:テオドール・モムゼン|モムゼン]]は、アッコはローマの<ruby><rb>[[w:リクトル|先導吏]]</rb><rp>(</rp><rt>リクトル</rt><rp>)</rp></ruby> により[[w:斬首刑|斬首]]されたと言及している<ref>『モムゼン ローマの歴史Ⅳ』長谷川博隆訳、名古屋大学出版会、p.233 を参照。</ref>。
**:外国から来た侵略者カエサルがこのような刑罰を下したことに、ガッリア人たちは憤激した。[[ガリア戦記 第7巻#1節|第7巻1節]]を参照。)
*③ Nonnulli iudicium veriti profugerunt.
**少なからぬ者たちは、裁判を恐れて逃走した。
*Quibus cum aqua atque igni interdixisset,
**その者たちには水と火が禁じられたうえで、
**:(訳注:「水と火を禁じる」とは追放処分のことで、居住権や財産の没収などを指す。)
*duas legiones ad fines Treverorum, duas in Lingonibus,
**2個[[w:ローマ軍団|軍団]]をトレーウェリー族の領土へ、2個(軍団)を[[w:リンゴネス族|リンゴネス族]](の領土)に、
*sex reliquas in Senonum finibus [[w:la:Agedincum|Agedinci]] in hibernis conlocavit
**残りの6個(軍団)を[[w:セノネス族|セノネス族]]の領土の[[w:アゲディンクム|アゲディンクム]]に、冬営地に宿営させた。
**:(訳注:アゲディンクムは、現在の[[w:サン (ヨンヌ県)|サン]] Sens である。)
*frumentoque exercitui proviso,
**軍隊の糧秣を調達してから、
*ut instituerat, in Italiam ad conventus agendos profectus est.
**定めていたように、イタリアに開廷(巡回裁判)を行なうために出発した。
**:(訳注:ここで「イタリア」とはカエサルが総督を務める[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]のことと思われる。)
----
*<span style="background-color:#99ff99;">「ガリア戦記 第6巻」了。「[[ガリア戦記 第7巻]]」へ続く。</span>
==脚注==
<references />
==参考リンク==
*ウィキペディア英語版・日本語版
**[[w:en:Category:Tribes of ancient Gaul|Category:Tribes of ancient Gaul]]([[w:Category:ガリアの部族|Category:ガッリアの部族]])
***[[w:en:Eburones|Eburones]]([[w:エブロネス族|エブロネス族]])
***[[w:en:Nervii|Nervii]]([[w:ネルウィイ族|ネルウィイ族]])
***[[w:en:Senones|Senones]](セノネス族)- [[w:la:Senones|la:Senones]]
***[[w:en:Carnutes|Carnutes]](カルヌテス族)
***[[w:en:Parisii (Gaul)|Parisii (Gaul)]]([[w:パリシイ族|パリスィ族]])
****[[w:en:Lutetia|Lutetia]]([[w:ルテティア|ルテティア]])
***[[w:en:Menapii|Menapii]](メナピイ族)
***[[w:en:Treveri|Treveri]](トレーウェリー族)
***[[w:en:Aedui|Aedui]]([[w:ハエドゥイ族|ハエドゥイ族]])
***[[w:en:Sequani|Sequani]](セクアニ族)
***[[w:en:Remi|Remi]](レーミー族)
**[[w:en:Category:Germanic peoples|Category:Germanic peoples]](ゲルマーニア人のカテゴリ)
***[[w:en:Category:Ancient Germanic peoples|Category:Ancient Germanic peoples]](古代ゲルマーニア人)
***[[w:en:Germanic peoples|Germanic peoples]](ゲルマーニア人)
***[[w:en:Ubii|Ubii]](ウビイー族)
***[[w:en:Suebi|Suebi]]([[w:スエビ族|スエービー族]])
***[[w:en:Chatti|Chatti]](カッティー族)
***[[w:en:Cherusci|Cherusci]](ケールスキー族)
***[[w:en:Sicambri|Sicambri]](スガンブリー族)
***[[w:en:Hercynian Forest|Hercynian Forest]](ヘルキュニアの森)
**地理学者・史家
***[[w:en:Posidonius|Posidonius]]([[w:ポセイドニオス|ポセイドニオス]];BC135-51年頃)- [[w:la:Posidonius Apameus|la:Posidonius Apameus]]
***[[w:en:Diodorus Siculus|Diodorus Siculus]]([[w:シケリアのディオドロス|シケリアのディオドロス]];BC1世紀) - [[w:la:Diodorus Siculus|la:Diodorus Siculus]]
****〔ウィキソース ギリシア語版:[[s:el:Διόδωρος Σικελιώτης|Διόδωρος Σικελιώτης]](シケリアのディオドロス)- [[s:el:Ιστορική Βιβλιοθήκη|Ιστορική Βιβλιοθήκη]](歴史叢書)〕
***[[w:en:Strabo|Strabo]]([[w:ストラボン|ストラボン]];BC63年頃–AD24年頃)- [[w:la:Strabo|la:Strabo]]
****〔ウィキソース ギリシア語版:[[s:el:Στράβων|Στράβων]](ストラボン) - [[s:el:Γεωγραφία|Γεωγραφία]](世界地誌)〕
***[[w:en:Tacitus|Tacitus]]([[w:タキトゥス|タキトゥス]];56年頃–117年頃)- [[w:la:Cornelius Tacitus|la:Cornelius Tacitus]]
****[[w:en:Germania (book)|Germania (book)]]([[w:ゲルマニア (書物)|ゲルマーニア (書物)]])- [[w:la:Germania (opus Taciti)|la:Germania (opus Taciti)]]
***[[w:en:Pomponius Mela|Pomponius Mela]](ポンポニウス・メラ;1世紀)- [[w:la:Pomponius Mela|Pomponius Mela]]
***[[w:en:Athenaeus|Athenaeus]]([[w:アテナイオス|アテナイオス]];2世紀頃)- [[w:la:Athenaeus Naucratita|la:Athenaeus Naucratita]]
***[[w:en:Theodor Mommsen|Theodor Mommsen]]([[w:テオドール・モムゼン|テオドール・モムゼン]];19世紀)- [[w:la:Theodorus Mommsen|la:Theodorus Mommsen]]
**[[w:en:Category:Celtic culture|Category:Celtic culture]](ケルト文化)
**[[w:en:Category:Celtic mythology|Category:Celtic mythology]]([[w:Category:ケルト神話|Category:ケルト神話]])
***[[w:en:Druid|Druid]]([[w:ドルイド|ドルイド]]) - [[w:la:Druis|la:Druis]]
***[[w:en:Wicker Man|Wicker Man]]([[w:ウィッカーマン|ウィッカーマン]])
**[[w:en:Category::Celtic_gods|Category::Celtic_gods]](ケルトの神々)
**[[w:en:Category:Ancient Gaulish and British gods|Category:Ancient Gaulish and British gods]](古代ガッリアとブリタニアの神々)
***[[w:en:Taranis|Taranis]](タラニス)
***[[w:en:Cernunnos|Cernunnos]](ケルヌンノス)
***[[w:en:Dis Pater|Dis Pater]](ディス・パテル)
***[[w:en:Sucellus|Sucellus]](スケッルス)
**カエサルの副官たち
***[[w:en:Titus_Labienus|Titus Labienus]]([[w:ティトゥス・ラビエヌス|ティトゥス・ラビエヌス]])- [[w:la:Titus_Labienus|la:Titus Labienus]]
***[[w:en:Trebonius|Gaius Trebonius]]([[w:ガイウス・トレボニウス|ガイウス・トレボニウス]])- [[w:la:Gaius Trebonius|la:Gaius Trebonius]]
***[[w:en:Quintus_Tullius_Cicero|Quintus Tullius Cicero]]([[w:クィントゥス・トゥッリウス・キケロ|クィントゥス・トゥッリウス・キケロ]])- [[w:la:Quintus_Tullius_Cicero|la:Quintus Tullius Cicero]]
***[[w:en:|en:]]([[w:|w:]])
***[[w:en:|en:]]([[w:|w:]])
*ウィクショナリー フランス語版
**[[wikt:fr:calo]](カーロー、軍属奴隷)
q238qut5mdld7jh93o3kge685954g75
263033
263031
2024-11-04T15:48:24Z
Linguae
449
/* 7節 */ 修整
263033
wikitext
text/x-wiki
[[Category:ガリア戦記|6]]
[[ガリア戦記]]> '''第6巻''' >[[ガリア戦記 第6巻/注解|注解]]
<div style="text-align:center">
<span style="font-size:20px; font-weight:bold; font-variant-caps: petite-caps; color:white; background: rgb(47,94,255);background: linear-gradient(180deg, rgba(47,94,255,1) 0%, rgba(24,56,255,1) 50%, rgba(0,8,255,1) 100%);"> C IVLII CAESARIS COMMENTARIORVM BELLI GALLICI </span>
<span style="font-size:40px; font-weight:bold; color:white; background: rgb(47,94,255);background: linear-gradient(180deg, rgba(47,94,255,1) 0%, rgba(24,56,255,1) 50%, rgba(0,8,255,1) 100%);"> LIBER SEXTVS </span>
</div>
[[画像:Gaule_-53.png|thumb|right|150px|ガリア戦記 第6巻の情勢図(BC53年)。<br>黄色の領域がローマ領。桃色が同盟部族領。]]
{| id="toc" style="align:left;clear:all;" align="left" cellpadding="5"
! style="background:#ccccff; text-align:left;" colspan="2" | ガリア戦記 第6巻 目次
|-
| style="text-align:right; font-size: 0.86em;"|
'''[[#ガッリア北部の平定|ガッリア北部の平定]]''':<br />
'''[[#第二次ゲルマーニア遠征|第二次ゲルマーニア遠征]]''':<br />
'''[[#ガッリア人の社会と風習について|ガッリア人の社会と風習について]]''':<br />
'''[[#ゲルマーニアの風習と自然について|ゲルマーニアの風習と自然について]]''':<br />
'''[[#対エブロネス族追討戦(1)|対エブロネス族追討戦(1)]]''':<br />
'''[[#スガンブリー族のアドゥアトゥカ攻略戦|スガンブリー族のアドゥアトゥカ攻略戦]]''':<br />
'''[[#対エブロネス族追討戦(2)|対エブロネス族追討戦(2)]]''':<br />
<br />
<br />
<br />
<br />
<br />
| style="text-align:left; font-size: 0.86em;"|
[[#1節|01節]] |
[[#2節|02節]] |
[[#3節|03節]] |
[[#4節|04節]] |
[[#5節|05節]] |
[[#6節|06節]] |
[[#7節|07節]] |
[[#8節|08節]] <br />
[[#9節|09節]] |
[[#10節|10節]] <br />
[[#11節|11節]] |
[[#12節|12節]] |
[[#13節|13節]] |
[[#14節|14節]] |
[[#15節|15節]] |
[[#16節|16節]] |
[[#17節|17節]] |
[[#18節|18節]] |
[[#19節|19節]] |
[[#20節|20節]] <br />
[[#21節|21節]] |
[[#22節|22節]] |
[[#23節|23節]] |
[[#24節|24節]] |
[[#25節|25節]] |
[[#26節|26節]] |
[[#27節|27節]] |
[[#28節|28節]] <br />
[[#29節|29節]] |
[[#30節|30節]] |
[[#31節|31節]] |
[[#32節|32節]] |
[[#33節|33節]] |
[[#34節|34節]] <br />
[[#35節|35節]] |
[[#36節|36節]] |
[[#37節|37節]] |
[[#38節|38節]] |
[[#39節|39節]] |
[[#40節|40節]] |
[[#41節|41節]] |
[[#42節|42節]] <br/>
[[#43節|43節]] |
[[#44節|44節]] <br/>
1節 [[#コラム「カエサルの軍団」|コラム「カエサルの軍団」]]<br>
10節 [[#コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」|コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」]]<br>10節 [[#コラム「ガッリア・ゲルマーニアの地誌・民族誌について」|コラム「ガッリア・ゲルマーニアの地誌・民族誌について」]]<br />
[[#脚注|脚注]]<br />
[[#参考リンク|参考リンク]]<br />
|}
<br style="clear:both;" />
__notoc__
<div style="background-color:#dfffdf;">
==<span style="color:#009900;">はじめに</span>==
:<div style="color:#009900;width:85%;">カエサルは、第1巻の年([[w:紀元前58年|紀元前58年]])から<ruby><rb>[[w:プロコンスル|前執政官]]</rb><rp>(</rp><rt>プロコンスル</rt><rp>)</rp></ruby>として属州総督に赴任した。が、これは[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]、[[w:イリュリクム|イッリュリクム]]および[[w:ガリア・ナルボネンシス|ガッリア・トラーンサルピーナ]]の三属州の統治、および4個軍団を5年間にもわたって任されるというローマ史上前代未聞のものであった。これはカエサルが[[w:マルクス・リキニウス・クラッスス|クラッスス]]、[[w:グナエウス・ポンペイウス|ポンペイウス]]と非公式な盟約を結んだ[[w:三頭政治#第一回三頭政治|三頭政治]]の成果であった。カエサルには属州の行政に従事する気持ちははじめからなく、任期のほとんどを夏季は[[w:ガリア戦争|ガッリア侵攻]]に、冬季は首都ローマへの政界工作に費やした。[[ガリア戦記_第3巻#はじめに|第3巻]]の年([[w:紀元前56年|紀元前56年]])に3人は[[w:ルッカ|ルカ]]([[w:la:Luca|Luca]])の会談を行い、カエサルはクラッススとポンペイウスが翌年に執政官になること、カエサルの総督の任期をさらに5年間延長されることを求めた。会談の結果、任期が大幅に延長されることになったカエサルは、もはや軍事的征服の野望を隠そうとせず、ガッリアに止まらず、[[w:ゲルマニア|ゲルマーニア]]や[[w:ブリタンニア|ブリタンニア]]の征服へと向かっていく。一方、第4巻の年([[w:紀元前55年|前55年]])に再び執政官になった二人は、[[w:パルティア|パルティア]]を攻略するためにクラッススが[[w:シリア属州|シュリア]]総督になること、ポンペイウスがカエサルと同様に[[w:ヒスパニア|両ヒスパーニア]]と[[w:アフリカ属州|アフリカ]]の三属州の総督になって4個軍団を任されることを決める。</div>
<div style="text-align:center">
{|
|-
|[[画像:First Triumvirate of Caesar, Crassius and Pompey.jpg|thumb|right|500px|後に[[w:三頭政治#第一回三頭政治|三頭政治]](<span style="font-family:Times New Roman;">[[w:la:Triumviratus|Triumviratus]]</span>)と呼ばれることになる非公式な盟約を結んでいた、左から[[w:ガイウス・ユリウス・カエサル|カエサル]]、[[w:マルクス・リキニウス・クラッスス|クラッスス]]、[[w:グナエウス・ポンペイウス|ポンペイウス]]。<br>3人の同盟はついに破綻の時を迎える。]]
|}
</div>
:<div style="color:#009900;width:85%;">[[w:ガリア戦記 第5巻|第5巻]]の年([[w:紀元前54年|前54年]])、カエサルは満を持して二回目の[[w:ローマによるブリタンニア侵攻 (紀元前55年-紀元前54年)|ブリタンニア侵攻]]を敢行するが、大した戦果は得られず、背後のガッリア情勢を気にしながら帰還する。ついに[[w:アンビオリクス|アンビオリークス]]率いる[[w:エブロネス族|エブローネース族]]、ついで[[w:ネルウィイ族|ネルウィイー族]]が反乱を起こし、カエサルは何とか動乱を鎮めるが、ガッリア諸部族の動きは不穏であり、カエサルは諸軍団とともに越冬することを決める。</div>
:<div style="color:#009900;width:85%;">カエサルがブリタンニア遠征で不在の間に、ポンペイウスに嫁していたカエサルの一人娘[[w:ユリア (ガイウス・ユリウス・カエサルの娘)|ユーリア]]が[[w:産褥|産褥]]で命を落とす。一方、クラッススは属州[[w:シリア属州|シュリア]]に向かうが、これはクラッススの命運とともに三頭政治の瓦解、カエサルとポンペイウスの関係悪化を招来することになる。</div>
:<div style="color:#009900;width:85%;">本巻の年([[w:紀元前53年|前53年]])、カエサルは[[w:エブロネス族|エブローネース族]]追討戦に向かうが、これは大きな嵐の前の出来事に過ぎない。</div>
</div>
<!--
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
==ガッリア北部の平定==
===1節===
*<span style="background-color:#ffd;">[[/注解/1節]] {{進捗|00%|2024-09-18}}</span>
;カエサルがポンペイウスの助けにより新兵を徴募する
*<!--❶-->Multis de causis Caesar maiorem Galliae [[wikt:en:motus#Noun_2|motum]] [[wikt:en:exspectans|exspectans]]
**多くの理由から、カエサルは、ガッリアのより大きな動乱を予期しており、
*per [[wikt:en:Marcus#Latin|Marcum]] [[wikt:en:Silanus#Latin|Silanum]], [[wikt:en:Gaius#Latin|Gaium]] [[wikt:en:Antistius#Latin|Antistium]] Reginum, [[wikt:en:Titus#Latin|Titum]] [[wikt:en:Sextius#Latin|Sextium]], legatos,
**<ruby><rb>[[w:レガトゥス|総督副官]]</rb><rp>(</rp><rt>レガトゥス</rt><rp>)</rp></ruby>の[[w:マルクス・ユニウス・シラヌス (紀元前25年の執政官)|マールクス・スィーラーヌス]]、ガーイウス・アンティスティウス・レーギーヌス、ティトゥス・セクスティウスを介して
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[w:en:Marcus Junius Silanus (consul 25 BC)|Mārcus Iūnius Sīlānus]] はこの年([[w:紀元前53年|前53年]])からカエサルの副官、[[w:紀元前25年|前25年]]に執政官。<br> ''[[w:fr:Caius Antistius Reginus|Gaius Antistius Reginus]]'' は副官として[[ガリア戦記_第7巻#83節|第7巻83節]]と[[ガリア戦記_第7巻#90節|90節]]でも後出。<br> [[w:en:Titus Sextius|Titus Sextius]] はこの年からカエサルの副官、[[ガリア戦記_第7巻#83節|第7巻83節]]でも後出、<br> [[w:三頭政治#第二回三頭政治|第二回三頭政治]]では[[w:アフリカ属州|アフリカ属州]]の総督を務め、[[w:マルクス・アエミリウス・レピドゥス|レピドゥス]]に引き継ぐ。)</span>
*[[wikt:en:dilectus#Noun|dilectum]] habere [[wikt:en:instituo#Latin|instituit]];
**<small>(兵士の)</small>徴募を行なうことを決める。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:dilectus#Noun|dīlēctus]] = [[wikt:en:delectus#Noun_2|dēlēctus]]「選択、徴募」)</span>
:
*<!--❷-->simul ab [[wikt:en:Gnaeus#Latin|Gnaeo]] [[wikt:en:Pompeius#Proper_noun|Pompeio]] [[wikt:en:proconsul#Latin|proconsule]] [[wikt:en:peto#Latin|petit]],
**同時に、<ruby><rb>[[w:プロコンスル|前執政官]]</rb><rp>(</rp><rt>プロコンスル</rt><rp>)</rp></ruby>の[[w:グナエウス・ポンペイウス|グナエウス・ポンペイウス]]に<small>(以下のことを)</small>求める。
*[[wikt:en:quoniam#Latin|quoniam]] ipse ad <u>urbem</u> cum imperio rei publicae causa [[wikt:en:remaneo#Latin|remaneret]],
**<small>(ポンペイウス)</small>自身は<u>首都</u><small>〔[[w:ローマ|ローマ市]]〕</small>の辺りに、<ruby><rb>[[w:インペリウム|軍隊司令権]]</rb><rp>(</rp><rt>インペリウム</rt><rp>)</rp></ruby>を伴って、国務のために留まっていたので、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:urbs#Latin|urbs (urbem)]] は普通名詞として「都市・街」を意味するが、特に首都'''[[w:ローマ|ローマ市]]'''を指す。)</span>
**:<span style="color:#009900;">(訳注:ポンペイウスは、第4巻の年([[w:紀元前55年|前55年]])に[[w:マルクス・リキニウス・クラッスス|クラッスス]]とともに[[w:執政官|執政官]]を務め、<br> 第5巻の年(昨年=[[w:紀元前54年|前54年]])には[[w:ヒスパニア|両ヒスパーニア]]と[[w:アフリカ属州|アフリカ]]の属州総督となったが、<br> 首都ローマの政局が気がかりであったため、任地には副官を派遣して、<br> 自らはローマ郊外に滞在していた。ただ彼は属州総督であったため、<br> [[w:ポメリウム|ポメリウム]]と呼ばれるローマ市中心部に立ち入ることは禁じられていた。)</span>
*quos ex [[wikt:en:cisalpinus#Latin|Cisalpina]] Gallia <u>consulis</u> [[wikt:en:sacramentum#Latin|sacramento]] [[wikt:en:rogo#Latin|rogavisset]],
**[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]の内から、<ruby><rb>[[w:執政官|執政官]]</rb><rp>(</rp><rt>コンスル</rt><rp>)</rp></ruby>のための宣誓を求めていた者たちに、
**:<span style="color:#009900;">(訳注:ポンペイウスは執政官のときに元老院の許可を得て、<br> カエサルの属州で、自らの属州に派遣するための4個軍団の徴募を行った。<br> 徴集された新兵たちは執政官に宣誓したようである。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、主要写本ω では [[wikt:en:consulis#Noun|consulis]]「執政官の」だが、<br> [[ガリア戦記/注解編/写本と校訂版#Ciacconius|Ciacconius]]は [[wikt:en:consul#Latin|consul]]「執政官が」と修正提案している。)</span>
*ad signa [[wikt:en:convenio#Latin|convenire]] et ad se [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iuberet]],
**軍旗のもとに集まって、自分<small>〔カエサル〕</small>のもとへ進発することを命じるようにと。
**:<span style="color:#009900;">(訳注:カエサルは、ポンペイウスに軍団兵の融通を求めたわけだ。<br> ポンペイウスが執政官のときに徴募していたうちの1個軍団がカエサルに貸し出された。<br> ところがその後、<u>第8巻54節の記述</u>によれば <ref>ラテン語文は、[[s:la:Commentarii_de_bello_Gallico/Liber_VIII#54]] などを参照。</ref><ref>英訳は、[[s:en:Commentaries_on_the_Gallic_War/Book_8#54]] などを参照。</ref>、[[w:マルクス・リキニウス・クラッスス|クラッスス]]の死後に、[[w:元老院|元老院]]は、<br> 対[[w:パルティア|パルティア]]戦争のために、カエサルとポンペイウスがそれぞれ1個軍団を供出することを可決したが、<br> ポンペイウスはカエサルに1個軍団の返還を求めたので、<br> カエサルは計2個軍団の引き渡しを求められることになる。<br> このことは、[[内乱記_第1巻#2節|『内乱記』第1巻2節]]以降でも言及される。)</span>
:
*<!--❸-->magni [[wikt:en:intersum#Latin|interesse]] etiam in reliquum tempus ad [[wikt:en:opinio#Latin|opinionem]] Galliae [[wikt:en:existimans#Latin|existimans]]
**ガッリアの世論に対して、これから後の時期にさえも、(カエサルが)大いに重要であると考えていたのは、
*tantas videri Italiae [[wikt:en:facultas#Latin|facultates]]
**(以下の程度に)イタリアの(動員)能力が豊富であると見えることである。
**:<span style="color:#009900;">(訳注:Italiaという語は多義的でさまざまに解釈できるが、<br> 本書ではガッリア・キサルピーナを指すことが多い。)</span>
*ut, si [[wikt:en:aliquid#Etymology_2|quid]] esset in bello [[wikt:en:detrimentum#Latin|detrimenti]] acceptum,
**もし、戦争において何がしかの(兵員の)損害を蒙ったとしても、
*non modo id [[wikt:en:brevis#Latin|brevi]] tempore [[wikt:en:sarcio#Latin|sarciri]],
**それが短期間で修復(できる)だけでなく、
*sed etiam [[wikt:en:maior#Adjective_2|maioribus]] [[wikt:en:augeo#Latin|augeri]] copiis posset.
**より多く軍勢で増されることが可能だ<br>(とガッリアの世論に思われることが重要であるとカエサルは考えたのである)。
:
*<!--❹-->Quod cum [[wikt:en:Pompeius#Proper_noun|Pompeius]] et rei publicae et amicitiae [[wikt:en:tribuo#Latin|tribuisset]],
**そのことを、ポンペイウスは公儀<small>〔ローマ国家〕</small>のためにも(三頭政治の)盟約のためにも認めたので、
*celeriter [[wikt:en:confectus#Latin|confecto]] per suos [[wikt:en:dilectus#Noun|dilectu]]
**(カエサルの)配下の者たちを介して速やかに徴募が成し遂げられて
*tribus ante [[wikt:en:exactus#Latin|exactam]] [[wikt:en:hiems#Latin|hiemem]] et [[wikt:en:constitutus#Participle|constitutis]] et [[wikt:en:adductus#Latin|adductis]] legionibus
**冬が過ぎ去る前に、3個[[w:ローマ軍団|軍団]]が組織されて<small>(カエサルのもとへ)</small>もたらされ、
*[[wikt:en:duplicatus#Latin|duplicato]]<nowiki>que</nowiki> earum [[wikt:en:cohors#Latin|cohortium]] numero, quas cum [[wikt:en:Quintus#Latin|Quinto]] [[wikt:en:Titurius#Latin|Titurio]] [[wikt:en:amitto#Latin|amiserat]],
**それらの<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>の数は、[[w:クィントゥス・ティトゥリウス・サビヌス|クィーントゥス・ティトゥーリウス(・サビーヌス)]]とともに失っていたものの倍にされた。
**:<span style="color:#009900;">(訳注:前巻でサビーヌスとコッタは1個軍団と5個[[w:コホルス|歩兵大隊]](=15個歩兵大隊)を失ったが、<br> 代わりに3個軍団(=30個歩兵大隊)を得たということ。)</span>
*et [[wikt:en:celeritas#Latin|celeritate]] et copiis [[wikt:en:doceo#Latin|docuit]],
**<small>(徴兵の)</small>迅速さと軍勢<small>(の多さ)</small>において<small>(ガッリア人たちに)</small>示したのは、
*quid populi Romani [[wikt:en:disciplina#Latin|disciplina]] atque [[wikt:en:ops#Noun_4|opes]] possent.
**ローマ国民の規律と能力がいかに有力であるかということである。
{| class="wikitable"
|-
| style="vertical-align:top; text-align:left;" |[[画像:Hw-pompey.jpg|thumb|right|250px|[[w:グナエウス・ポンペイウス|グナエウス・ポンペイウス]]の胸像。カエサルおよび[[w:マルクス・リキニウス・クラッスス|マルクス・クラッスス]]とともに[[w:三頭政治|三頭政治]]を行ない、[[w:共和政ローマ|共和政末期のローマ]]を支配した。この巻の年にクラッススが戦死し、ポンペイウスに嫁いでいたカエサルの娘[[w:ユリア (ガイウス・ユリウス・カエサルの娘)|ユーリア]]が前年に病没、三頭政治は瓦解して、やがて[[w:ローマ内戦 (紀元前49年-紀元前45年)|内戦]]へ向かう。]]
| style="vertical-align:top; text-align:left;" |[[画像:Theatre of Pompey 3D cut out.png|thumb|left|400px|'''[[w:ポンペイウス劇場|ポンペイウス劇場]]'''の復元図。[[w:グナエウス・ポンペイウス|ポンペイウス]]の名を冠したこの劇場は、彼が執政官であった[[w:紀元前55年|紀元前55年]]頃に竣工し、当時最大の劇場であった。<br> 伝記作家[[w:プルタルコス|プルータルコス]]は以下のように伝えている<ref>[[s:en:Plutarch%27s_Lives_(Clough)/Life_of_Pompey]] より</ref>:「クラッススは執政官の任期が切れるとすぐに属州へと出発したが、ポンペイウスはローマで劇場の開館式や奉献式に出席し、その式にはあらゆる競技・ショー・運動・体操・音楽などで人々を楽しませた。野獣の狩猟や餌付け、野獣との闘いもあり、500頭のライオンが殺された。しかし何よりも、象の闘いは、恐怖と驚きに満ちた見世物であった」と。<br><br> カエサルの最期の場所でもあり、血みどろのカエサルはポンペイウスの胸像の前で絶命したとされている。]]
|}
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
<div style="background-color:#dfffdf;">
===<span style="color:#009900;">コラム「カエサルの軍団」</span>===
:<div style="color:#009900;width:75%;">カエサルは第1巻の年([[w:紀元前58年|紀元前58年]])に三属州の総督に任官するとともに4個軍団(VI・VII・[[w:en:Legio VIII Augusta|VIII]]・[[w:en:Legio IX Hispana|IX]])を任された。[[w:ヘルウェティイ族|ヘルウェーティイー族]]([[w:la:Helvetii|Helvetii]])と対峙するうちに、元老院に諮らずに独断で2個軍団([[w:en:Legio X Equestris|X]]・[[w:en:Legio XI Claudia|XI]])を徴募する(1巻10節)。<br> 第2巻の年([[w:紀元前57年|紀元前57年]])に3個軍団([[w:en:Legio XII Fulminata|XII]]・[[w:en:Legio XIII Gemina|XIII]]・[[w:en:Legio XIV Gemina|XIV]])を徴募して、計9個軍団。<br><br> [[ガリア戦記_第5巻#24節|『第5巻』24節]]の時点で、カエサルは8個軍団と5個[[w:コホルス|歩兵大隊]]を保持していると記されている。最古参の第6軍団が半減していると考えると、[[w:アドゥアトゥカの戦い|アドゥアトゥカの戦い]]で[[w:アンビオリクス|アンビオリークス]]によって、[[w:クィントゥス・ティトゥリウス・サビヌス|サビーヌス]]やコッタらとともに滅ぼされたのは、第14軍団([[w:en:Legio XIV Gemina|XIV]])と古い第6軍団(VI)の生き残りの5個[[w:コホルス|歩兵大隊]]と考えることができる。<br><br> 本巻の年([[w:紀元前53年|紀元前53年]])では、ポンペイウスの第1軍団がカエサルに譲られ、後にカエサルの軍団の番号系列に合わせて第6軍団(VI)と改称されたようだ。「第14軍団」は全滅させられたので通常は欠番にするところだが、カエサルはあえて再建して第14軍団と第15軍団が徴募され、これら3個軍団を加えると、カエサルが保持するのは計10個軍団となる。<br> もっとも本巻ではカエサルは明瞭な記述をしておらず、上述のように後に2個軍団を引き渡すことになるためか、伝記作家[[w:プルタルコス|プルータルコス]]は、ポンペイウスがカエサルに2個軍団を貸し出した、と説明している。
</div>
</div>
===2節===
*<span style="background-color:#ffd;">[[/注解/2節]] {{進捗|00%|2024-09-29}}</span>
;ガッリア北部の不穏な情勢、トレーウェリー族がライン川東岸のゲルマーニア人を勧誘
*<!--❶-->[[wikt:en:interfectus#Latin|Interfecto]] [[wikt:en:Indutiomarus#Latin|Indutiomaro]], ut [[wikt:en:doceo#Latin|docuimus]],
**<small>([[ガリア戦記 第5巻#58節|第5巻58節]]で)</small>述べたように、インドゥーティオマールスが殺害されると、
*ad eius propinquos a [[wikt:en:Treveri#Latin|Treveris]] imperium [[wikt:en:defero#Latin|defertur]].
**トレーウェリー族の者たちにより彼の縁者たちへ支配権がもたらされる。
*Illi finitimos [[wikt:en:Germanus#Noun|Germanos]] [[wikt:en:sollicito#Latin|sollicitare]] et [[wikt:en:pecunia#Latin|pecuniam]] [[wikt:en:polliceor#Latin|polliceri]] non [[wikt:en:desisto#Latin|desistunt]].
**彼らは隣接する[[w:ゲルマニア|ゲルマーニア]]人たちをそそのかすこと、および金銭を約束することをやめない。
*Cum ab proximis [[wikt:en:impetro#Latin|impetrare]] non possent, [[wikt:en:ulterior#Latin|ulteriores]] [[wikt:en:tempto#Latin|temptant]].
**たとえ隣人たちによって(盟約を)成し遂げることができなくても、より向こう側の者たちに試みる。
:
*<!--❷-->[[wikt:en:inventus#Latin|Inventis]] [[wikt:en:nonnullus#Latin|non nullis]] civitatibus
**少なからぬ部族国家を見出して
*[[wikt:en:ius_iurandum#Latin|iure iurando]] inter se [[wikt:en:confirmo#Latin|confirmant]]
**互いに誓約し合って(支持を)固め、
*obsidibusque de pecunia [[wikt:en:caveo#Latin|cavent]];
**金銭(の保証)のために人質たちを提供する。
*[[wikt:en:Ambiorix#Latin|Ambiorigem]] sibi [[wikt:en:societas#Latin|societate]] et [[wikt:en:foedus#Latin|foedere]] [[wikt:en:adiungo#Latin|adiungunt]].
**[[w:アンビオリクス|アンビオリークス]]を自分たちにとっての連合や同盟に加盟させる。
:
*<!--❸-->Quibus rebus [[wikt:en:cognitus#Participle|cognitis]] Caesar,
**それらの事情を知るや、カエサルは、
*cum undique bellum [[wikt:en:paro#Latin|parari]] videret,
**至る所で戦争が準備されていることを見ていたので、
*[[wikt:en:Nervii#Latin|Nervios]], [[wikt:en:Aduatuci#Latin|Atuatucos]] ac [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:adiunctus#Participle|adiunctis]]
**(すなわち)[[w:ネルウィイ族|ネルウィイー族]]、アトゥアトゥキー族とメナピイー族を加盟させたうえに
*<u>Cisrhenanis</u> omnibus <u>[[wikt:en:Germanus#Noun|Germanis]]</u> esse in armis,
**レーヌス<small>〔[[w:ライン川|ライン川]]〕</small>のこちら側のすべてのゲルマーニア人たちが武装していて、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:en:Germani cisrhenani|Germani Cisrhenani]]''「レーヌスのこちら側のゲルマーニア人」(西岸の諸部族) は西岸部族の総称。<br> ''Germani Transrhenani'' 「レーヌスの向こう側のゲルマーニア人」(東岸の諸部族) の対義語で、<br> 西岸の諸部族が東岸の諸部族を招き寄せているというのが『ガリア戦記』の主張である。)</span>
*[[wikt:en:Senones#Latin|Senones]] ad [[wikt:en:imperatum#Latin|imperatum]] non venire
**セノネース族は<small>(カエサルから)</small>命令されたことに従わずに
*et cum [[wikt:en:Carnutes#Latin|Carnutibus]] finitimisque civitatibus consilia [[wikt:en:communico#Latin|communicare]],
**カルヌーテース族および隣接する諸部族とともに謀計を共有しており、
*a [[wikt:en:Treveri#Latin|Treveris]] [[wikt:en:Germanus#Noun|Germanos]] crebris [[wikt:en:legatio#Latin|legationibus]] [[wikt:en:sollicito#Latin|sollicitari]],
**ゲルマーニア人たちがたびたびトレーウェリー族の使節団によってそそのかされていたので、
*[[wikt:en:mature#Adverb|maturius]] sibi de bello [[wikt:en:cogitandus#Latin|cogitandum]] [[wikt:en:puto#Latin|putavit]].
**<small>(カエサルは)</small>自分にとって<small>(例年)</small>より早めに戦争を計画するべきだと見なした。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===3節===
*<span style="background-color:#ffd;">[[/注解/3節]] {{進捗|00%|2024-10-06}}</span>
;カエサルがネルウィイー族を降し、ガッリアの領袖たちの会合を召集する
*<!--❶-->Itaque [[wikt:en:nondum#Latin|nondum]] [[wikt:en:hiems#Latin|hieme]] [[wikt:en:confectus#Latin|confecta]]
**<small>(カエサルは)</small>こうして、まだ冬が終わらないうちに、
*proximis quattuor [[wikt:en:coactus#Latin|coactis]] legionibus
**近隣の4個[[w:ローマ軍団|軍団]]を集めて、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[ガリア戦記_第5巻#52節|第5巻52節]]で言及されたように、カエサルは、本営を置いていた<br> サマロブリーウァ(現在の[[w:アミアン|アミアン]])周辺の冬営に3個軍団、<br> およびファビウスの軍団を配置していたと思われる。)</span>
*[[wikt:en:de_improviso#Latin|de improviso]] in fines [[wikt:en:Nervii#Latin|Nerviorum]] [[wikt:en:contendo#Latin|contendit]]
**不意に[[w:ネルウィイ族|ネルウィイー族]]の領土に急いだ。
:
*<!--❷-->et, [[wikt:en:priusquam#Latin|prius quam]] illi aut [[wikt:en:convenio#Latin|convenire]] aut [[wikt:en:profugio#Latin|profugere]] possent,
**そして、彼ら<small>(の軍勢)</small>は、集結したり、あるいは逃亡したりできるより前に、
*magno [[wikt:en:pecus#Latin|pecoris]] atque hominum numero [[wikt:en:captus#Latin|capto]]
**家畜たちおよび人間たちの多数を捕らえて、
*atque ea [[wikt:en:praeda#Latin|praeda]] militibus [[wikt:en:concessus#Participle|concessa]]
**それらの戦利品を兵士たちに譲り、
*[[wikt:en:vastatus#Latin|vastatis]]<nowiki>que</nowiki> agris
**耕地を荒らして、
*in [[wikt:en:deditio#Latin|deditionem]] venire atque obsides sibi dare [[wikt:en:cogo#Latin|coegit]].
**<small>(ネルウィイー族に、ローマ勢へ)</small>降伏すること、人質たちを自分<small>〔カエサル〕</small>に供出することを強いた。
:
*<!--❸-->Eo celeriter [[wikt:en:confectus#Latin|confecto]] [[wikt:en:negotium#Latin|negotio]]
**その戦役は速やかに成し遂げられたので、
*rursus in [[wikt:en:hibernum#Latin|hiberna]] legiones [[wikt:en:reduco#Latin|reduxit]].
**再び諸軍団を冬営に連れ戻した。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:本営を置いていたサマロブリーウァ周辺の冬営。)</span>
:
*'''ガッリアの領袖たちの会合'''
*<!--❹-->[[wikt:en:concilium#Latin|Concilio]] Galliae primo [[wikt:en:ver#Latin|vere]], ut [[wikt:en:instituo#Latin|instituerat]], [[wikt:en:indictus#Participle|indicto]],
**ガッリアの<small>(領袖たちの)</small>会合を、定めていたように、春の初めに通告すると、
**:<span style="color:#009900;">(訳注:会合の集合場所は、当初は本営のあるサマロブリーウァだったであろう。)</span>
*cum reliqui praeter [[wikt:en:Senones#Latin|Senones]], [[wikt:en:Carnutes#Latin|Carnutes]] [[wikt:en:Treveri#Latin|Treveros]]<nowiki>que</nowiki> venissent,
**[[w:セノネス族|セノネース族]]、カルヌーテース族とトレーウェリー族を除いて、ほかの者たちは(会合に)現われていたので、
**:<span style="color:#009900;">(訳注:ガッリア北部では、このほかエブローネース族とメナピイー族が参加していないはずである。)</span>
*initium belli ac [[wikt:en:defectio#Latin|defectionis]] hoc esse [[wikt:en:arbitratus#Latin|arbitratus]],
**このこと<span style="color:#009900;">〔3部族の不参加〕</span>は戦争と背反の始まりであると思われて、
*ut omnia [[wikt:en:postpono#Latin|postponere]] videretur,
**<small>(他の)</small>すべて<small>(の事柄)</small>を後回しにすることと見なされるように、
*[[wikt:en:concilium#Latin|concilium]] [[wikt:en:Lutetia#Latin|Lutetiam]] [[wikt:en:Parisii#Latin|Parisiorum]] [[wikt:en:transfero#Latin|transfert]].
**会合を[[w:パリシイ族|パリースィイー族]]の(城塞都市である)[[w:ルテティア|ルーテーティア]]に移す。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:ルーテーティア Lutetia は、写本によってはルーテーキア Lutecia とも表記されている。<br> ラテン語では Lutetia Parisiorum「パリースィイー族の泥土」と呼ばれ、現在の[[w:パリ|パリ市]]である。<br> [[w:ストラボン|ストラボーン]]などによれば[[w:ケルト語|ケルト語]]でルコテキア Lukotekia と呼ばれていたらしい。)</span>
:
; セノネース族について
[[画像:Plan_de_Paris_Lutece2_BNF07710745.png|thumb|right|200px|ルテティア周辺の地図(18世紀頃)]]
*<!--❺-->[[wikt:en:confinis#Latin|Confines]] erant hi [[wikt:en:Senones#Latin|Senonibus]]
**彼ら<small>〔パリースィイー族〕</small>はセノネース族に隣接していて、
*civitatemque patrum memoria [[wikt:en:coniungo#Latin|coniunxerant]],
**父祖の伝承では<small>(セノネース族と一つの)</small>部族として結びついていた。
*sed ab hoc consilio [[wikt:en:absum#Latin|afuisse]] [[wikt:en:existimo#Latin|existimabantur]].
**しかし<small>(パリースィイー族は)</small>これらの謀計には関与していなかったと考えられていた。
:
*<!--❻-->Hac re pro [[wikt:en:suggestus#Latin|suggestu]] [[wikt:en:pronuntiatus#Latin|pronuntiata]]
**<small>(カエサルは)</small>この事を演壇の前で宣言すると、
*eodem die cum legionibus in [[wikt:en:Senones#Latin|Senones]] [[wikt:en:proficiscor#Latin|proficiscitur]]
**同日に諸軍団とともにセノネース族のところに出発して、
*magnisque itineribus eo [[wikt:en:pervenio#Latin|pervenit]].
**強行軍でもってそこに到着した。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===4節===
*<span style="background-color:#ffd;">[[/注解/4節]] {{進捗|00%|2024-10-09}}</span>
;セノネース族のアッコーが造反するが、カエサルはセノネース族とカルヌーテース族を降伏させる
*<!--❶-->[[wikt:en:cognitus#Participle|Cognito]] eius [[wikt:en:adventus#Latin|adventu]],
**彼<small>〔カエサル〕</small>の到来を知ると、
*[[wikt:en:Acco#Latin|Acco]], qui princeps eius consilii fuerat,
**その画策の首謀者であった<small>(セノネース族の)</small>'''アッコー''' は、
*[[wikt:en:iubeo#Latin|iubet]] in oppida multitudinem [[wikt:en:convenio#Latin|convenire]].
**群衆に諸[[w:オッピドゥム|城塞都市]]に集結することを命じる。
:
*[[wikt:en:conans#Latin|Conantibus]], [[wikt:en:priusquam|prius quam]] id [[wikt:en:effici|effici]] posset, [[wikt:en:adsum#Latin|adesse]] Romanos [[wikt:en:nuntio#Verb|nuntiatur]].
**そのことが遂行され得るより前に、ローマ人が接近していることが、企てている者たちに報告される。
:
*<!--❷-->Necessario [[wikt:en:sententia#Latin|sententia]] [[wikt:en:desisto#Latin|desistunt]]
**<small>(セノネース族は)</small>やむなく<small>(カエサルへの謀反の)</small>意図を思いとどまって、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:necessario#Adverb|necessāriō]] = [[wikt:en:necessarie#Adverb|necessāriē]]「やむを得ず」)</span>
*legatosque [[wikt:en:deprecor#Latin|deprecandi]] causa ad Caesarem mittunt;
**<small>(恩赦を)</small>嘆願するために、使節たちをカエサルのもとへ遣わして、
*<u>adeunt</u> per [[wikt:en:Aedui#Latin|Haeduos]], quorum [[wikt:en:antiquitus|antiquitus]] erat in fide civitas.
**部族国家が昔から<small>(ローマ人に対して)</small>忠実であった[[w:ハエドゥイ族|ハエドゥイー族]]を介して、頼み込む。
**:<span style="color:#009900;">(訳注:この部分は、セノネース族がハエドゥイー族の庇護下にあったように訳されることも多いが、<br> [[ガリア戦記 第5巻#54節|第5巻54節]]における両部族とローマ人の関係の記述を考慮して、上のように訳した<ref>[[s:en:Commentaries_on_the_Gallic_War/Book_6#4|英語版ウィキソース]]では「they make advances to him through the Aedui, whose state was from ancient times under the protection of Rome.」と英訳されている。</ref>。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:de:adire|adeō]]「(誰かに)アプローチする」「(誰かに)頼る、頼む、懇願する」<ref>[https://www.frag-caesar.de/lateinwoerterbuch/adeo-uebersetzung-1.html adeo-Übersetzung im Latein Wörterbuch]</ref>)</span>
:
*<!--❸-->Libenter Caesar [[wikt:en:petens#Latin|petentibus]] [[wikt:en:Aedui#Latin|Haeduis]] dat [[wikt:en:venia#Latin|veniam]]
**カエサルは、懇願するハエドゥイー族に対して、喜んで<small>(セノネース族への)</small>恩赦を与え、
*[[wikt:en:excusatio#Latin|excusationem]]<nowiki>que</nowiki> accipit,
**<small>(セノネース族の)</small>弁解を受け入れる。
*quod [[wikt:en:aestivus#Latin|aestivum]] tempus [[wikt:en:instans#Latin|instantis]] belli,
**というのは、夏の時季は差し迫っている<small>(エブローネース族らとの)</small>戦争のためのものであり、
*non [[wikt:en:quaestio#Latin|quaestionis]] esse [[wikt:en:arbitror#Latin|arbitrabatur]].
**<small>(謀反人に対する)</small>尋問のためのものではないと<small>(カエサルが)</small>判断していたからである。
**:<span style="color:#009900;">(訳注:エブローネース族との戦争が終わった後に、謀反人への尋問が行なわれることになる。[[#44節|44節]]参照。)</span>
:
*<!--❹-->Obsidibus [[wikt:en:imperatus#Latin|imperatis]] centum,
**<small>(カエサルは)</small>100人の人質<small>(の供出)</small>を命令すると、
*hos Haeduis [[wikt:en:custodiendus#Latin|custodiendos]] [[wikt:en:trado#Latin|tradit]].
**彼ら<small>〔人質たち〕</small>を監視するべく[[w:ハエドゥイ族|ハエドゥイー族]]に引き渡す。
:
*<!--❺-->[[wikt:en:eodem#Adverb|Eodem]] [[wikt:en:Carnutes#Latin|Carnutes]] legatos obsidesque [[wikt:en:mitto#Latin|mittunt]],
**ちょうどそこに、カルヌーテース族が使節たちと人質たちを遣わして、
*[[wikt:en:usus#Participle|usi]] [[wikt:en:deprecator#Latin|deprecatoribus]] [[wikt:en:Remi#Proper_noun_3|Remis]], quorum erant in [[wikt:en:clientela#Latin|clientela]];
**<small>(カルヌーテース族が)</small><ruby><rb>[[w:クリエンテス|庇護]]</rb><rp>(</rp><rt>クリエンテーラ</rt><rp>)</rp></ruby>を受ける関係にあったレーミー族を<ruby><rb>助命仲介者</rb><rp>(</rp><rt>デープレカートル</rt><rp>)</rp></ruby>として利用して、
*eadem ferunt [[wikt:en:responsum#Latin|responsa]].
**<small>(セノネース族のときと)</small>同じ返答を獲得する。
:
*<!--❻-->[[wikt:en:perago#Latin|Peragit]] [[wikt:en:concilium#Noun|concilium]] Caesar
**カエサルは<small>(ガッリア諸部族の領袖たちの)</small>会合を完了して、
*equitesque [[wikt:en:impero#Latin|imperat]] civitatibus.
**[[w:騎兵|騎兵]]たち<small>(の供出)</small>を諸部族に命令する。
<!--
<span style="color:#009900;"></span>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===5節===
*<span style="background-color:#ffd;">[[/注解/5節]] {{進捗|00%|2024-10-10}}</span>
;アンビオリークスへの策を練り、メナピイー族へ向かう
*<!--❶-->Hac parte Galliae [[wikt:en:pacatus#Latin|pacata]],
**ガッリアのこの方面が平定されたので、
**:<span style="color:#009900;">(訳注:[[#3節|3節]]~[[#4節|4節]]でネルウィイー族、セノネース族とカルヌーテース族がカエサルに降伏したことを指す。)</span>
*totus et mente et animo in bellum [[wikt:en:Treveri#Latin|Treverorum]] et [[wikt:en:Ambiorix#Latin|Ambiorigis]] [[wikt:en:insisto#Latin|insistit]].
**<small>(カエサルは)</small>全身全霊をかけて、トレーウェリー族と[[w:アンビオリクス|アンビオリークス]]との戦争に着手する。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:totus et [[wikt:en:mens#Latin|mente]] et [[wikt:en:animus#Latin|animo]] 「全身全霊をかけて」''with all his heart and soul'' )</span>
:
*<!--❷-->[[wikt:en:Cavarinus#Latin|Cavarinum]] cum equitatu [[wikt:en:Senones#Latin|Senonum]] [[wikt:en:secum#Latin|secum]] [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iubet]],
**カウァリーヌスに、セノネース族の[[w:騎兵|騎兵]]隊を伴って、自分<small>〔カエサル〕</small>とともに出発することを命じる。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:de:Cavarinus|Cavarinus]]'' は、[[ガリア戦記 第5巻#54節|第5巻54節]]で前述のように、<br> カエサルにより王位に据えられていたが、独立主義勢力により追放された。)</span>
*ne [[wikt:en:aliquis#Latin|quis]] <u>aut</u> ex huius [[wikt:en:iracundia#Latin|iracundia]] <u>aut</u> ex eo, quod [[wikt:en:mereo#Latin|meruerat]], [[wikt:en:odium#Latin|odio]] civitatis [[wikt:en:motus#Noun_2|motus]] [[wikt:en:exsistat|exsistat]].
**彼の激しやすさから、<u>あるいは</u>彼が招来していた反感から、部族国家の何らかの動乱が起こらないようにである。
**:<span style="color:#009900;">(訳注:前節でアッコーら独立主義者たちがカエサルに降伏して、<br> カウァリーヌスが王位に戻されたために、<br> 部族内で反感をかっていたのであろう。)</span>
:
*<!--❸-->His rebus [[wikt:en:constitutus#Participle|constitutis]],
**これらの事柄が取り決められると、
*quod pro explorato habebat, [[wikt:en:Ambiorix#Latin|Ambiorigem]] [[wikt:en:proelium#Latin|proelio]] non esse <u>concertaturum</u>,
**<small>(カエサルは)</small>[[w:アンビオリクス|アンビオリークス]]が戦闘で激しく争うつもりではないことを、確実と見なしていたので、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[wikt:en:pro#Latin|pro]] [[wikt:en:exploratus#Latin|explorato]] = [[wikt:en:exploratus#Latin|exploratum]]「確かなものとして(''as certain'')」)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、χ系(A・Q)およびL・N写本では non esse <u>[[wikt:en:concertaturum|concertaturum]]</u>「激しくつもりではないこと」だが、<br> β系写本では non esse <u>[[wikt:en:contenturum|contenturum]]</u><br> B・M・S写本では non esse <u>concertaturum [[wikt:en:tenturum|tenturum]]</u> となっている。)</span>
*reliqua eius [[wikt:en:consilium#Latin|consilia]] animo [[wikt:en:circumspicio#Latin|circumspiciebat]].
**彼<small>〔アンビオリークス〕</small>のほかの計略に思いをめぐらせていた。
:
; カエサルがメナピイー族の攻略を決意
*<!--❹-->Erant [[wikt:en:Menapii#Latin|Menapii]] propinqui [[wikt:en:Eburones#Latin|Eburonum]] finibus,
**メナピイー族は[[w:エブロネス族|エブローネース族]]の領土に隣り合っていて、
*[[wikt:en:perpetuus#Latin|perpetuis]] [[wikt:en:palus#Latin|paludibus]] [[wikt:en:silva#Latin|silvis]]<nowiki>que</nowiki> [[wikt:en:munitus#Latin|muniti]],
**絶え間ない沼地と森林によって守られており、
*qui uni ex Gallia de pace ad Caesarem legatos [[wikt:en:numquam#Latin|numquam]] [[wikt:en:mitto#Latin|miserant]].
**彼らは[[w:ガリア|ガッリア]]のうちでカエサルのもとへ講和の使節たちを決して遣わさなかった唯一の者たちであった。
:
*Cum his esse [[wikt:en:hospitium#Latin|hospitium]] [[wikt:en:Ambiorix#Latin|Ambiorigi]] [[wikt:en:scio#Latin|sciebat]];
**<small>(カエサルは)</small>[[w:アンビオリクス|アンビオリークス]]が彼らのもとで歓待されていることを知っていたし、
*item per [[wikt:en:Treveri#Latin|Treveros]] venisse Germanis in [[wikt:en:amicitia#Latin|amicitiam]] [[wikt:en:cognosco#Latin|cognoverat]].
**同様にトレーウェリー族を通じて[[w:ゲルマニア|ゲルマーニア]]人と盟約を結んだことも探知していた。
:
*<!--❺-->Haec <u>prius</u> illi [[wikt:en:detrahendus#Latin|detrahenda]] auxilia [[wikt:en:existimo#Latin|existimabat]] <u>quam</u> ipsum bello [[wikt:en:lacesso#Latin|lacesseret]],
**<ruby><rb>彼奴</rb><rp>(</rp><rt>あやつ</rt><rp>)</rp></ruby><small>〔アンビオリークス〕</small>へのこれらの支援は、彼奴自身に戦争で挑みかかる<u>より前に</u>引き離されるべきだと考えていた。
*ne [[wikt:en:desperatus#Latin|desperata]] [[wikt:en:salus#Latin|salute]]
**<small>(アンビオリークスが)</small>身の安全に絶望して、
*<u>aut</u> se in [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:abdo#Latin|abderet]],
**<u>あるいは</u>メナピイー族のところに身を隠したりしないように、
*<u>aut</u> cum [[wikt:en:Transrhenanus#Latin|Transrhenanis]] [[wikt:en:congredior#Latin|congredi]] [[wikt:en:cogo#Latin|cogeretur]].
**<u>あるいは</u>レーヌス<small>〔[[w:ライン川|ライン川]]〕</small>の向こう側の者たちと合同することを強いられないように、である。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''Germani Transrhenani'' 「レーヌスの向こう側のゲルマーニア人」(東岸の諸部族)を<br> ''[[w:en:Germani cisrhenani|Germani Cisrhenani]]''「レーヌスのこちら側のゲルマーニア人」(西岸の諸部族) が<br> 招き寄せているというのが『ガリア戦記』の主張である。)</span>
:
*<!--❻-->Hoc [[wikt:en:initus#Participle|inito]] consilio,
**この計略を決断すると、
*[[wikt:en:totus#Etymology_1|totius]] exercitus [[wikt:en:impedimentum#Latin|impedimenta]] ad [[wikt:en:Labienus#Latin|Labienum]] in [[wikt:en:Treveri#Latin|Treveros]] [[wikt:en:mitto#Latin|mittit]]
**<small>(カエサルは)</small>全軍の[[w:輜重|輜重]]を、トレーウェリー族のところにいる[[w:ティトゥス・ラビエヌス|ラビエーヌス]]のもとへ送り、
*duasque ad eum legiones [[wikt:en:proficiscor#Latin|proficisci]] [[wikt:en:iubeo#Latin|iubet]];
**2個[[w:ローマ軍団|軍団]]に彼<small>〔ラビエーヌス〕</small>のもとへ出発することを命じる。
:
*ipse cum legionibus [[wikt:en:expeditus#Participle|expeditis]] quinque in [[wikt:en:Menapii#Latin|Menapios]] [[wikt:en:proficiscor#Latin|proficiscitur]].
**<small>(カエサル)</small>自身は軽装の5個軍団とともにメナピイー族のところに出発する。
:
*<!--❼-->Illi, [[wikt:en:nullus#Adjective|nulla]] [[wikt:en:coactus#Latin|coacta]] [[wikt:en:manus#Latin|manu]],
**あの者らは、何ら手勢を集めず、
*loci [[wikt:en:praesidium#Latin|praesidio]] [[wikt:en:fretus#Adjective|freti]],
**地勢の要害を信頼して、
*in [[wikt:en:silva#Latin|silvas]] [[wikt:en:palus#Latin|paludes]]<nowiki>que</nowiki> [[wikt:en:confugio#Latin|confugiunt]]
**森林や沼地に避難して、
*[[wikt:en:suus#Latin|sua]]<nowiki>que</nowiki> [[wikt:en:eodem#Adverb|eodem]] [[wikt:en:confero#Latin|conferunt]].
**自分たちの家財を同じところに運び集める。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===6節===
*<span style="background-color:#ffd;">[[/注解/6節]] {{進捗|00%|2024-10-20}}</span>
;メナピイー族がついにカエサルの軍門に降る
*<!--❶-->Caesar,
**カエサルは、
*[[wikt:en:partitus#Latin|partitis]] copiis cum [[wikt:en:Gaius#Latin|Gaio]] [[wikt:en:Fabius#Latin|Fabio]] legato et [[wikt:en:Marcus#Latin|Marco]] [[wikt:en:Crassus#Latin|Crasso]] [[wikt:en:quaestor#Latin|quaestore]]
**[[w:レガトゥス|副官]]である[[w:ガイウス・ファビウス|ガーイウス・ファビウス]]と[[w:クァエストル|財務官]]である[[w:マルクス・リキニウス・クラッスス (財務官)|マールクス・クラッスス]]とともに軍勢を分配して、
*celeriterque [[wikt:en:effectus#Participle|effectis]] [[wikt:en:pons#Latin|pontibus]]
**速やかに橋梁を造って、
**:<span style="color:#009900;">(訳注:橋梁は軽装の軍団兵が沼地を渡るためのものなので、丸太道のようなものであろうか。)</span>
*[[wikt:en:adeo#Verb|adit]] [[wikt:en:tripertito|tripertito]],
**三方面から<small>(メナピイー族の領土に)</small>接近して、
[[画像:GallischeHoeve.jpg|thumb|right|200px|復元されたメナピイー族の住居(再掲)]]
*[[wikt:en:aedificium#Latin|aedificia]] [[wikt:en:vicus#Latin|vicos]]<nowiki>que</nowiki> [[wikt:en:incendo#Latin|incendit]],
**建物や村々を焼き討ちして、
*magno [[wikt:en:pecus#Latin|pecoris]] atque hominum numero [[wikt:en:potior#Latin|potitur]].
**家畜や人間の多数を<small>(戦利品として)</small>獲得する。
:
*<!--❷-->Quibus rebus [[wikt:en:coactus#Participle|coacti]]
**そのような事態に強いられて、
*[[wikt:en:Menapii#Latin|Menapii]] legatos ad eum [[wikt:en:pax#Latin|pacis]] [[wikt:en:petendus#Latin|petendae]] causa [[wikt:en:mitto#Latin|mittunt]].
**メナピイー族は和平を求めるための使節たちを彼<small>〔カエサル〕</small>のもとへ遣わす。
:
*<!--❸-->Ille [[wikt:en:obses#Latin|obsidibus]] [[wikt:en:acceptus#Latin|acceptis]],
**彼<small>〔カエサル〕</small>は人質たちを受け取ると、
*hostium se [[wikt:en:habiturus#Latin|habiturum]] numero [[wikt:en:confirmo#Latin|confirmat]], si aut [[wikt:en:Ambiorix#Latin|Ambiorigem]] aut eius legatos finibus suis [[wikt:en:recipio#Latin|recepissent]].
**もし[[w:アンビオリクス|アンビオリークス]]か彼の使節を自領に迎え入れたら、自分は<small>(メナピイー族を)</small>敵として見なすだろうと断言する。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:属格の名詞 + numero「〜として」)
:
*<!--❹-->His [[wikt:en:confirmatus#Latin|confirmatis]] rebus,
**これらの事柄を確立すると、
*[[wikt:en:Commius#Latin|Commium]] [[wikt:en:Atrebas#Latin|Atrebatem]] cum [[wikt:en:equitatus#Latin|equitatu]] [[wikt:en:custos#Latin|custodis]] loco in [[wikt:en:Menapii#Latin|Menapiis]] [[wikt:en:relinquo#Latin|relinquit]];
**アトレバーテース族である[[w:コンミウス|コンミウス]]を[[w:騎兵|騎兵]]隊とともに、目付け役として、メナピイー族のところに残す。
**:<span style="color:#009900;">(訳注:コンミウスは、カエサルがアトレバテース族の王にすえて、ブリタンニア遠征の先導役として遣わし、<br> カッスィウェッラウヌスの降伏の仲介を</span>果たしていた。[[ガリア戦記 第4巻#21節|第4巻21節]]・27節や[[ガリア戦記 第5巻#22節|第5巻22節]]などを参照。)
*ipse in [[wikt:en:Treveri#Latin|Treveros]] [[wikt:en:proficiscor#Latin|proficiscitur]].
**<small>(カエサル)</small>自身はトレーウェリー族のところに出発する。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===7節===
*<span style="background-color:#ffd;">[[/注解/7節]] {{進捗|00%|2024-10-27}}</span>
[[画像:Titelberg_01.jpg|thumb|right|200px|トレーウェリー族の城砦跡(再掲)]]
;トレーウェリー族の開戦準備、ラビエーヌスの計略
*<!--❶-->Dum haec a Caesare [[wikt:en:gero#Latin|geruntur]],
**これらのことがカエサルによって遂行されている間に、
*[[wikt:en:Treveri#Latin|Treveri]] magnis [[wikt:en:coactus#Participle|coactis]] [[wikt:en:peditatus#Latin|peditatus]] [[wikt:en:equitatus#Etymology_1|equitatus]]<nowiki>que</nowiki> copiis
**トレーウェリー族は、[[w:歩兵|歩兵]]隊と[[w:騎兵|騎兵]]隊の大軍勢を徴集して、
*[[wikt:en:Labienus#Latin|Labienum]] cum una legione, quae in eorum finibus <u>[[wikt:en:hiemo#Latin|hiemaverat]]</u>,
**彼らの領土において越冬していた1個[[w:ローマ軍団|軍団]]とともに[[w:ティトゥス・ラビエヌス|ラビエーヌス]]を、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、α系写本では [[wikt:en:hiemaverat|hiemaverat]] <small>(過去完了形)</small> だが、<br> β系写本では [[wikt:en:hiemabat|hiemabat]] <small>(未完了過去形)</small> などとなっている。)</span>
*[[wikt:en:adorior#Latin|adoriri]] [[wikt:en:paro#Latin|parabant]],
**襲撃することを準備していた。
:
*<!--❷-->iamque ab eo non longius [[wikt:en:biduum#Latin|bidui]] via [[wikt:en:absum#Verb|aberant]],
**すでに、そこ<small>〔ラビエーヌスの冬営〕</small>から2日間の道のりより遠く離れていなかったが、
*cum duas venisse legiones [[wikt:en:missus#Noun_2|missu]] Caesaris [[wikt:en:cognosco#Latin|cognoscunt]].
**そのときに、カエサルが派遣した2個軍団が到着したことを知る。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[#5節|5節]]で既述のように、カエサルはラビエーヌスのところへ全軍の輜重と2個軍団を派遣していた。<br> こうして、ラビエーヌスはローマ全軍の輜重と3個軍団を任されることになった。)
:
*<!--❸-->[[wikt:en:positus#Latin|Positis]] <u>castris</u> a milibus passuum [[wikt:en:quindecim#Latin|quindecim]](XV)
**<small>(トレーウェリー勢は、ラビエーヌスの冬営から)</small>15ローママイルのところに<u>野営地</u>を設置して、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位#ミーッレ・パッスーム、ミーリア(ローママイル)|ローママイル]]は約1.48 kmで、15マイルは約22 km)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:[[w:カストラ|カストラ]] [[wikt:en:castra#Latin|castra]] という語はローマ勢の行軍中の野営地や常設の宿営地に用いられ、<br> 非ローマ系部族の野営地に用いられることは稀である。)</span>
*auxilia [[wikt:en:Germani#Latin|Germanorum]] [[wikt:en:exspecto#Latin|exspectare]] [[wikt:en:constituo#Latin|constituunt]].
**[[w:ゲルマニア|ゲルマーニア]]人の援軍を待つことを決める。
:
*<!--❹-->[[wikt:en:Labienus#Latin|Labienus]] hostium [[wikt:en:cognitus#Participle|cognito]] consilio
**ラビエーヌスは、敵勢<small>〔トレーウェリー族〕</small>の計略を知ると、
*[[wikt:en:sperans#Latin|sperans]] [[wikt:en:temeritas#Latin|temeritate]] eorum [[wikt:en:fore#Etymology_2_2|fore]] [[wikt:en:aliqui#Latin|aliquam]] [[wikt:en:dimico#Latin|dimicandi]] facultatem,
**彼らの無謀さにより何らかの争闘する機会が生ずるであろうと期待して、
*[[wikt:en:praesidium#Latin|praesidio]] quinque(V) cohortium [[wikt:en:impedimentum#Latin|impedimentis]] [[wikt:en:relictus#Latin|relicto]]
**5個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>の守備隊を[[w:輜重|輜重]]のために残し、
*cum XXV(viginti quinque) cohortibus magnoque [[wikt:en:equitatus#Etymology_1|equitatu]] contra hostem [[wikt:en:proficiscor#Latin|proficiscitur]]
**25個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>および多勢の騎兵隊とともに、敵に抗して進発する。
*et mille passuum [[wikt:en:intermissus#Latin|intermisso]] spatio castra [[wikt:en:communio#Latin|communit]].
**<small>(トレーウェリー勢から)</small>1ローママイルの間隔を置いて、[[w:カストラ|陣営]]<small>〔野営地〕</small>を固める。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1[[ガイウス・ユリウス・カエサルの著作/通貨・計量単位#ミーッレ・パッスーム、ミーリア(ローママイル)|ローママイル]]は約1.48 km)</span>
:
*<!--❺-->Erat inter [[wikt:en:Labienus#Latin|Labienum]] atque hostem [[wikt:en:difficilis#Latin|difficili]] [[wikt:en:transitus#Latin|transitu]] flumen [[wikt:en:ripa#Latin|ripis]]<nowiki>que</nowiki> [[wikt:en:praeruptus#Adjective|praeruptis]].
**ラビエーヌスと敵の間には、渡ることが困難な川が、急峻な岸とともにあった。
*Hoc <u>neque</u> ipse [[wikt:en:transeo#Latin|transire]] habebat in animo
**これを<small>(ラビエーヌス)</small>自身は渡河するつもりではなかったし、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:~ habeo in animo「~するつもりである」)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:neque ~, neque …「~でもないし、…でもない」)</span>
*<u>neque</u> hostes [[wikt:en:transiturus#Latin|transituros]] [[wikt:en:existimo#Latin|existimabat]].
**敵勢も渡河して来ないであろうと<small>(ラビエーヌスは)</small>考えていた。
:
*<!--❻-->[[wikt:en:augeo#Latin|Augebatur]] auxiliorum [[wikt:en:cotidie#Latin|cotidie]] spes.
**<small>(トレーウェリー勢にとって、ゲルマーニア人の)</small>援軍への期待は日ごとに増されるばかりであった。
*[[wikt:en:loquor#Latin|Loquitur]] <u>in consilio</u> [[wikt:en:palam#Adverb|palam]]:
**<small>(ラビエーヌスは)</small>会議において公然と<small>(以下のように)</small>述べる。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、主要写本ωでは in [[wikt:en:consilio|consilio]] だが、<br> [[ガリア戦記/注解編/写本と校訂版#Aldus|Aldus]] は in [[wikt:en:concilium#Latin|concilio]] と修正提案し、<br> Hecker は [[wikt:en:consulto#Adverb|consulto]] と修正提案している。)</span>
*[[wikt:en:quoniam#Latin|quoniam]] [[wikt:en:Germani#Latin|Germani]] [[wikt:en:adpropinquo#Latin|adpropinquare]] [[wikt:en:dico#Latin|dicantur]],
**ゲルマーニア人<small>(の軍勢)</small>が近づいていることが言われているので、
*sese suas exercitusque fortunas in [[wikt:en:dubium#Noun|dubium]] non [[wikt:en:devocaturus#Latin|devocaturum]]
**自分は自らと軍隊の命運を不確実さの中に引きずり込むことはないであろうし、
*et postero die prima luce castra [[wikt:en:moturus#Latin|moturum]].
**翌日の夜明けには陣営を引き払うであろう。
:
*<!--❼-->Celeriter haec ad hostes [[wikt:en:defero#Latin|deferuntur]],
**これら<small>(のラビエーヌスの発言)</small>は速やかに敵勢<small>〔トレーウェリー族〕</small>のもとへ報じられたので、
*ut ex magno Gallorum equitum numero [[wikt:en:nonnullus#Latin|non nullos]] <u>Gallos</u> [[wikt:en:gallicus#Latin|Gallicis]] rebus [[wikt:en:faveo#Latin|favere]] natura [[wikt:en:cogo#Latin|cogebat]].
**ガッリア人の境遇を想う気質が、<small>(ローマ側)</small>ガッリア人騎兵の多数のうちの若干名を励ましていたほどである。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部の [[wikt:en:Gallus#Noun|Gallos]] は α系写本の記述で、β系写本では欠く。)</span>
:
*<!--❽-->[[wikt:en:Labienus#Latin|Labienus]], noctu tribunis militum primisque ordinibus <u>convocatis</u>,
**ラビエーヌスは、夜間に<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby>たちと第一序列(の[[w:ケントゥリオ|百人隊長]])たちを召集すると、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:1個軍団当たりの<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby> の定員は計6名。<br> 第一序列の<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオー</rt><rp>)</rp></ruby>たち primorum ordinum centuriones は、軍団内における[[w:下士官|下士官]]のトップであり、<br> 第一<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> においては定員5名だが、<br> ほかの歩兵大隊においては定員6名であった。)</span>
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部は、α系写本では [[wikt:en:convocatus#Latin|convocatis]] だが、<br> β系写本では [[wikt:en:coactus#Participle|coactis]] などとなっている。)</span>
*quid sui sit consilii, [[wikt:en:propono#Latin|proponit]]
**自分の計略がいかなるものであるかを呈示して、
*et, quo facilius hostibus [[wikt:en:timor#Latin|timoris]] [[wikt:en:det#Latin|det]] [[wikt:en:suspicio#Noun|suspicionem]],
**それ<small>〔計略〕</small>によって、よりたやすく敵勢に<small>(ローマ勢の)</small>恐怖心という推測を起こすべく、
*maiore [[wikt:en:strepitus#Latin|strepitu]] et [[wikt:en:tumultus#Latin|tumultu]], quam populi Romani fert [[wikt:en:consuetudo#Latin|consuetudo]]
**ローマ国民の習慣が引き起こすよりもより大きな騒音や喧騒をもって
*castra [[wikt:en:moveo#Latin|moveri]] [[wikt:en:iubeo#Latin|iubet]].
**陣営を引き払うことを命じる。
*His rebus fugae [[wikt:en:similis#Latin|similem]] [[wikt:en:profectio#Latin|profectionem]] [[wikt:en:efficio#Latin|effecit]].
**<small>(ラビエーヌスは)</small>これらの事によって、逃亡に似た進発を実現した。
:
*<!--❾-->Haec quoque per [[wikt:en:explorator#Latin|exploratores]]
**これらのこともまた、<small>(トレーウェリー勢の)</small>斥候たちを通じて、
*ante [[wikt:en:lux#Latin|lucem]] in tanta [[wikt:en:propinquitas#Latin|propinquitate]] castrorum ad hostes [[wikt:en:defero#Latin|deferuntur]].
**夜明け前には、陣営のこれほどの近さにより、敵勢へ報じられる。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
===8節===
*<span style="background-color:#ffd;">[[/注解/8節]] {{進捗|00%|2024-10-28}}</span>
;ラビエーヌスがトレーウェリー族を降す
*<!--❶-->Vix agmen novissimum extra munitiones processerat,
**やっと<small>(ローマ勢の)</small>隊列の最後尾が城砦の外側に進み出ようとしていた、
*cum Galli cohortati inter se, ne speratam praedam ex manibus dimitterent
**そのときにガッリア人たちは、期待していた戦利品を<small>(彼らの)</small>手から逸しないように、互いに鼓舞し合って、
*── longum esse perterritis Romanis Germanorum auxilium exspectare,
**── ローマ人が脅かされているのに、[[w:ゲルマニア|ゲルマーニア]]人の援軍を待つことは長たらしいものである。
*neque suam pati dignitatem,
**<small>(以下のことは)</small>自分たちの品格が耐えられない。
*ut tantis copiis tam exiguam manum, praesertim fugientem atque impeditam,
**これほどの大軍勢で<small>(ローマの)</small>手勢のそれほどの貧弱さを、とりわけ逃げ出して足手まといになっている者たちを
*adoriri non audeant ──
**あえて襲撃しないとは──<small>(と鼓舞し合って)</small>
*flumen transire et iniquo loco committere proelium non dubitant.
**川を渡って、<small>(切り立った岸を登りながら)</small>不利な場所で交戦することをためらわなかった。
:
*<!--❷-->Quae fore suspicatus Labienus,
**そのようなことになることを想像していた[[w:ティトゥス・ラビエヌス|ラビエーヌス]]は、
*ut omnes citra flumen eliceret,
**<small>(敵の)</small>総勢を川のこちら側に誘い出すように、
*eadem usus simulatione itineris placide progrediebatur.
**行軍の同じ見せかけを用いて、穏やかに前進した。
:
*<!--❸-->Tum praemissis paulum impedimentis atque in tumulo quodam conlocatis
**それから、[[w:輜重|輜重]](の隊列)を少し先に遣わして、ある丘に配置した。
*<!--▲直接話法--><span style="background-color:#e8e8ff;"><span style="color:#009900;">«</span> Habetis,<span style="color:#009900;">»</span></span> inquit, <!--▲直接話法--><span style="background-color:#e8e8ff;"><span style="color:#009900;">«</span>milites, quam petistis facultatem; </span>
**<small>(ラビエーヌスは)</small>「兵士らよ、汝らは求めていた機会を持っているぞ。」と言った。
*<span style="background-color:#e8e8ff;">hostem impedito atque iniquo loco tenetis: </span>
**「敵たちは<small>(岸で)</small>妨げられて、不利な場所を占めている。」
:
*<!--❹--><span style="background-color:#e8e8ff;">praestate eandem nobis ducibus virtutem, quam saepe numero imperatori praestitistis, </span>
**「我々指導者たちに、しばしば将軍<small>〔カエサル〕</small>に示したのと同じ武勇を示してくれ。」
*<span style="background-color:#e8e8ff;">atque illum adesse et haec coram cernere existimate.<span style="color:#009900;">»</span></span>
**「彼<small>〔カエサル〕</small>が訪れて、これ<small>〔武勇〕</small>を目の前で見ていると考えてくれ。」
:
*<!--❺-->Simul signa ad hostem converti
**同時に、軍旗が敵の方へ向きを変えられること、
**:<span style="color:#009900;">(訳注:軍勢を敵側へ向けて反転すること)</span>
*aciemque dirigi iubet,
**戦列が整えられること、を命じた。
*et paucis turmis praesidio ad impedimenta dimissis
**かつ若干の[[w:トゥルマ|騎兵小隊]]を輜重のための守備隊として送り出して、
**:<span style="color:#009900;">(訳注:騎兵小隊 turma はローマ軍の[[w:アウクシリア|支援軍]]における中規模の編成単位で、<br> 各30騎ほどと考えられている。)</span>
*reliquos equites ad latera disponit.
**残りの[[w:騎兵|騎兵]]たちを<small>(軍勢の)</small>側面へ分置した。
:
*<!--❻-->Celeriter nostri clamore sublato pila in hostes immittunt.
**速やかに、我が方<small>〔ローマ勢〕</small>は雄叫びを上げて、[[w:ピルム|ピールム]](投槍)を敵勢へ放り入れた。
*Illi, ubi praeter spem, quos <modo> fugere credebant, infestis signis ad se ire viderunt,
**彼らは、ただ逃げると信じていた者たちが、期待に反して、軍旗を攻勢にして自分らの方へ来るのを見るや否や、
[[画像:Pilensalve.jpg|thumb|right|200px|[[w:ピルム|ピールム]](投槍)を投げるローマ軍兵士(帝政期)の再演]]
*impetum <u>modo</u> ferre non potuerunt
**<small></small>(ローマ勢の)突撃を持ちこたえることができずに、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:下線部 modo は主要写本ωではこの位置にあるが、<br> 上記の <modo> に移す修正提案がある。)</span>
*ac primo concursu in fugam coniecti proximas silvas petierunt.
**最初の戦闘で逃亡に追い込まれて、近隣の森へ急いだ。
:
*<!--❼-->Quos Labienus equitatu consectatus,
**その<small>(敗走した)</small>者たちを、ラビエーヌスは騎兵隊で追い付いて、
*magno numero interfecto, compluribus captis,
**多数を殺戮して、かなりの者たちを捕らえて、
*paucis post diebus civitatem recepit.
**わずかな日々の後に<small>(トレーウェリーの)</small>部族を<small>(インドゥーティオマールスらの蜂起の前のように)</small>元に戻した。
[[画像:Bund-ro-altburg.jpg|thumb|right|180px|トレーウェリー族の再現された住居(再掲)]]
[[画像:Trier_Kaiserthermen_BW_1.JPG|thumb|right|180px|トレーウェリー族(Treveri)の名を現代に伝えるドイツの[[w:トリーア|トリーア市]](Trier)に残るローマ時代の浴場跡]]
*Nam Germani qui auxilio veniebant
**一方で、援軍として来ようとしていたゲルマーニア人たちは、
*percepta Treverorum fuga sese domum receperunt.
**トレーウェリー族の逃亡を把握したので、故国に撤退していった。
:
*<!--❽-->Cum his propinqui Indutiomari,
**彼ら<small></small>(ゲルマーニア人)とともに、インドゥーティオマールスの縁者たちは、
*qui defectionis auctores fuerant,
**その者らは<small></small>(トレーウェリー族におけるカエサルへの)背反の張本人であったが、
*comitati eos ex civitate excesserunt.
**彼ら<small></small>(ゲルマーニア人)を伴って、部族(の領内)から出て行った。
:
*<!--❾-->Cingetorigi,
**キンゲトリークスに対しては、
*quem ab initio permansisse in officio demonstravimus,
**その者は前述したように始めから<small></small>(ローマへの)忠節に留まり続けていた者であるが、
**:<span style="color:#009900;">(訳注:キンゲトリークスについては、[[ガリア戦記 第5巻#3節|第5巻3節]]~4節・[[ガリア戦記 第5巻#56節|56節]]~57節で述べられている。)</span>
*principatus atque imperium est traditum.
**首長の地位と軍隊司令権が委託された。
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
==第二次ゲルマーニア遠征==
===9節===
'''再びレーヌスを渡河、ウビイー族を調べる'''
*① Caesar, postquam ex Menapiis in Treveros venit,
**カエサルは、メナピイー族のところからトレーウェリー族のところに来た後で、
*duabus de causis Rhenum transire constituit;
**二つの理由からレーヌス(=[[w:ライン川|ライン川]])を渡ることを決めた。
*② quarum una erat, quod auxilia contra se Treveris miserant,
**その(理由の)一つは、(ゲルマーニア人が)自分(カエサル)に対抗して、トレーウェリー族に援軍を派遣していたことであった。
*altera, ne ad eos Ambiorix receptum haberet.
**もう一つ(の理由)は、彼らのところへ[[w:アンビオリクス|アンビオリクス]]が避難所を持たないように、ということであった。
*③ His constitutis rebus
**これらの事柄を決定すると、
*paulum supra eum locum, quo ante exercitum traduxerat,
**以前に軍隊を渡らせていた場所の少し上流に、
*facere pontem instituit.
**橋を造ることを決意した。
*④ Nota atque instituta ratione
**経験しかつ建造していた方法で、
*magno militum studio
**兵士の大きな熱意により
*paucis diebus opus efficitur.
**わずかな日数で作業が完遂された。
*⑤ Firmo in Treveris ad pontem praesidio relicto,
**トレーウェリー族(の領内)の橋のたもとへ強力な守備隊を残した。
*ne quis ab his subito motus oreretur,
**彼らによる何らかの動乱が突然に起こされないように。
*reliquas copias equitatumque traducit.
**残りの軍勢と騎兵隊を(レヌスの東岸へ)渡らせた。
*⑥ Ubii, qui ante obsides dederant atque in deditionem venerant,
**ウビイー族は、以前に(カエサルに対して)人質たちを供出していて、降伏していたが、
**(訳注:この事はすでに[[ガリア戦記 第4巻#16節|第4巻16節]]で述べられている。)
*purgandi sui causa ad eum legatos mittunt,
**自分たちの申し開きをすることのために、彼(カエサル)のところへ使節たちを遣わして、
*qui doceant
**(以下のように)説かせた。
*neque auxilia ex sua civitate in Treveros missa
**自分たちの部族から援軍をトレーウェリー族のところに派遣してもいないし、
*neque ab se fidem laesam:
**自分らにより(ローマへの)信義を傷つけてもいない、と。
*⑦ petunt atque orant ut
**(ウビイー族の使節たちは、以下のように)求め、かつ願った。
*sibi parcat,
**自分たちを容赦し、
*ne communi odio Germanorum innocentes pro nocentibus poenas pendant;
**[[w:ゲルマニア|ゲルマーニア]]人一般への憎しみから、潔白な者たちが加害者たちのために罰を償うことがないように、と。
*si amplius obsidum vellet, dare pollicentur.
**もし、より多くの人質を欲するのなら、供出することを約束する、と。
*⑧ Cognita Caesar causa
**カエサルは事情を調査して、
*reperit ab Suebis auxilia missa esse;
**スエービー族により(トレーウェリー族に)援軍が派遣されていたことを見出した。
*Ubiorum satisfactionem accipit,
**ウビイー族の弁解を受け入れて、
*aditus viasque in Suebos perquirit.
**スエービー族のところに出入りする道筋を問い質した。
===10節===
'''ウビイー族を通じてスエービー族の動静を探る'''
*① Interim paucis post diebus fit ab Ubiis certior
**わずかな日々の後の間に、ウビイー族によって報告されたことには、
*Suebos omnes in unum locum copias cogere
*スエービー族は、すべての軍勢を一か所に集めて、
**(訳注:後述するように、これはカッティー族 [[w:en:Chatti|Chatti]] のことであろう。)
*atque iis nationibus, quae sub eorum sint imperio,
**彼らの支配下にある種族たちに
*denuntiare, ut auxilia peditatus equitatusque mittant.
**[[w:歩兵|歩兵]]隊と[[w:騎兵|騎兵]]隊の援軍を派遣するように指示した。
*② His cognitis rebus
**(カエサルは)これらの事情を知ると、
*rem frumentariam providet, castris idoneum locum deligit;
**糧食調達を準備して、[[w:カストラ|陣営]](を設置するの)に適切な場所を選んだ。
*Ubiis imperat, ut pecora deducant suaque omnia ex agris in oppida conferant,
**ウビイー族には、家畜を連れ去り、自分たちの一切合財を土地から[[w:オッピドゥム|城市]]に運び集めるように命令した。
*sperans barbaros atque imperitos homines
**(カエサルが)期待したのは、野蛮で無知な連中が
*inopia cibariorum adductos ad iniquam pugnandi condicionem posse deduci;
**糧秣の欠乏に動かされて、不都合な条件のもとで戦うことがあり得るように誘引されることであった。
*③ mandat, ut crebros exploratores in Suebos mittant quaeque apud eos gerantur cognoscant.
**偵察者たちをたびたびスエービー族内に遣わして、彼らのもとで遂行されていることを知るように(ウビイー族に)委ねた。
*④ Illi imperata faciunt et paucis diebus intermissis referunt:
**彼ら(ウビイー族)は、命令されたことを実行して、わずかな日々を間に置いて(以下のことを)報告する。
*Suebos omnes, posteaquam certiores nuntii de exercitu Romanorum venerint,
**スエービー族は皆、ローマ人の軍隊についてより確実な報告がもたらされた後で、
*cum omnibus suis sociorumque copiis, quas coegissent,
**自分たちの軍勢と集結していた同盟者たちの軍勢とともに、
*penitus ad extremos fines se recepisse;
**領土の最も遠い奥深くまで撤退していた。
*⑤ silvam esse ibi infinita magnitudine, quae appellatur Bacenis;
**そこには、バケニスと呼ばれている限りない大きさの森林がある。
*hanc longe introrsus pertinere et pro nativo muro obiectam
**これは、はるか内陸に及んでいて、天然の防壁として横たわっており、
*[[wikt:en:Cheruscos|Cheruscos]] ab Suebis Suebosque ab [[wikt:en:Cheruscis|Cheruscis]] iniuriis incursionibusque prohibere:
**ケールスキー族をスエービー族から、スエービー族をケールスキー族から、無法行為や襲撃から防いでいる。
*ad eius initium silvae Suebos adventum Romanorum exspectare constituisse.
**その森の始まりのところで、スエービー族はローマ人の到来を待ち構えることを決定した。
<div style="border:solid #999 1px;background:#feedff;max-width:80%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
===コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について」===
[[画像:Hermann (Arminius) at the battle of the Teutoburg Forest in 9 CE by Peter Jannsen, 1873, with painting creases and damage removed.jpg|thumb|right|250px|ウァルスの戦い([[w:de:Varusschlacht|Varusschlacht]])こと[[w:トイトブルク森の戦い|トイトブルク森の戦い]](AD9年)で戦う、ゲルマーニア軍とローマ軍(Johann Peter Theodor Janssen画、1870~1873年頃)。中央上の人物はケールスキー族の名将[[w:アルミニウス (ゲルマン人)|アルミニウス]]。<br>アルミニウスが率いるケールスキー族・カッティー族らゲルマーニア諸部族同盟軍は、P.クィン(ク)ティリウス・ウァルス麾下ローマ3個軍団を壊滅させ、アウグストゥスに「ウァルスよ諸軍団を返せ([[w:la:Publius_Quinctilius_Varus|Quintili Vare]], legiones redde!)」と嘆かせた。]]
<br>
<div style="background:#ecf;"> '''スエービー族とカッティー族'''</div>
:『ガリア戦記』では、第1巻・第4巻および第6巻でたびたび[[w:スエビ族|スエービー族]]の名が言及される。タキトゥス<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の38章「スエービー」などを参照。</ref>など多くの史家が伝えるようにスエービー族 [[wikt:en:Suebi#Latin|Suēbī]] またはスエウィ族 Suēvī とは、単一の部族名ではなく、多くの独立した部族国家から構成される連合体の総称とされる。
:19世紀のローマ史家[[w:テオドール・モムゼン|テオドール・モムゼン]]によれば<ref>『モムゼン ローマの歴史Ⅳ』長谷川博隆訳、名古屋大学出版会、のp.201, p.224, p.232などを参照。</ref>、カエサルの時代のローマ人には
「スエービー」とは遊牧民を指す一般的な呼称で、カエサルがスエービーと呼ぶのはカッティー族だという。
:カッティー族とスエービー系諸部族の異同は明確ではないが、多くの史家は両者を区別して伝えている。
: 第1巻37節・51節・53節~54節、第4巻1節~4節・7節などで言及され、「百の郷を持つ」と
されている「スエービー族」は、スエービー系諸部族の総称、あるいは遊牧系の部族を指すのであろう。
: 他方、第4巻16節・19節・第6巻9節~10節・29節で、ウビイー族を圧迫する存在として言及される
:「スエービー族」はモムゼンの指摘のように、カッティー族 [[w:en:Chatti|Chatti]] であることが考えられる。
:タキトゥス著『ゲルマーニア』<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の36章「ケルスキー」などを参照。</ref>でも、カッティー族はケールスキー族と隣接する宿敵として描写され、本節の説明に合致する。
<div style="background:#ecf;"> '''ケールスキー族'''</div>
:ケールスキー族は、『ガリア戦記』では[[#10節|本節]]でカッティー族と隣接する部族として名を挙げられる
:のみである。しかしながら、本巻の年(BC53年)から61年後(AD9年)には、帝政ローマの
:[[w:アウグストゥス|アウグストゥス帝]]がゲルマーニアに派遣していたプブリウス・クィンクティリウス・ウァルス
:([[w:la:Publius_Quinctilius_Varus|Publius Quinctilius Varus]])が率いるローマ軍3個軍団に対して、名将[[w:アルミニウス (ゲルマン人)|アルミニウス]]を
:指導者とするケールスキー族は、カッティー族ら諸部族の同盟軍を組織して、ウァルスの3個軍団を
:[[w:トイトブルク森の戦い|トイトブルク森の戦い]]において壊滅させ、老帝アウグストゥスを嘆かせたという。
<div style="background:#ecf;"> '''ウビイー族'''</div>
:ウビイー族は『ガリア戦記』の第4巻・第6巻でも説明されているように、ローマ人への忠節を
:認められていた。そのため、タキトゥスによれば<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫の28章などを参照。</ref>、ゲルマニアへのローマ人の守りとして
:BC38年頃にレヌス(ライン川)左岸のコロニア([[w:la:Colonia_Agrippina|Colonia]];植民市)すなわち現在の[[w:ケルン|ケルン市]]に移された。)
</div>
==ガッリア人の社会と風習について==
<div style="border:solid #999 1px;background:#feedff;max-width:80%;padding:0.25em 1em;margin:0.5em auto;align:left;overflow:auto;text-align:justify;">
===コラム「ガッリア・ゲルマーニアの地誌・民族誌について」===
[[画像:Testa di saggio o principe, forse il filosofo poseidonio, 50 ac. ca 01.JPG|thumb|right|200px|アパメアの[[w:ポセイドニオス|ポセイドニオス]]の胸像。地中海世界やガッリアなどを広く訪れて、膨大な著作を残した。<br>『ガリア戦記』の地誌・民族誌的な説明も、その多くを彼の著作に依拠していると考えられている。]]
:これ以降、11節~20節の10節にわたってガッリアの地誌・民族誌的な説明が展開され、さらには、ゲルマーニアの地誌・民族誌的な説明などが21節~28節の8節にわたって続く。ガッリア戦争の背景説明となるこのような地誌・民族誌は、本来ならば第1巻の冒頭に置かれてもおかしくはない。しかしながら、この第6巻の年(BC53年)は、カエサル指揮下のローマ勢にとってはよほど書かれるべき戦果が上がらなかったためか、ガッリア北部の平定とエブロネス族の追討戦だけでは非常に短い巻となってしまうため、このような位置に置いたとも考えられる。ゲルマーニアの森にどんな獣が住んでいるかなど、本筋にほとんど影響のないと思われる記述も見られる。
:『ガリア戦記』におけるガッリアの地誌・民族誌的な説明、特にこの11節以降の部分は、文化史的に重要なものと見なされ、考古学やケルトの伝承などからも裏付けられる。しかし、これらの記述はカエサル自身が見聞したというよりも、むしろ先人の記述、とりわけBC2~1世紀のギリシア哲学ストア派の哲学者・地理学者・歴史学者であった[[w:ポセイドニオス|ポセイドニオス]]([[w:la:Posidonius Apameus|Posidonius Apameus]])の著作に依拠していたと考えられている<ref>『ケルト事典』ベルンハルト・マイヤー著、鶴岡真弓監修、創元社の「ポセイドニオス」「カエサル」の項を参照。</ref> <ref>『ケルト人』ヴァンセスラス・クルータ([[w:fr:Venceslas Kruta|Venceslas Kruta]])著、鶴岡真弓訳、白水社 のp.20-21を参照。</ref>。ポセイドニオスは、ローマが支配する地中海世界やガッリア地域などを広く旅行した。彼の52巻からなる膨大な歴史書は現存しないが、その第23巻にガッリアに関する詳細な記述があったとされ、[[w:シケリアのディオドロス|ディオドロス]]、[[w:ストラボン|ストラボン]]、[[w:アテナイオス|アテナイオス]]らによって引用され、同時代および近代のケルト人観に多大な影響を与えたと考えられている。
:現存するガッリアの地誌・民族誌は、ストラボン<ref>『ギリシア・ローマ世界地誌Ⅰ』ストラボン著、飯尾都人訳、龍溪書舎を参照。</ref>、ディオドロス<ref>『神代地誌』ディオドロス著、飯尾都人訳、龍溪書舎を参照。</ref>、ポンポニウス・メラ<ref>『世界地理』ポンポニウス・メラ著、飯尾都人訳(上掲『神代地誌』に所収)</ref>のものなどがある。現存するゲルマーニアの地誌・民族誌は、ストラボン、タキトゥス<ref>『ゲルマーニア』タキトゥス著、泉井久之助訳注、岩波文庫などを参照。</ref>、ポンポニウス・メラなどのものがある。
</div>
===11節===
'''ガッリア人の派閥性'''
*① Quoniam ad hunc locum perventum est,
**この地(ゲルマーニア)にまで到達したので、
*non alienum esse videtur de Galliae Germaniaeque moribus et, quo differant hae nationes inter sese proponere.
**[[w:ガリア|ガッリア]]と[[w:ゲルマニア|ゲルマーニア]]の風習について、これらの種族が互いにどのように異なるか述べることは不適切でないと思われる。
*② In Gallia non solum in omnibus civitatibus atque in omnibus <u>[[wikt:en:pagus#Latin|pagis]]</u> partibusque,
**ガッリアにおいては、すべての部族において、さらにすべての<u>郷</u>や地方においてのみならず、
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''pagus'' (郷) はここでは、部族の領土の農村区画を指す行政用語<ref name="pagus">''[[w:en:Pagus]]'' 等を参照。</ref>。)</span>
*sed paene etiam in singulis domibus factiones sunt,
**ほとんどの個々の氏族においてさえも、派閥があり、
*earumque factionum principes sunt,
**それらの派閥には、領袖がいる。
*③ qui summam auctoritatem eorum iudicio habere existimantur,
**その者(領袖)らは、彼ら(派閥)の判断に対して、最高の影響力を持っていると考えられている。
*quorum ad arbitrium iudiciumque summa omnium rerum consiliorumque redeat.
**すべての事柄と協議は結局のところ、その者(領袖)らの裁量や判断へ帰する。
*④ Idque eius rei causa antiquitus institutum videtur,
**それは、それらの事柄のために昔から取り決められたものと見られ、
*ne quis ex plebe contra potentiorem auxilii egeret:
**平民のある者が、より権力のある者に対して、援助を欠くことがないように、ということである。
*suos enim quisque opprimi et circumveniri non patitur,
**すなわち(領袖たちの)誰も、身内の者たちが抑圧されたり欺かれたりすることを容認しない。
*neque, aliter si faciat, ullam inter suos habet auctoritatem.
**もし(領袖が)そうでなくふるまったならば、身内の者たちの間で何ら影響力を持てない。
*⑤ Haec eadem ratio est in summa totius Galliae;
**これと同じ理屈が、ガッリア全体の究極において存在する。
*namque omnes civitates in partes divisae sunt duas.
**すなわち、すべての部族が二つの党派に分けられているのである。
===12節===
'''ハエドゥイ族、セクァニ族、レミ族の覇権争い'''
*① Cum Caesar in Galliam venit,
**カエサルがガッリアに来たときに、
*alterius factionis principes erant Haedui, alterius Sequani.
**(二つの)派閥の一方の盟主は[[w:ハエドゥイ族|ハエドゥイ族]]であり、他方は[[w:セクァニ族|セクァニ族]]であった。
**:(訳注:第1巻31節の記述によれば、ハエドゥイ族と[[w:アルウェルニ族|アルウェルニ族]]がそれぞれの盟主であった。
**:カエサルが本節でアルウェルニ族の名を伏せている理由は不明である。
**:また、[[w:ストラボン|ストラボン]]によれば<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.330)</ref>、ハエドゥイ族とセクァニ族の敵対関係においては、
**:両部族を隔てるアラル川の水利権(川舟の通行税)をめぐる争いが敵意を助長していたという。)
*② Hi cum per se minus valerent,
**後者(セクァニ族)は自力ではあまり優勢ではなかったので、
*quod summa auctoritas antiquitus erat in Haeduis
**というのは、昔から最大の影響力はハエドゥイ族にあって、
*magnaeque eorum erant clientelae,
**彼ら(ハエドゥイ族)には多くの庇護民があったからであるが、
*Germanos atque Ariovistum sibi adiunxerant
**[[w:ゲルマニア|ゲルマニア]]人と[[w:アリオウィストゥス|アリオウィストゥス]]を自分たちに会盟させ、
*eosque ad se magnis iacturis pollicitationibusque perduxerant.
**多くの負担と約束で 彼らを自分たちのところに引き入れた。
*③ Proeliis vero compluribus factis secundis
**実にいくつもの戦闘を順調に行なって、
*atque omni nobilitate Haeduorum interfecta
**ハエドゥイ族のすべての高貴な者たちを殺害して、
*tantum potentia antecesserant,
**かなりの勢力で抜きん出たので、
*④ ut magnam partem clientium ab Haeduis ad se traducerent
**結果として、ハエドゥイ族から庇護民の大部分を自分たちへ味方に付けて、
*obsidesque ab iis principum filios acciperent
**彼らから領袖の息子たちを人質として受け取り、
*et publice iurare cogerent nihil se contra Sequanos consilii inituros,
**自分たち(ハエドゥイ族)がセクァニ族に対して何ら謀計を始めるつもりではない、と公に誓うことを強いて、
*et partem finitimi agri per vim occupatam possiderent
**近隣の土地の一部を力ずくで占領して所有地とした。
*Galliaeque totius principatum obtinerent.
**ガッリア全体の指導権を手に入れた。
*⑤ Qua necessitate adductus
**それにより、やむを得ずに動かされて、
*Diviciacus auxilii petendi causa Romam ad senatum profectus infecta re redierat.
**[[w:ディウィキアクス|ディウィキアクス]]は支援を求めるために[[w:ローマ|ローマ市]]に元老院のところへ赴いたが、事を成就せずに帰った。
*⑥ Adventu Caesaris facta commutatione rerum,
**カエサルの到来で事態の変化がなされて、
*obsidibus Haeduis redditis,
**ハエドゥイ族の人質たちは戻されて、
*veteribus clientelis restitutis,
**昔からの庇護民が復帰して、
*novis per Caesarem comparatis,
**カエサルを通じて新参者たちを仲間にした。
*quod ii qui se ad eorum amicitiam adgregaverant,
**というのは、彼ら(ハエドゥイ族)の友好のもとに仲間となっていた者たちが、
*⑦ meliore condicione atque aequiore imperio se uti videbant,
**(セクァニ族)より良い条件とより公平な支配を享受しているように見えて、
*reliquis rebus eorum gratia dignitateque amplificata
**ほかの事柄においても彼ら(ハエドゥイ族)の信望と品格がより増されて、
*Sequani principatum dimiserant.
**セクァニ族は指導権を放棄したのだ。
*In eorum locum Remi successerant:
**彼ら(セクァニ族)の地位において、[[w:レミ族|レミ族]]が取って代わった。
*quos quod adaequare apud Caesarem gratia intellegebatur,
**その者ら(レミ族)はカエサルのもとで信望において(ハエドゥイ族と)同等であると認識されたので、
*ii qui propter veteres inimicitias nullo modo cum Haeduis coniungi poterant,
**昔からの敵対関係のためにハエドゥイ族とどのようなやり方でも結ぶことができなかった者たちは、
*se Remis in clientelam dicabant.
**レミ族との庇護関係に自らを委ねたのだ。
*⑧ Hos illi diligenter tuebantur;
**この者ら(レミ族)はあの者ら(庇護民)を誠実に保護して、
*ita et novam et repente collectam auctoritatem tenebant.
**このようにして、最近に得られた新しい影響力を保持した。
*⑨ Eo tum statu res erat, ut longe principes haberentur Haedui,
**当時、ハエドゥイ族の位置付けは、まったく盟主と見なされるような状態であって、
*secundum locum dignitatis Remi obtinerent.
**レミ族の品格は第二の地位を占めたのだ。
===13節===
'''ガッリア人の社会階級、平民およびドルイドについて(1)'''
*① In omni Gallia eorum hominum, qui aliquo sunt numero atque honore, genera sunt duo.
**全ガッリアにおいて、何らかの地位や顕職にある人々の階級は二つである。
'''平民について'''
*Nam plebes paene servorum habetur loco,
**これに対して、平民はほとんど奴隷の地位として扱われており、
*quae nihil audet per se, nullo adhibetur consilio.
**自分たちを通じては何らあえてすることはないし、誰も相談をされることもない。
*② Plerique, cum aut aere alieno aut magnitudine tributorum aut iniuria potentiorum premuntur,
**多くの者は、あるいは負債、あるいは貢納の多さ、あるいはより権力のある者に抑圧されているので、
*sese in servitutem dicant.
**自らを奴隷身分に差し出している。
*Nobilibus in hos eadem omnia sunt iura, quae dominis in servos.
**高貴な者たちには彼ら(平民)において、奴隷において主人にあるのと同様なすべての権利がある。
'''ドルイドについて'''
*③ Sed de his duobus generibus alterum est druidum, alterum equitum.
**ともかく、これら二つの階級について、一方は[[w:ドルイド|ドルイド]](神官)であり、他方は[[w:騎士|騎士]]である。
*④ Illi rebus divinis intersunt, sacrificia publica ac privata procurant, religiones interpretantur:
**前者(ドルイド)は神事に介在し、公・私の<ruby><rb>[[w:供犠|供犠]]</rb><rp>(</rp><rt>くぎ</rt><rp>)</rp></ruby>を司り、信仰のことを講釈する。
**:(訳注:供犠とは、人や獣を生け贄として神前に捧げることである。<ruby><rb>[[w:人身御供|人身御供]]</rb><rp>(</rp><rt>ひとみごくう</rt><rp>)</rp></ruby>とも。)
[[画像:Two_Druids.PNG|thumb|right|200px|二人のドルイド。フランスの[[w:オータン|オータン]]、すなわちガッリア中部のビブラクテ辺りで発見された[[w:レリーフ|レリーフ]]。]]
*ad hos magnus adulescentium numerus disciplinae causa concurrit,
**この者ら(ドルイド)のもとへ、若者の多数が教えのために群り集まり、
*magnoque hi sunt apud eos honore.
**この者ら(ドルイド)は、彼ら(ガッリア人)のもとで大いなる地位にある。
*⑤ Nam fere de omnibus controversiis publicis privatisque constituunt,
**なぜなら(ドルイドは)ほとんどすべての公・私の訴訟ごとに判決をするのである。
*et, si quod est admissum facinus, si caedes facta,
**もし何らかの罪悪が犯されれば、もし殺害がなされれば、
*si de hereditate, de finibus controversia est,
**もし、遺産について、地所について、訴訟ごとがあれば、
*idem decernunt, praemia poenasque constituunt;
**同じ人たち(ドルイド)が裁決し、補償や懲罰を判決するのである。
*⑥ si qui aut privatus aut populus eorum decreto non stetit, sacrificiis interdicunt.
**もし何らかの個人あるいは集団が彼ら(ドルイド)の裁決を遵守しなければ、(その者らに)供犠を禁じる。
*Haec poena apud eos est gravissima.
**これは、彼ら(ガッリア人)のもとでは、非常に重い懲罰である。
*⑦ Quibus ita est interdictum,
**このように(供犠を)禁じられた者たちは、
*hi numero impiorum ac sceleratorum habentur,
**彼らは、不信心で不浄な輩と見なされて、
*his omnes decedunt, aditum sermonemque defugiunt,
**皆が彼らを忌避して、近づくことや会話を避ける。
*ne quid ex contagione incommodi accipiant,
**(彼らとの)接触から、何らかの災厄を負うことがないようにである。
*neque his petentibus ius redditur
**彼らが請願しても(元通りの)権利は戻されないし、
*neque honos ullus communicatur.
**いかなる地位(に就くこと)も許されない。
*⑧ His autem omnibus druidibus praeest unus,
**ところで、これらすべてのドルイドを一人が指導しており、
*qui summam inter eos habet auctoritatem.
**その者は彼ら(ドルイドたち)の間に最高の影響力を持っている。
*⑨ Hoc mortuo
**この者が死んだならば、
*aut, si qui ex reliquis excellit dignitate, succedit,
**あるいは、もし残りの者たちの中から品格に秀でた者がおれば、継承して、
*aut, si sunt plures pares, suffragio druidum {adlegitur}<ref>adlegitur はβ系写本の記述で、α系写本にはない。</ref>;
**あるいは、もしより多くの者たちが同等であれば、ドルイドの投票で{選ばれる}。
*nonnumquam etiam armis de principatu contendunt.
**ときどきは、武力でさえも首座を争うことがある。
*⑩ Hi certo anni tempore
**彼ら(ドルイド)は年間の定められた時期に
*in finibus Carnutum, quae regio totius Galliae media habetur, considunt in loco consecrato.
**ガッリア全体の中心地方と見なされている[[w:カルヌテス族|カルヌテス族]]の領土において、[[w:聖地|聖地]]に集合する。
**:(訳注:これはカエサルが支配する「ガッリア全体」の話で、他の地方には別の中心地があったようである。)
*Huc omnes undique, qui controversias habent, conveniunt
**ここへ、至る所から訴訟などを持つあらゆる者たちが集まって、
*eorumque decretis iudiciisque parent.
**彼ら(ドルイド)の裁決や判断に服従する。
*⑪ Disciplina in Britannia reperta atque inde in Galliam translata esse existimatur,
**(ドルイドの)教えは[[w:ブリタンニア|ブリタンニア]]で見出され、そこからガッリアにもたらされたと考えられている。
**:(訳注:これに対して、[[w:シケリアのディオドロス|ディオドロス]]は、ガッリア人の信仰は[[w:ピュタゴラス教団|ピュタゴラスの教説]]であると伝えている<ref>ディオドロス『神代地誌』(前掲、p.408)</ref>。
**:[[w:ストラボン|ストラボン]]によれば、これは東方のゲタエ人([[w:en:Getae|Getae]];[[w:トラキア|トラキア]]系ないし[[w:ダキア|ダキア]]系)を通じて取り入れたものだという<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、第7巻 第3章 第5節)</ref>。)
*⑫ et nunc, qui diligentius eam rem cognoscere volunt,
**今でも、その事柄をより入念に探究することを欲する者たちは、
*plerumque illo discendi causa proficiscuntur.
**たいてい、かの地に研究するために旅立つ。
===14節===
'''ドルイドについて(2)'''
*① Druides a bello abesse consuerunt
**[[w:ドルイド|ドルイド]]たちは、戦争に関与しない習慣であり、
*neque tributa una cum reliquis pendunt;
**ほかの者と一緒に貢納(租税)を支払うこともない。
*militiae vacationem omniumque rerum habent immunitatem.
**[[w:徴兵制度|兵役]]の免除や、すべての事柄において免除特権を持っているのである。
[[画像:Druids,_in_the_early_morning_glow_of_the_sun.jpg|thumb|right|200px|現代イギリスのドルイド教復興主義者たち]]
*② Tantis excitati praemiis
**このような特典に駆り立てられて
*et sua sponte multi in disciplinam conveniunt
**自らの意思で多くの者が教え(の場)に集まっても来るし、
*et a parentibus propinquisque mittuntur.
**親たちや縁者たちによって送られても来る。
*③ Magnum ibi numerum versuum ediscere dicuntur.
**(彼らは)そこで詩句の多数を習得すると言われている。
*Itaque annos nonnulli vicenos in disciplina permanent.
**こうして、少なからぬ者たちが、20年にもわたって教え(の場)に残留する。
[[画像:Dédicace_de_Segomaros_(inscription gallo-grecque).png|thumb|right|200px|ギリシア文字で刻まれたガッリアの碑文]]
*Neque fas esse existimant ea litteris mandare,
**それら(の詩句)を文字で刻み込むことは、神意に背くと考えている。
*cum in reliquis fere rebus, publicis privatisque rationibus, Graecis litteris utantur.
**もっとも、ほかの事柄においては、公・私の用件に[[w:ギリシア文字|ギリシア文字]]を用いる。
*④ Id mihi duabus de causis instituisse videntur,
**それは、私(カエサル)には、二つの理由で(ドルイドが)定めたことと思われる。
**:(訳注:これは、カエサルが自らを一人称で示している珍しい個所である。)
*quod neque in vulgum disciplinam efferri velint
**というのは、教えが一般大衆にもたらされることは欲していないし、
*neque eos, qui discunt, litteris confisos minus memoriae studere:
**(教えを)学ぶ者が、文字を頼りにして、あまり暗記することに努めなくならないようにである。
[[画像:Dying_gaul.jpg|thumb|right|200px|『[[w:瀕死のガリア人|瀕死のガリア人]]』([[w:en:Dying_Gaul|Dying Gaul]])像(ローマ市の[[w:カピトリーノ美術館|カピトリーノ美術館]])]]
*quod fere plerisque accidit, ut
**というのも、ほとんど多くの場合に起こることには、
*praesidio litterarum diligentiam in perdiscendo ac memoriam remittant.
**文字の助けによって、入念に猛勉強することや暗記することを放棄してしまうのである。
*⑤ In primis hoc volunt persuadere,
**とりわけ、彼ら(ドルイド)が説くことを欲しているのは、
*non interire animas, sed ab aliis post mortem transire ad alios,
**霊魂は滅びることがないのみならず、死後にある者から別のある者へ乗り移るということである。
**:(訳注:ガッリア人の[[w:輪廻転生|転生信仰]]は、[[w:ピュタゴラス教団|ピュタゴラスの教説]]であると、[[w:シケリアのディオドロス|ディオドロス]]が伝えている<ref>ディオドロス『神代地誌』(前掲、p.408)</ref>。)
*atque hoc maxime ad virtutem excitari putant metu mortis neglecto.
**これによって(ガッリア人は)死の恐怖に無頓着になって最も武勇へ駆り立てられると(ドルイドは)思っている。
[[画像:Universum.jpg|thumb|right|200px|古代以来の伝統的な世界観における天空と平らな大地。カルデアやギリシアを除けば、丸い地球という観念は知られていなかった。]]
*Multa praeterea de sideribus atque eorum motu,
**さらに多く、星々とその動きについて、
*de mundi ac terrarum magnitudine, de rerum natura,
**天空と大地の大きさについて、物事の本質について、
*de deorum immortalium vi ac potestate
**不死の神々の力と支配について、
*disputant et iuventuti tradunt.
**研究して、青年たちに教示するのである。
<br>
<br>
*('''訳注:ドルイドについて'''
:ケルト社会の神官・祭司・僧などとされるドルイドについては、おそらくは[[w:ポセイドニオス|ポセイドニオス]]、そしてカエサル、
:および[[w:シケリアのディオドロス|ディオドロス]]<ref>ディオドロス『神代地誌』(前掲、p.410-p.411)</ref>、[[w:ストラボン|ストラボン]]<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.341-p.342)</ref>、ポンポニウス・メラ<ref>ポンポニウス・メラ『世界地理』(前掲、p.549)</ref>などのギリシア人・ローマ人の著述家たちがそれぞれ
:書き残しているために同時代や現代に知られている。しかし、本節にもあるように、その秘密主義からか、
:古代ギリシア・ローマの著作にあるほかには、その詳細については不明である。)
===15節===
[[画像:BIATEC_pri_NBS_1.jpg|thumb|right|200px|ケルト系の王ビアテック([[w:en:Biatec|Biatec]])の騎馬像([[w:スロバキア国立銀行|スロバキア国立銀行]])。彼はBC1世紀のケルトの硬貨に刻まれた人物で、現代[[w:スロバキア・コルナ|スロバキアの5コルナ]]硬貨にも刻まれている。]]
[[画像:Bige_Musée_de_Laon_050208.jpg|thumb|right|200px|二頭立て二輪馬車([[w:チャリオット|戦車]])に乗るガリア人像(仏・ラン博物館)]]
'''ガッリア人の騎士階級について'''
*① Alterum genus est equitum.
**(ドルイドと並ぶ)もう一つの階級は、[[w:騎士|騎士]]である。
*Hi, cum est usus atque aliquod bellum incidit
**彼らは、必要とされ、かつ何らかの戦争が勃発したときには、
*─ quod fere ante Caesaris adventum quotannis accidere solebat,
**─ それ(戦争)はカエサルの到来以前にはほとんど毎年のように起こるのが常であり、
*uti aut ipsi iniurias inferrent aut inlatas propulsarent ─,
**自身が侵犯行為を引き起こすためか、あるいは引き起こされて撃退するためであったが、─
*omnes in bello versantur,
**総勢が戦争に従事した。
*② atque eorum ut quisque est genere copiisque amplissimus,
**さらに彼らは、高貴な生まれで財産が非常に大きければ大きいほど、
**:(訳注:ut quisque ~ ita;おのおのが~であればあるほどますます)
*ita plurimos circum se ambactos clientesque habet.
**自らの周囲に非常に多くの臣下や庇護民たちを侍らせる。
*Hanc unam gratiam potentiamque noverunt.
**(騎士たちは)これが信望や権勢(を示すこと)の一つであると認識しているのである。
===16節===
'''ガッリア人の信仰と生け贄、ウィッカーマン'''
*① Natio est omnis Gallorum admodum dedita religionibus,
**ガッリア人のすべての部族民は、まったく信仰行為に身を捧げている。
*② atque ob eam causam,
**その理由のために、
*qui sunt adfecti gravioribus morbis
**非常に重い病気を患った者たち
*quique in proeliis periculisque versantur,
**および戦闘において危険に苦しめられる者たちは、
*aut pro victimis homines immolant
**あるいは<ruby><rb>[[w:生贄|生け贄]]</rb><rp>(</rp><rt>いけにえ</rt><rp>)</rp></ruby>の獣(犠牲獣)の代わりに人間を供えたり、
*aut se immolaturos vovent,
**あるいは自らを犠牲にするつもりであると誓願し、
*administrisque ad ea sacrificia druidibus utuntur,
**その<ruby><rb>[[w:供犠|供犠]]</rb><rp>(</rp><rt>くぎ</rt><rp>)</rp></ruby>を執り行う者として[[w:ドルイド|ドルイド]]を利用するのである。
*③ quod, pro vita hominis nisi hominis vita reddatur,
**というのは(一人の)人間の生命のためには、(もう一人の)人間の生命が償われない限り、
*non posse deorum immortalium numen placari arbitrantur,
**不死の神々の<ruby><rb>御霊</rb><rp>(</rp><rt>みたま</rt><rp>)</rp></ruby>がなだめられることができないと思われているからである。
*publiceque eiusdem generis habent instituta sacrificia.
**同じような類いの供儀が公けに定められているのである。
[[画像:WickerManIllustration.jpg|thumb|right|310px|柳の枝で編んだ巨人[[w:ウィッカーマン|ウィッカーマン]]([[w:en:Wicker_Man|Wicker Man]])の想像画(18世紀)。この特異な風習は、近代になって人々の興味をかき立て、いくつもの想像画が描かれた<ref>例えば『ケルト人─蘇るヨーロッパ<幻の民>』C.エリュエール著、鶴岡真弓監修、創元社、p.130の挿絵などを参照。</ref>。1973年にはイギリスで映画化され<ref>“[[w:en:The Wicker Man (1973 film)|The Wicker Man]]”はウィッカーマンを題材にした1973年のイギリスのカルト映画作品。</ref>、2006年にはアメリカなどでも映画化された<ref>“[[w:en:The Wicker Man (2006 film)|The Wicker Man]]”は上記作品をリメイクした2006年のアメリカ・カナダ・ドイツの映画作品。</ref>。]]
[[画像:Burning_wicker_man_by_Bruce_McAdam.jpg|thumb|right|100px|スコットランドの野外博物館で燃やされるウィッカーマン(2008年)]]
'''ウィッカーマン'''
*④ Alii immani magnitudine simulacra habent,
**ある者たちは、恐ろしく大規模な像を持って、
*quorum contexta viminibus membra vivis hominibus complent;
**その柳の枝で編み込まれた肢体を人間たちで満杯にして、
*quibus succensis
**それらを燃やして、
*circumventi flamma exanimantur homines.
**人々は炎に取り巻かれて息絶えさせられるのである。
*⑤ Supplicia eorum qui in furto aut in latrocinio
**窃盗あるいは追い剥ぎに関わった者たちを処刑することにより、
*aut aliqua noxia sint comprehensi,
**あるいは何らかの罪状により捕らわれた者たち(の処刑)により、
*gratiora dis immortalibus esse arbitrantur;
**不死の神々に感謝されると思っている。
*sed, cum eius generis copia defecit,
**しかしながら、その類いの量が欠けたときには、
*etiam ad innocentium supplicia descendunt.
**潔白な者たちさえも犠牲にすることに頼るのである。
<br><br>
:('''訳注''':このような'''[[w:ウィッカーマン|ウィッカーマン]]'''の供犠については[[w:ストラボン|ストラボン]]も伝えており<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.343)</ref>、
:[[w:人身御供|人身御供]]の種類の一つとして、干し草やたきぎで巨像を作り、その中へあらゆる
:家畜・野生動物や人間たちを投げ込んで丸焼きにする習慣があったという。
: また、[[w:シケリアのディオドロス|ディオドロス]]<ref>ディオドロス『神代地誌』(前掲、p.410~p.411)</ref>やストラボンによれば、ドルイドはむしろ'''[[w:予言|予言者]]・[[w:占い|占い師]]'''
:であるという。ドルイドが重要な問題について占うときには、供犠される人間の
:腹または背中を剣などで刺して、犠牲者の倒れ方、肢体のけいれん、出血の様子
:などを観察して、将来の出来事を占うのだという。)
===17節===
'''ガッリアの神々(ローマ風解釈)'''
*① Deum maxime [[w:la:Mercurius_(deus)|Mercurium]] colunt.
**(ガッリア人は)神々のうちでとりわけ[[w:メルクリウス|メルクリウス]]を崇拝する。
**:(訳注:メルクリウスは[[w:ローマ神話|ローマ神話]]の神名であり、本節の神名はすべてローマ風解釈である。)
*Huius sunt plurima simulacra:
**彼の偶像が最も多い。
*hunc omnium inventorem artium ferunt,
**(ガッリア人は)彼をすべての技芸の発明者であると言い伝えており、
*hunc viarum atque itinerum ducem,
**彼を道および旅の案内者として、
*hunc ad quaestus pecuniae mercaturasque habere vim maximam arbitrantur.
**彼が金銭の利得や商取引で絶大な力を持つと思われている。
[[画像:Taranis_Jupiter_with_wheel_and_thunderbolt_Le_Chatelet_Gourzon_Haute_Marne.jpg|thumb|right|200px|ガッリアの雷神タラニス([[w:en:Taranis|Taranis]])の神像([[w:en:National_Archaeological_Museum_(France)|フランス国立考古学博物館]])。雷を司ることからローマ神話のユピテルと同一視された。左手に車輪、右手に稲妻を持っている。]]
[[画像:God_of_Etang_sur_Arroux_possible_depiction_of_Cernunnos.jpg|thumb|right|200px|ガッリアの神ケルヌンノス([[w:en:Cernunnos|Cernunnos]])の神像(フランス国立考古学博物館)。]]
*Post hunc [[w:la:Apollo|Apollinem]] et [[w:la:Minerva|Martem]] et [[w:la:Iuppiter|Iovem]] et [[w:la:Mars_(deus)|Minervam]].
**彼に続いて、[[w:アポローン|アポロ]]と[[w:マルス (ローマ神話)|マルス]]と[[w:ユーピテル|ユピテル]]と[[w:ミネルウァ|ミネルウァ]]を(ガッリア人は崇拝する)。
*② De his eandem fere, quam reliquae gentes, habent opinionem:
**これら(の神々)について、ほかの種族とほぼ同じ見解を持っている。
*Apollinem morbos depellere,
**アポロは病気を追い払い、
*Minervam operum atque artificiorum initia tradere,
**ミネルウァは工芸や技術の初歩を教示し、
*Iovem imperium caelestium tenere,
**ユピテルは天界の統治を司り、
*Martem bella regere.
**マルスは戦争を支配する。
*③ Huic, cum proelio dimicare constituerunt,
**彼(マルス)には、(ガッリア人が)戦闘で干戈を交えることを決心したときに、
*ea quae bello ceperint, plerumque devovent:
**戦争で捕獲したものを、たいていは奉納するものである。
*cum superaverunt, animalia capta immolant
**(戦闘で)打ち勝ったときには、捕獲された獣を生け贄に供えて、
*reliquasque res in unum locum conferunt.
**残りの物を1か所に運び集める。
*④ Multis in civitatibus harum rerum ex(s)tructos tumulos locis consecratis conspicari licet;
**多くの部族において、これらの物が積み上げられた塚を、神聖な地で見ることができる。
*⑤ neque saepe accidit, ut neglecta quispiam religione
**何らかの者が信仰を軽視するようなことが、しばしば起こることはない。
*aut capta apud se occultare aut posita tollere auderet,
**捕獲されたものを自分のもとに隠すこと、あるいは(塚に)置かれたものをあえて運び去ることは。
*gravissimumque ei rei supplicium cum cruciatu constitutum est.
**そんな事には、拷問を伴う最も重い刑罰が決められている。
**:(訳注:最も重い刑罰とは、処刑であると思われる。)
<br>
:(訳注:'''ローマ風解釈について'''
:ガッリアなどケルト文化の社会においては、非常に多くの神々が信仰されており、
:ケルト語による多くの神名が知られており、考古学的にも多くの神像が遺されている。
:しかしながら、これらの神々がどのような性格や権能を持っていたのか、詳しくは判っていない。
:ローマ人は、数多くのケルトの神々をローマ神話の神々の型に当てはめて解釈した。
:[[w:タキトゥス|タキトゥス]]はこれを「[[w:ローマ風解釈|ローマ風解釈]]」[[w:en:Interpretatio_Romana#Roman_version|Interpretatio Romana]] <ref>タキトゥス『ゲルマーニア』43章([[s:la:De_origine_et_situ_Germanorum_(Germania)#XLIII|ラテン語原文]])を参照。</ref>と呼んでいる<ref>『ケルト事典』(前掲)「ローマ風解釈」の項を参照。</ref>。)
===18節===
[[画像:Gaul_god_Sucellus.jpg|thumb|right|200px|ガッリアの神スケッルス([[w:en:Sucellus|Sucellus]])の神像。[[w:冥界|冥界]]の神とされ、ディス・パテルと同一視されたと考えられている。]]
'''ガッリア人の時間や子供についての観念'''
*① Galli se omnes ab Dite patre prognatos praedicant
**ガッリア人は、自分たちは皆、ディス・パテルの末裔であると公言しており、
**:(訳注:ディス・パテル [[w:en:Dis_Pater|Dis Pater]] も前節と同様にローマ神話の神名である。)
*idque ab druidibus proditum dicunt.
**それは[[w:ドルイド|ドルイド]]たちにより伝えられたと言う。
;時間の観念
*② Ob eam causam spatia omnis temporis non numero dierum, sed noctium finiunt;
**その理由のために、すべての[[w:時間|時間]]の間隔を、[[w:昼|昼間]]の数ではなく、[[w:夜|夜間]](の数)で区切る。
*dies natales et mensum et annorum initia sic observant, ut noctem dies subsequatur.
**誕生日も、月や年の初めも、夜間に昼間が続くように注意を払っている。
;子供についての観念
*③ In reliquis vitae institutis hoc fere ab reliquis differunt,
**人生のほかの風習において、以下の点でほかの者たち(種族)からほぼ異なっている。
*quod suos liberos, nisi cum adoleverunt, ut munus militiae sustinere possint,
**自分の子供たちが、[[w:徴兵制度|兵役の義務]]を果たすことができるように成長したときでない限り、
*palam ad se adire non patiuntur
**公然と自分のところへ近づくことは許されないし、
*filiumque puerili aetate in publico in conspectu patris adsistere turpe ducunt.
**少年期の息子が公けに父親の見ているところでそばに立つことは恥ずべきと見なしている。
===19節===
'''ガッリア人の婚姻と財産・葬儀の制度'''
*① Viri, quantas pecunias ab uxoribus dotis nomine acceperunt,
**夫は、妻から[[w:持参金|持参金]]の名目で受け取った金銭の分だけ、
*tantas ex suis bonis aestimatione facta cum dotibus communicant.
**自分の財産のうちから見積もられた分を、持参金とともに一つにする。
*② Huius omnis pecuniae coniunctim ratio habetur fructusque servantur:
**これらのすべての金銭は共同に算定が行なわれて、[[w:利子|利子]]が貯蓄される。
*uter eorum vita superarit,
**彼ら2人のいずれかが、人生において生き残ったら、
*ad eum pars utriusque cum fructibus superiorum temporum pervenit.
**双方の分がかつての期間の利子とともに(生き残った)その者(の所有)に帰する。
[[画像:Hallstatt_culture_ramsauer.jpg|thumb|right|200px|[[w:ハルシュタット文化|ハルシュタット文化]]の[[w:墳丘墓|墳丘墓]]から発掘された遺骸と[[w:副葬品|副葬品]](19世紀の模写)。ガッリアなどではハルシュタット文化後期から[[w:土葬|土葬]]が普及したが、[[w:ラ・テーヌ文化|ラ・テーヌ文化]]中期から再び[[w:火葬|火葬]]が主流になったと考えられている。]]
*③ Viri in uxores, sicuti in liberos, vitae necisque habent potestatem;
**夫は、妻において、子供におけるのと同様に、生かすも殺すも勝手である。
*et cum pater familiae inllustriore loco natus decessit, eius propinqui conveniunt
**上流身分に生まれた家族の父親が死去したとき、彼の近縁の者たちが集まって、
*et de morte, si res in suspicionem venit, de uxoribus in servilem modum quaestionem habent,
**死について、もし疑念が出来したならば、妻について、[[w:奴隷|奴隷]]におけるようなやり方で審問して、
*et si compertum est, igni atque omnibus tormentis excruciatas interficiunt.
**もし(疑念が)確認されたならば、火やあらゆる責め道具によって[[w:拷問|拷問]]にかけて誅殺する。
*④ Funera sunt pro cultu Gallorum magnifica et sumptuosa;
**[[w:葬儀|葬儀]]は、ガッリア人の生活習慣の割には派手でぜいたくなものである。
*omniaque quae vivis cordi fuisse arbitrantur in ignem inferunt, etiam animalia,
**生前に大切であったと思われるもの一切合財を、獣でさえも、火の中に投げ入れる。
*ac paulo supra hanc memoriam servi et clientes, quos ab his dilectos esse constabat,
**さらに、より以前のこの記憶では、彼ら(亡者)により寵愛されていたことが知られていた奴隷や庇護民をも、
*iustis funeribus confectis una cremabantur.
**慣習による葬儀が成し遂げられたら、一緒に火葬されていたのである。
===20節===
'''ガッリア部族国家の情報統制'''
*① Quae civitates commodius suam rem publicam administrare existimantur,
**より適切に自分たちの公儀(=国家体制)を治めると考えられているような部族は、
*habent legibus sanctum,
**(以下のように)定められた法度を持つ。
*si quis quid de re publica a finitimis rumore aut fama acceperit,
**もし、ある者が公儀に関して近隣の者たちから何らかの噂や風聞を受け取ったならば、
*uti ad magistratum deferat neve cum quo alio communicet,
**官吏に報告して、他の者と伝え合ってはならないと。
*② quod saepe homines temerarios atque imperitos falsis rumoribus terreri
**というのは、無分別で無知な人間たちはしばしば虚偽の噂に恐れて、
*et ad facinus impelli et de summis rebus consilium capere cognitum est.
**罪業に駆り立てられ、重大な事態についての考えを企てると認識されているからである。
*③ Magistratus quae visa sunt occultant,
**官吏は、(隠すことが)良いと思われることを隠して、
*quaeque esse ex usu iudicaverunt, multitudini produnt.
**有益と判断していたことを、民衆に明らかにする。
*De re publica nisi per concilium loqui non conceditur.
**公儀について、集会を通じてでない限り、語ることは認められていない。
==ゲルマーニアの風習と自然について==
===21節===
'''ゲルマーニア人の信仰と性'''
*① Germani multum ab hac consuetudine differunt.
**[[w:ゲルマニア|ゲルマーニア]]人はこれに対し、風習が大いに異なっている。
*Nam neque druides habent, qui rebus divinis praesint, neque sacrificiis student.
**すなわち、神事を司る[[w:ドルイド|ドルイド]]も持たないし、供犠に熱心でもない。
*② Deorum numero
**神々に数えるものとして、
*eos solos ducunt, quos cernunt et quorum aperte opibus iuvantur, Solem et Vulcanum et Lunam,
**(彼らが)見分けるものや明らかにその力で助けられるもの、[[w:太陽|太陽]]と[[w:ウォルカヌス|ウォルカヌス]](火の神)と[[w:月|月]]だけを信仰して、
*reliquos ne fama quidem acceperunt.
**ほかのものは風聞によってさえも受け入れていない。
**:(訳注:これに対して、[[w:タキトゥス|タキトゥス]]は、ゲルマーニア人はメルクリウスやマルスなどを信仰すると伝えている<ref>タキトゥス『ゲルマーニア』2章・9章を参照</ref>。)
*③ Vita omnis in venationibus atque in studiis rei militaris consistit:
**すべての人生は、[[w:狩猟|狩猟]]に、および[[w:軍事|軍事]]への執心に依拠しており、
*ab parvulis labori ac duritiae student.
**幼時より労役や負担に努める。
*④ Qui diutissime impuberes permanserunt, maximam inter suos ferunt laudem:
**最も長く純潔に留まった者は、自分たちの間で最大の賞賛を得る。
*hoc ali staturam, ali vires nervosque confirmari putant.
**これによって、ある者には背の高さが、ある者には力と筋肉が強化されると、思っている。
*⑤ Intra annum vero vicesimum feminae notitiam habuisse in turpissimis habent rebus;
**20歳にならない内に女を知ってしまうことは、とても恥ずべきことであると見なしている。
*cuius rei nulla est occultatio,
**その(性の)事を何ら隠すことはない。
*quod et promiscue in fluminibus perluuntur
**というのは、川の中で(男女が)混じって入浴しても、
*et pellibus aut parvis renonum tegimentis utuntur, magna corporis parte nuda.
**なめし皮や、小さな毛皮の覆いを用いるが、体の大部分は裸なのである。
===22節===
'''ゲルマーニア人の土地制度'''
*① Agri culturae non student,
**(ゲルマーニア人は)[[w:農耕|土地を耕すこと]]に熱心ではなく、
*maiorque pars eorum victus in lacte, caseo, carne consistit.
**彼らの大部分は、生活の糧が[[w:乳|乳]]、[[w:チーズ|チーズ]]、[[w:肉|肉]]で成り立っている。
*② Neque quisquam agri modum certum aut fines habet proprios;
**何者も、土地を確定した境界で、しかも持続的な領地として、持ってはいない。
*sed magistratus ac principes in annos singulos
**けれども、官吏や領袖たちは、各年ごとに、
*gentibus cognationibusque hominum, quique una coierunt,
**一緒に集住していた種族や血縁の人々に、
*quantum et quo loco visum est agri adtribuunt
**適切と思われる土地の規模と場所を割り当てて、
*atque anno post alio transire cogunt.
**翌年には他(の土地)へ移ることを強いるのである。
**:(訳注:[[ガリア戦記 第4巻#1節|第4巻1節]]には、スエービー族の説明として同様の記述がある。)
*③ Eius rei multas adferunt causas:
**(官吏たちは)その事の多くの理由を説明する。
*ne adsidua consuetudine capti studium belli gerendi agricultura commutent;
**(部族民が)[[w:居住|定住]]する習慣にとらわれて、戦争遂行の熱意を土地を耕すことに変えてしまわないように。
*ne latos fines parare studeant, potentioresque humiliores possessionibus expellant;
**広大な領地を獲得することに熱心になって、有力者たちが弱者たちを地所から追い出さないように。
*ne accuratius ad frigora atque aestus vitandos aedificent;
**寒さや暑さを避けるために(住居を)非常な入念さで建築することがないように。
*ne qua oriatur pecuniae cupiditas, qua ex re factiones dissensionesque nascuntur;
**金銭への欲望が増して、その事から派閥や不和が生ずることのないように。
*ut animi aequitate plebem contineant, cum suas quisque opes cum potentissimis aequari videat.
**おのおのが自分の財産も最有力者のも同列に置かれていると見ることで、心の平静により民衆を抑えるように。
<br>
:(訳注:[[w:ストラボン|ストラボン]]<ref>ストラボン『ギリシア・ローマ世界地誌Ⅰ』(前掲、p.510)</ref>や[[w:タキトゥス|タキトゥス]]<ref>タキトゥス『ゲルマーニア』23章・16章などを参照。26章では農耕についても解説されている。</ref>などの著述家たちも、ゲルマーニアの住民が農耕をせず、
:遊牧民のように移動しながら暮らし、小さな住居に住み、食料を家畜に頼っていると記述している。)
===23節===
'''ゲルマーニア諸部族のあり方'''
*① Civitatibus maxima laus est
**諸部族にとって、最も称賛されることは、
*quam latissime circum se vastatis finibus solitudines habere.
**できる限り広く自分たちの周辺で領土を荒らして荒野に保っておくことである。
*② Hoc proprium virtutis existimant,
**以下のことを(自分たちの)武勇の特質と考えている。
*expulsos agris finitimos cedere,
**近隣の者たちが土地から追い払われて立ち去ること、
*neque quemquam prope {se} audere consistere;
**および、何者も自分たちの近くにあえて定住しないこと、である。
*③ simul hoc se fore tutiores arbitrantur, repentinae incursionis timore sublato.
**他方、これにより、予期せぬ襲撃の恐れを取り除いて、自分たちはより安全であろうと思われた。
*④ Cum bellum civitas aut inlatum defendit aut infert,
**部族に戦争がしかけられて防戦したり、あるいはしかけたりしたときには、
*magistratus, qui ei bello praesint, ut vitae necisque habeant potestatem, deliguntur.
**その戦争を指揮して、生かすも殺すも勝手な権力を持つ将官が選び出される。
*⑤ In pace nullus est communis magistratus,
**平時においては、(部族に)共通の将官は誰もいないが、
*sed principes regionum atque <u>[[wikt:en:pagus#Latin|pagorum]]</u> inter suos ius dicunt controversiasque minuunt.
**地域や<u>郷</u>の領袖たちが、身内の間で判決を下して、訴訟ごとを減らす。
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''pagus'' (郷) はここでは、部族の領土の農村区画を指す行政用語<ref name="pagus"/>。)</span>
*⑥ Latrocinia nullam habent infamiam, quae extra fines cuiusque civitatis fiunt,
**それぞれの部族の領土の外で行なう略奪のことは、何ら恥辱とは見なしていない。
*atque ea iuventutis exercendae ac desidiae minuendae causa fieri praedicant.
**さらに、それ(略奪)は、青年たちを訓練することや、怠惰を減らすことのために行なわれる、と公言している。
*⑦ Atque ubi quis ex principibus in concilio dixit
**そして、領袖たちのうちのある者が(次のように)言うや否や、
*se ducem fore, qui sequi velint, profiteantur,
**《自分が(略奪の)引率者となるから、追随したい者は申し出るように》と(言うや否や)、
*consurgunt ii qui et causam et hominem probant, suumque auxilium pollicentur
**(略奪の)口実にも(引率する)人物にも賛同する者は立ち上がって、自らの支援を約束して、
*atque ab multitudine conlaudantur:
**群衆から大いに誉められる。
*⑧ qui ex his secuti non sunt,
**これら(約束した者)のうちで(略奪に)追随しない者は、
*in desertorum ac proditorum numero ducuntur,
**逃亡兵や裏切り者と見なされて、
*omniumque his rerum postea fides derogatur.
**その後は、彼らにとってあらゆる事の信頼が(皆から)拒まれる。
*⑨ Hospitem violare fas non putant;
**客人に暴行することは道理に適うとは思ってはいない。
*qui quacumque de causa ad eos venerunt,
**彼ら(ゲルマーニア人)のところへ理由があって来た者(=客人)は誰であれ、
*ab iniuria prohibent, sanctos habent,
**無法行為から防ぎ、尊ぶべきであると思っている。
*hisque omnium domus patent victusque communicatur.
**彼ら(客人)にとってすべての者の家は開放されており、生活用品は共有される。
**:(訳注:客人への接待ぶりについては、[[w:タキトゥス|タキトゥス]]<ref>タキトゥス『ゲルマーニア』21章を参照。</ref>も伝えている。)
===24節===
[[画像:Celts.svg|thumb|right|200px|ケルト文化の広がり(BC800年~BC400年頃)。ケルト系部族の優越は、[[w:鉄器|鉄器]]文化の発達などによると考えられている。]]
[[画像:Mappa_di_Eratostene.jpg|thumb|right|200px|[[w:エラトステネス|エラトステネス]]の地理観を再現した世界地図(19世紀)。左上に「Orcynia Silva(オルキュニアの森)」とある。]]
[[画像:Hallstatt_LaTene.png|thumb|right|200px|[[w:ハルシュタット文化|ハルシュタット文化]]期と[[w:ラ・テーヌ文化|ラ・テーヌ文化]]期におけるケルト系部族の分布。右上にウォルカエ族(Volcae)やボイイ族(Boii)の名が見える。ボイイ族が居住していた地域はボイオハエムム(Boihaemum)と呼ばれ、[[w:ボヘミア|ボヘミア]](Bohemia)として現在に残る。]]
'''ゲルマーニア人とガッリア人'''
*① Ac fuit antea tempus,
**かつてある時代があって、
*cum Germanos Galli virtute superarent,
**そのとき、[[w:ゲルマニア|ゲルマーニア]]人を[[w:ガリア|ガッリア]]人が武勇で優っており、
*ultro bella inferrent, propter hominum multitudinem agrique inopiam
**人間の多さと土地の欠乏のために(ガッリア人は)自発的に戦争をしかけて、
*trans Rhenum colonias mitterent.
**レーヌス(=[[w:ライン川|ライン川]])の向こう側へ入植者たちを送り込んでいた。
*② Itaque ea quae fertilissima Germaniae sunt loca circum Hercyniam silvam,
**[[w:ヘルキュニア|ヘルキュニア]]の森の周辺のゲルマーニアで最も肥沃な地を、
*quam Eratostheni et quibusdam Graecis fama notam esse video,
**それを[[w:エラトステネス|エラトステネス]]や[[w:ギリシア人|ギリシア人]]のある者たちも風聞により知っていたと私は見出して、
*quam illi Orcyniam appellant,
**それを彼らはオルキュニアと呼んでいるが、
*Volcae Tectosages occupaverunt atque ibi consederunt;
**(その地を)ウォルカエ族系のテクトサゲス族が占領して、そこに定住していた。
*③ quae gens ad hoc tempus his sedibus sese continet
**その種族は、この時代までこの居場所に留まっており、
*summamque habet iustitiae et bellicae laudis opinionem.
**公正さと戦いの称賛で最高の評判を得ている。
*④ Nunc quod in eadem inopia, egestate, patientia qua Germani permanent,
**今も、窮乏や貧困を、ゲルマーニア人が持ちこたえているのと同じ忍耐をもって、
*eodem victu et cultu corporis utuntur;
**同じ食物および体の衣服を用いている。
*⑤ Gallis autem provinciarum propinquitas et transmarinarum rerum notitia
**これに対して、ガッリア人にとって(ローマの)属州に近接していること、および海外のものを知っていることは、
*multa ad copiam atque usus largitur,
**富や用品の多くが供給されている。
*paulatim adsuefacti superari multisque victi proeliis
**(ガッリア人は)しだいに圧倒されることや多くの戦闘で打ち負かされることに慣らされて、
*ne se quidem ipsi cum illis virtute comparant.
**(ガッリア人)自身でさえも彼ら(ゲルマーニア人)と武勇で肩を並べようとはしないのである。
<br>
:('''訳注''':本節の①項については、[[w:タキトゥス|タキトゥス]]が著書『[[w:ゲルマニア (書物)|ゲルマーニア]]』28章([[s:la:De_origine_et_situ_Germanorum_(Germania)#XXVIII|原文]])において、次のように言及している。
:''Validiores olim Gallorum res fuisse summus auctorum divus Iulius tradit; ''
:かつてガッリア人の勢力がより強力であったことは、最高の証言者である神君ユリウス(・カエサル)も伝えている。
:''eoque credibile est etiam Gallos in Germaniam transgressos:''
:それゆえに、ガッリア人でさえもゲルマーニアに渡って行ったと信ずるに値するのである。)
===25節===
'''ヘルキュニアの森林地帯'''
*① Huius Hercyniae silvae, quae supra demonstrata est, latitudo
**前に述べたヘルキュニアの森の幅は、
*novem dierum iter expedito patet:
**軽装の旅で9日間(かかるだけ)広がっている。
*non enim aliter finiri potest,
**なぜなら(ゲルマーニア人は)他に境界を定めることができないし、
*neque mensuras itinerum noverunt.
**道のりの測量というものを知っていないのである。
[[画像:FeldbergPanorama.jpg|thumb|center|1000px|ヘルキュニアの森林地帯(ドイツ南西部、[[w:シュヴァルツヴァルト|シュヴァルツヴァルトの森]]の最高峰フェルドベルク山 [[w:en:Feldberg_(Black Forest)|Feldberg]] の眺望)]]
*② Oritur ab Helvetiorum et Nemetum et Rauracorum finibus
**(その森は)[[w:ヘルウェティイ族|ヘルウェティイ族]]とネメテス族とラウラキ族の領土から発しており、
**:(訳注:これはライン川東岸に沿って南北に長い現在の[[w:シュヴァルツヴァルト|シュヴァルツヴァルトの森]]のことである。)
*rectaque fluminis [[w:la:Danubius|Danubii]] regione
**ダヌビウス川に沿って真っ直ぐに(流れ)、
**:(訳注:ダヌビウス Danubius はダヌウィウス Danuvius とも呼ばれ、現在の[[w:ドナウ川|ドナウ川]]である。)
*pertinet ad fines Dacorum et Anartium;
**[[w:ダキア人|ダキ族]]やアナルテス族の領土へ至る。
**:(訳注:これは[[w:ダキア|ダキア]] [[w:la:Dacia|Dacia]] すなわち現在の[[w:ルーマニア|ルーマニア]]辺りの地域である。)
*③ hinc se flectit sinistrorsus diversis ab flumine regionibus
**ここ(ダヌビウス川)から(森は)左方へ向きを変えて、川の地域からそれて、
**:(訳注:川が南へ折れるのとは逆に、森は北へそれて[[w:エルツ山地|エルツ山地]]を通って[[w:カルパティア山脈|カルパティア山脈]]に至ると考えられている<ref>タキトゥス『ゲルマーニア』泉井久之助訳注、岩波文庫、p.131-132の注などを参照</ref>。)
*multarumque gentium fines propter magnitudinem attingit;
**(森の)大きさのために、多くの種族の領土に接しているのである。
*④ neque quisquam est huius Germaniae, qui se aut adisse ad initium eius silvae dicat,
**その森の(東の)端緒へ訪れたと言う者は、こちら(西側)の[[w:ゲルマニア|ゲルマーニア]]に属する者では誰もいないし、
*cum dierum iter LX processerit,
**60日間の旅で進んでも(いないのであるが)、
*aut, quo ex loco oriatur, acceperit:
**あるいは(森が)どの場所から生じているか把握した(者もいないのである)。
*⑤ multaque in ea genera ferarum nasci constat, quae reliquis in locis visa non sint;
**それ(=森)の中には、ほかの地では見られない野獣の多くの種類が生息していることが知られている。
*ex quibus quae maxime differant ab ceteris et memoriae prodenda videantur,
**それらのうちで、ほかの(地の)ものと大きく異なったものは、記録で伝えるべきものであり、
*haec sunt.
**以下のものである。
===26節===
[[画像:Rentier fws 1.jpg|thumb|right|200px|[[w:トナカイ|トナカイ]]([[w:la:Tarandrus|Rangifer tarandus]])。発達した枝角を持ち、雌雄ともに角があるという特徴は本節の説明に合致している。が、角が一本ということはないし、野生のトナカイは少なくとも現在では極北の地にしか住まない。]]
'''ヘルキュニアの野獣①'''
*① Est [[w:la:Bos|bos]] [[w:la:Cervus|cervi]] figura,
**雄[[w:シカ|鹿]]の姿形をした[[w:ウシ|牛]]がいる。
*cuius a media fronte inter aures unum [[w:la:Cornu|cornu]] existit
**それの両耳の間の額の真ん中から一つの角が出ており、
*excelsius magisque derectum his, quae nobis nota sunt, cornibus;
**我々(ローマ人)に知られている角よりも非常に高くて真っ直ぐである。
*ab eius summo sicut palmae ramique late diffunduntur.
**その先端部から、手のひらや枝のように幅広く広がっている。
*Eadem est feminae marisque natura,
**雌と雄の特徴は同じであり、
*eadem forma magnitudoque cornuum.
**角の形や大きさも同じである。
<br>
:('''訳注''':カエサルによる本節の記述は[[w:ユニコーン|ユニコーン]](一角獣)の伝説に
:結び付けられている。しかし本節における発達した枝角の説明は、むしろ
:[[w:トナカイ|トナカイ]]や[[w:ヘラジカ|ヘラジカ]]のような獣を想起させる。)
===27節===
[[画像:Bigbullmoose.jpg|thumb|right|250px|[[w:ヘラジカ|ヘラジカ]](Alces alces)。<br>発達した枝角と大きな体を持ち、名称以外は本節の説明とまったく合致しない。<br>しかしながら、[[w:ガイウス・プリニウス・セクンドゥス|大プリニウス]]の『[[w:博物誌|博物誌]]』第8巻(16章・39節)には、[[w:アクリス|アクリス]]([[w:en:Achlis|achlis]])という一見ヘラジカ(alces)のような奇獣が紹介され、その特徴は本節②項以下のカエサルの説明とほぼ同じであることが知られている。]]
[[画像:Gressoney-Saint-Jean-Museo-IMG 1824.JPG|thumb|right|250px|[[w:ノロジカ|ノロジカ]](Capreolus capreolus)。<br>ヨーロッパに広く分布する小鹿で、まだら模様で山羊にも似ているので、本節①項の説明と合致する。しかし、関節はあるし、腹ばいにもなる。]]
'''ヘルキュニアの野獣②'''
*① Sunt item, quae appellantur [[w:la:Alces|alces]].
**アルケスと呼ばれるものもいる。
**:(訳注:アルケス alces とは[[w:ヘラジカ|ヘラジカ]](オオシカ)を指す単語であるが本節の説明と矛盾する。)
*Harum est consimilis [[w:la:Capra|capris]] figura et varietas pellium,
**これらの姿形や毛皮のまだらは雄[[w:ヤギ|山羊]]に似ている。
*sed magnitudine paulo antecedunt
**が、(山羊を)大きさで少し優っており、
*mutilaeque sunt cornibus
**角は欠けていて、
*et crura sine nodis articulisque habent.
**脚部には関節の類いがない。
**:(訳注:nodus も articulus も関節の類いを意味する)
*② Neque quietis causa procumbunt
**休息のために横たわらないし、
*neque, si quo adflictae casu conciderunt,
**もし何か不幸なことで偶然にも倒れたならば、
*erigere sese aut sublevare possunt.
**自らを起こすことも立ち上げることもできない。
*③ His sunt arbores pro cubilibus;
**これらにとって木々は寝床の代わりである。
*ad eas se adplicant
**それら(の木々)へ自らを寄りかからせて、
*atque ita paulum modo reclinatae quietem capiunt.
**こうして少しだけもたれかかって休息を取るのである。
*④ Quarum ex vestigiis
**それらの足跡から
*cum est animadversum a venatoribus, quo se recipere consuerint,
**(鹿が)どこへ戻ることを常としているかを狩人によって気付かれたときには、
*omnes eo loco aut ab radicibus subruunt aut accidunt arbores,
**その地のすべての木々を(狩人は)根から倒すか、あるいは傷つけて、
*tantum ut summa species earum stantium relinquatur.
**それらの(木々の)いちばん(外側)の見かけが、立っているかのように残して置かれる。
*⑤ Huc cum se consuetudine reclinaverunt,
**そこに(鹿が)習性によってもたれかかったとき、
*infirmas arbores pondere adfligunt atque una ipsae concidunt.
**弱った木々を重みで倒してしまい、自身も一緒に倒れるのである。
===28節===
[[画像:Wisent.jpg|thumb|right|250px|[[w:ヨーロッパバイソン|ヨーロッパバイソン]]([[w:la:Bison|Bison bonasus]])。<br>かつてヨーロッパに多数生息していた野牛で、相次ぐ乱獲により野生のものは20世紀初頭にいったん絶滅したが、動物園で繁殖させたものを再び野生に戻す試みが行なわれている。]]
[[画像:Muybridge Buffalo galloping.gif|thumb|right|200px|疾走するバイソン]]
[[画像:Drinkhoorn_roordahuizum.JPG|thumb|right|200px|酒杯として用いられた野獣の角。銀で縁取りされている。]]
'''ヘルキュニアの野獣③'''
*③ Tertium est genus eorum, qui uri appellantur.
**第3のものは、野牛と呼ばれる種類である。
*Hi sunt magnitudine paulo infra [[w:la:Elephantidae|elephantos]],
**これらは、大きさで少し[[w:ゾウ|象]]に劣るが、
*specie et colore et figura [[w:la:Taurus|tauri]].
**見かけと色と姿形は雄[[w:ウシ|牛]]である。
*② Magna vis eorum est et magna velocitas,
**それらの力は大きく、(動きも)とても速く、
*neque homini neque ferae, quam conspexerunt, parcunt.
**人間でも野獣でも、見かけたものには容赦しない。
*Hos studiose foveis captos interficiunt.
**(ゲルマーニア人は)これらを熱心に落とし穴で捕らえたものとして殺す。
*③ Hoc se labore durant adulescentes
**この労苦により青年たちを鍛え、
*atque hoc genere venationis exercent,
**[[w:狩猟|狩猟]]のこの類いで鍛錬するのであり、
*et qui plurimos ex his interfecerunt,
**これら(の野牛)のうちから最も多くを殺した者は、
*relatis in publicum [[w:la:Cornu|cornibus]], quae sint testimonio,
**証拠になるための[[w:角|角]]を公の場に持参して、
*magnam ferunt laudem.
**大きな賞賛を得るのである。
*④ Sed adsuescere ad homines et mansuefieri ne parvuli quidem excepti possunt.
**けれども(野牛は)幼くして捕らえられてさえも、人間に慣れ親しんで飼い慣らされることはできない。
*⑤ Amplitudo cornuum et figura et species multum a nostrorum boum cornibus differt.
**角の大きさや形や見かけは、我々(ローマ人)の牛の角とは大いに異なる。
*⑥ Haec studiose conquisita ab labris argento circumcludunt
**これらは熱心に探し求められて、縁を[[w:銀|銀]]で囲って、
*atque in amplissimis epulis pro poculis utuntur.
**とても贅沢な祝宴において[[w:盃|杯]]として用いられるのである。
==対エブロネス族追討戦(1)==
===29節===
'''ゲルマーニアから撤兵、対アンビオリクス戦へ出発'''
*① Caesar, postquam per Ubios exploratores comperit Suebos sese in silvas recepisse,
**カエサルは、ウビイー族の偵察者たちを通じてスエービー族が森に撤退したことを確報を受けた後で、
**:(訳注:[[#10節|10節]]によれば、バケニス Bacenis の森。[[#コラム「スエービー族とカッティー族・ケールスキー族・ウビイー族について|既述]]のように、スエービー族とはカッティー族 [[w:en:Chatti|Chatti]] と考えられる。)
*inopiam frumenti veritus,
**糧食の欠乏を恐れて、
*quod, ut supra demonstravimus, minime omnes Germani agri culturae student,
**というのは、前に説明したように、ゲルマーニア人は皆が土地を耕すことに決して熱心でないので、
**:(訳注:[[#22節|22節]]を参照。耕地がなければ、ローマ軍は穀物の現地調達ができない。)
*constituit non progredi longius;
**より遠くへ前進しないことを決めた。
*② sed, ne omnino metum reditus sui barbaris tolleret
**けれども、自分たち(ローマ軍)が戻って来る恐れを蛮族からまったく取り去ってしまわないように、
*atque ut eorum auxilia tardaret,
**かつ、彼ら(ゲルマーニア人)の(ガッリア人への)支援を遅らせるように、
*reducto exercitu partem ultimam pontis, quae ripas Ubiorum contingebat,
**ウビイー族側の岸(=レーヌス川東岸)につなげていた橋の最後の部分に軍隊を連れ戻して、
*in longitudinem pedum ducentorum rescindit
**(橋を)長さ200[[w:ペース (長さ)|ペース]](=約60m)切り裂いて、
*③ atque in extremo ponte turrim tabulatorum quattuor constituit
**橋の先端のところに4層の櫓を建てて、
*praesidiumque cohortium duodecim pontis tuendi causa ponit
**12個[[w:コホルス|歩兵大隊]]の守備隊を橋を防護するために配置して、
*magnisque eum locum munitionibus firmat.
**その場所を大きな城砦で固めた。
*Ei loco praesidioque C.(Gaium) Volcacium Tullum adulescentem praeficit.
**その場所と守備隊を青年ガイウス・ウォルカキウス・トゥッルスに指揮させた。
**:(訳注:元執政官 [[w:en:Lucius_Volcatius_Tullus_(consul_66_BC)|Lucius Volcatius Tullus]] に対して、青年 adulescentem と区別したのであろう。
**:ウォルカキウス Volcacium の綴りは、写本により相異する。)
*④ Ipse, cum maturescere frumenta inciperent,
**(カエサル)自身は、穀物が熟し始めたので、
*ad bellum [[w:la:Ambiorix|Ambiorigis]] profectus per Arduennam silvam,
**[[w:アンビオリクス|アンビオリクス]]との戦争へ、アルドゥエンナの森を通って進発した。
**:(訳注:アルドゥエンナの森については、[[ガリア戦記 第5巻#3節|第5巻3節]]ですでに説明されている。)
*quae est totius Galliae maxima
**それ(=森)は全ガッリアで最も大きく、
*atque ab ripis Rheni finibusque Treverorum ad Nervios pertinet
**レヌス(=[[w:ライン川|ライン川]])の岸およびトレーウェリー族の境界から、[[w:ネルウィイ族|ネルウィイ族]](の領土)へ及んでおり、
*milibusque amplius quingentis in longitudinem patet,
**長さは500ローママイル(=約740km)より大きく広がっている。
*L.(Lucium) Minucium Basilum cum omni equitatu praemittit,
**ルキウス・ミヌキウス・バスィルスをすべての騎兵隊とともに先遣した。
*si quid celeritate itineris atque opportunitate temporis proficere possit;
**行軍の迅速さと時間の有利さによって、何かを得られるかどうかということである。
*⑤ monet, ut ignes in castris fieri prohibeat, ne qua eius adventus procul significatio fiat:
**野営において火を生じることを禁じるように、何事かにより遠くから彼の到来の予兆を生じないように、戒めた。
*sese confestim subsequi dicit.
**(カエサル)自らは、ただちに後から続くと言った。
===30節===
'''アンビオリクスがバスィリスのローマ騎兵から逃れる'''
*① Basilus, ut imperatum est, facit.
**バスィルスは、命令されたように、行なった。
*Celeriter contraque omnium opinionem confecto itinere
**速やかに、かつ皆の予想に反して、行軍を成し遂げて、
*multos in agris inopinantes deprehendit:
**(城市でない)土地にいた気付かないでいる多くの者を捕らえた。
*eorum indicio ad ipsum Ambiorigem contendit, quo in loco cum paucis equitibus esse dicebatur.
**彼らの申し立てにより、[[w:アンビオリクス|アンビオリクス]]その人がわずかな騎兵たちとともにいると言われていた場所に急いだ。
*② Multum cum in omnibus rebus, tum in re militari potest Fortuna.
**あらゆる事柄においても、とりわけ軍事においても、運命(の女神)が大いに力がある。
*Nam magno accidit casu,
**実際のところ、大きな偶然により生じたのは、
*ut in ipsum incautum etiam atque imparatum incideret,
**(アンビオリクス)自身でさえも油断していて不用意なところに(バスィルスが)遭遇したが、
*priusque eius adventus ab omnibus videretur, quam fama ac nuntius adferretur:
**彼の到来が(ガッリア勢の)皆により見られたのが、風聞や報告により知らされるよりも早かったのである。
*sic magnae fuit fortunae
**同様に(アンビオリクスにとって)大きな幸運に属したのは、
*omni militari instrumento, quod circum se habebat, erepto,
**自らの周りに持っていたすべての武具を奪われて、
*raedis equisque comprehensis
**四輪馬車や馬を差し押さえられても、
*ipsum effugere mortem.
**(アンビオリクス)自身は死を逃れたことである。
*③ Sed hoc quoque factum est,
**しかし、以下のこともまた起こった。
*quod aedificio circumdato silva,
**(アンビオリクスの)館が森で取り巻かれており、
*─ ut sunt fere domicilia Gallorum, qui vitandi aestus causa
**─ ガッリア人の住居はほぼ、暑さを避けることのために、
*plerumque silvarum atque fluminum petunt propinquitates ─,
**たいてい森や川の近接したところに求めるのであるが ─
*comites familiaresque eius angusto in loco paulisper equitum nostrorum vim sustinuerunt.
**彼の従者や郎党どもが、狭い場所でしばらく、我が方(ローマ勢)の騎兵の力を持ちこたえたのだ。
*④ His pugnantibus illum in equum quidam ex suis intulit:
**彼らが戦っているときに、彼(アンビオリクス)を配下のある者が馬に押し上げて、
*fugientem silvae texerunt.
**逃げて行く者(アンビオリクス)を森が覆い隠した。
*Sic et ad subeundum periculum et ad vitandum multum Fortuna valuit.
**このように(アンビオリクスが)危険に突き進んだことや避けられたことに対して、運命(の女神)が力をもったのである。
===31節===
'''エブロネス族の退避、カトゥウォルクスの最期'''
*① [[w:la:Ambiorix|Ambiorix]] copias suas iudicione non conduxerit, quod proelio dimicandum non existimarit,
**[[w:アンビオリクス|アンビオリクス]]は、戦闘で争闘するべきとは考えていなかったので、自らの判断で軍勢を集めなかったのか、
*an tempore exclusus et repentino equitum adventu prohibitus,
**あるいは、時間に阻まれ、予期せぬ[[w:騎兵|騎兵]]の到来に妨げられて、
*cum reliquum exercitum subsequi crederet,
**(ローマ勢の)残りの軍隊(=軍団兵)が後続して来ることを信じたためなのか、
*dubium est.
**不確かなことである。
*② Sed certe dimissis per agros nuntiis sibi quemque consulere iussit.
**けれども、確かに領地を通じて伝令を四方に遣わして、おのおのに自らを助けることを命じた。
*Quorum pars in Arduennam silvam, pars in continentes paludes profugit;
**それらの者たち(領民)のある一部はアルドゥエンナの森に、一部は絶え間ない沼地に退避した。
*③ qui proximi Oceano fuerunt,
**<ruby><rb>大洋<span style="color:#009900;">〔[[w:大西洋|大西洋]]〕</span></rb><rp>(</rp><rt>オーケアヌス</rt><rp>)</rp></ruby>にとても近いところにいた者たちは、
*hi insulis sese occultaverunt, quas aestus efficere consuerunt:
**[[w:潮汐|満潮]]が形成するのが常であった島々に身を隠した。
[[画像:Taxus baccata MHNT.jpg|thumb|right|300px|[[w:ヨーロッパイチイ|ヨーロッパイチイ]]([[w:en:Taxus baccata|Taxus baccata]])<br>欧州などに広く自生するイチイ科の[[w:針葉樹|針葉樹]]。赤い果実は食用で甘い味だが、種子には[[w:タキシン|タキシン]](taxine)という[[w:アルカロイド|アルカロイド]]系の毒物が含まれており、種子を多量に摂れば[[w:痙攣|けいれん]]を起こして[[w:呼吸困難|呼吸困難]]で死に至る。<br>他方、[[w:タキサン|タキサン]](taxane)という成分は[[w:抗がん剤|抗がん剤]]などの[[w:医薬品|医薬品]]に用いられる。]]
*④ multi ex suis finibus egressi
**多くの者たちは、自分たちの領土から出て行って、
*se suaque omnia alienissimis crediderunt.
**自分たちとその一切合財をまったく異邦の者たちに委ねた。
*⑤Catuvolcus, rex dimidiae partis Eburonum,
**[[w:カトゥウォルクス|カトゥウォルクス]]は、[[w:エブロネス族|エブロネス族]]の半分の地方の王であり、
*qui una cum Ambiorige consilium inierat,
**アンビオリクスと一緒に(カエサルに造反する)企てに取りかかった者であるが、
**:(訳注:[[ガリア戦記 第5巻#26節|第5巻26節]]を参照。)
*aetate iam confectus, cum laborem aut belli aut fugae ferre non posset,
**もはや老衰していたので、戦争の労苦、あるいは逃亡の労苦に耐えることができなかったので、
**:(訳注:aetate confectus 老衰した)
*omnibus precibus detestatus Ambiorigem, qui eius consilii auctor fuisset,
**その企ての張本人であったアンビオリクスをあらゆる呪詛のことばで呪って、
*taxo, cuius magna in Gallia Germaniaque copia est, se exanimavit.
**[[w:ガリア|ガッリア]]や[[w:ゲルマニア|ゲルマーニア]]に大量にあった[[w:イチイ属|イチイ]]によって、息絶えたのであった。
===32節===
'''ゲルマーニア部族の弁明、アドゥアトゥカに輜重を集める'''
*① Segni Condrusique, ex gente et numero Germanorum,
**[[w:ゲルマニア|ゲルマーニア]]人の種族や集団のうち、[[w:セグニ族|セグニ族]]と[[w:コンドルスィ族|コンドルスィ族]]は、
*qui sunt inter Eburones Treverosque,
**[[w:エブロネス族|エブロネス族]]とトレーウェリー族の間にいたが、
*legatos ad Caesarem miserunt oratum,
**カエサルのところへ嘆願するために使節たちを遣わした。
*ne se in hostium numero duceret
**自分たちを敵として見なさないように、と。
*neve omnium Germanorum, qui essent citra Rhenum, unam esse causam iudicaret;
**しかも、レーヌス(=[[w:ライン川|ライン川]])のこちら側にいるゲルマーニア人すべての事情は1つであると裁断しないように、と。
*nihil se de bello cogitavisse, nulla Ambiorigi auxilia misisse.
**自分たちは、戦争についてまったく考えたことはないし、[[w:アンビオリクス|アンビオリクス]]に何ら援軍を派遣したことはない、と。
*② Caesar explorata re quaestione captivorum,
**カエサルは捕虜を審問することによってその事を探り出すと、
*si qui ad eos Eburones ex fuga convenissent,
**もし彼らのところへ逃亡しているエブロネス族の者たちの誰かが訪れたならば、
*ad se ut reducerentur, imperavit;
**自分(カエサル)のところへ連れ戻されるようにと、命令した。
*si ita fecissent, fines eorum se violaturum negavit.
**もしそのように行なったならば、彼らの領土を自分(カエサル)が侵害することはないであろうと主張した。
*③ Tum copiis in tres partes distributis
**それから、軍勢を3方面に分散して、
*impedimenta omnium legionum Aduatucam contulit.
**すべての軍団の[[w:輜重|輜重]]を[[w:アドゥアトゥカ|アドゥアトゥカ]]に運び集めた。
**:(訳注:アドゥアトゥカ Aduatuca の表記は、写本によってはアトゥアトゥカ Atuatuca となっている。現在の[[w:トンゲレン|トンゲレン市]]。)
*④ Id castelli nomen est.
**それは、城砦の名前である。
*Hoc fere est in mediis Eburonum finibus,
**これは、エブロネス族の領土のほぼ真ん中にあり、
*ubi Titurius atque Aurunculeius hiemandi causa consederant.
**そこには、[[w:クィントゥス・ティトゥリウス・サビヌス|ティトゥリウス(・サビヌス)]]と[[w:ルキウス・アウルンクレイウス・コッタ|アウルンクレイウス(・コッタ)]]が越冬するために陣取っていた。
*⑤ Hunc cum reliquis rebus locum probabat,
**(カエサルは)この場所を、ほかの事柄によっても是認したし、
*tum quod superioris anni munitiones integrae manebant, ut militum laborem sublevaret.
**またとりわけ前年の防備が損なわれずに存続していたので、兵士の労苦を軽減するためでもある。
*Praesidio impedimentis legionem quartamdecimam reliquit,
**(全軍の)輜重の守備隊として第14軍団を(そこに)残した。
*unam ex his tribus, quas proxime conscriptas ex Italia traduxerat.
**(それは)最近にイタリアから徴集されたものとして連れて来られた3個(軍団)のうちの1個である。
**:(訳注:[[#1節|1節]]を参照。イタリア Italia とはカエサルが総督であった[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]のことであろう。)
*Ei legioni castrisque Q.(Quintum) Tullium Ciceronem praeficit ducentosque equites ei attribuit.
**その[[w:ローマ軍団|軍団]]と陣営には[[w:クィントゥス・トゥッリウス・キケロ|クィントゥス・トゥッリウス・キケロ]]を指揮者として、200騎の騎兵を彼に割り当てた。
===33節===
'''軍勢をカエサル、ラビエヌス、トレボニウスの三隊に分散'''
*① Partito exercitu
**軍隊を分配して、
*T.(Titum) Labienum cum legionibus tribus ad Oceanum versus
**[[w:ティトゥス・ラビエヌス|ティトゥス・ラビエヌス]]には、3個[[w:ローマ軍団|軍団]]とともに、<ruby><rb>大洋<span style="color:#009900;">〔[[w:大西洋|大西洋]]〕</span></rb><rp>(</rp><rt>オーケアヌス</rt><rp>)</rp></ruby>の方へ向けて、
*in eas partes, quae Menapios attingunt, proficisci iubet;
**[[w:メナピイ族|メナピイ族]]に接する地方に出発することを命じた。
*② C.(Gaium) Trebonium cum pari legionum numero
**[[w:ガイウス・トレボニウス|ガイウス・トレボニウス]]には、軍団の同数とともに、
*ad eam regionem, quae Aduatucis adiacet, depopulandam mittit;
**[[w:アドゥアトゥキ族|アドゥアトゥキ族]]に隣接する領域へ、荒らすために派遣した。
[[画像:Locatie-Maas-3.png|thumb|right|200px|[[w:ベルギー|ベルギー]]周辺の地図。図の左側を[[w:スヘルデ川|スヘルデ川]]が、右側を[[w:マース川|マース川]]が流れているため、両河川は離れており、カエサルがどの地に言及しているのかはわからない。]]
[[画像:Schelde_4.25121E_51.26519N.jpg|thumb|right|200px|ベルギーの[[w:アントウェルペン|アントウェルペン]]周辺を流れる[[w:スヘルデ川|スヘルデ川]]河口付近の[[w:衛星画像|衛星画像]]。ラビエヌスが向かったメナピイ族に接する地方である。]]
*③ ipse cum reliquis tribus ad flumen [[w:la:Scaldis|Scaldim]], quod influit in [[w:la:Mosa|Mosam]],
**(カエサル)自身は、残りの3個(軍団)とともに、モサ(川)に流れ込むスカルディス川のところへ、
**:(訳注:スカルディス Scaldis は現在の[[w:スヘルデ川|スヘルデ川]] Schelde で、フランス北部からベルギー、オランダへ流れている。
**:モサ川 Mosa すなわち現在の[[w:マース川|マース川]] Maas とは運河でつながるが、当時の関係およびカエサルの目的地は不詳。)
*extremasque Arduennae partes ire constituit,
**かつ[[w:アルデンヌ|アルドゥエンナ]](の森林)の外縁の地方へ行軍することを決めた。
*quo cum paucis equitibus profectum Ambiorigem audiebat.
**そこへは、アンビオリクスがわずかな騎兵たちとともに出発したと聞いていたのだ。
*④ Discedens post diem septimum sese reversurum confirmat;
**(カエサルは陣営を)離れるに当たって、7日目の後(=6日後)に自分は引き返して来るであろうと断言した。
*quam ad diem ei legioni, quae in praesidio relinquebatur, deberi frumentum sciebat.
**その当日には、守備に残される軍団にとって糧食が必要とされることを(カエサルは)知っていたのだ。
*⑤ Labienum Treboniumque hortatur,
**(カエサルは)ラビエヌスとトレボニウスを(以下のように)鼓舞した。
*si rei publicae commodo facere possint,
**もし(ローマ軍全体の)公務のために都合良く行動することができるならば、
*ad eum diem revertantur,
**その日には戻って、
*ut rursus communicato consilio exploratisque hostium rationibus
**再び(互いの)考えを伝達して、敵たちの作戦を探り出し、
*aliud initium belli capere possint.
**次なる戦争の端緒を捉えようではないか、と。
<br>
:('''訳注:カエサル麾下の軍団配分について'''
:[[ガリア戦記 第5巻#8節|第5巻8節]]の記述によれば、ブリタンニアへ2度目の遠征をする前(BC54年)のカエサルは少なくとも8個軍団と騎兵4000騎を
:指揮していた。[[ガリア戦記 第5巻#24節|第5巻24節]]によれば、帰還後は8個軍団および軍団から離れた5個[[w:コホルス|歩兵大隊]]を指揮していたが、
:アンビオリクスによる[[w:アドゥアトゥカの戦い|アドゥアトゥカの戦い]]で[[w:クィントゥス・ティトゥリウス・サビヌス|サビヌス]]らとともに1個軍団と5個大隊が壊滅したので、残りは7個軍団となる。
:[[#1節|本巻1節]]によれば、この年(BC53年)には3個軍団を新たに徴集したので、計10個軍団となったはずである。
:[[#29節|29節]]では、このうちから12個大隊をライン川に架かる橋の守備に残し、[[#32節|32節]]では輜重の守備としてアドゥアトゥカに1個軍団を残した。
:本節の記述通りにラビエヌス、トレボニウス、カエサルがそれぞれ3個軍団(計9個)を受け持ったとすると、あわせて10個軍団と12個大隊という勘定になる。
:したがって、この勘定が正しいのであれば、ライン川に残した12個大隊は各軍団から引き抜いたものであり、各軍団は定員を割っていると考えられる。)
===34節===
'''夷を以って夷を制す対エブロネス族包囲網'''
*① Erat, ut supra demonstravimus, manus certa nulla,
**前に説明したように、(エブロネス族には)決まった手勢がなかったし、
**:(訳注:[[#31節|31節]]を参照。)
*non oppidum, non praesidium, quod se armis defenderet,
**自分たちが武器で防衛するような[[w:オッピドゥム|城市]]も、防塁もなかった。
*sed in omnes partes dispersa multitudo.
**けれども、あらゆる方面に大勢が分散されていた。
*② Ubi cuique aut valles abdita aut locus silvestris aut palus impedita
**おのおのが、密かな峡谷、あるいは森に覆われた土地といったところに、
*spem praesidi aut salutis aliquam offerebat, consederat.
**守備あるいは身の安全の何らかの希望を提供するところに、陣取っていた。
*③ Haec loca vicinitatibus erant nota,
**これらの場所は、近隣の者たちは知っていたので、
**:(訳注:すなわち、近隣のガッリア人には地の利があり、ローマ人には地の利がなかったので)
*magnamque res diligentiam requirebat
**事態はたいへんな注意深さを必要としていた。
*non in summa exercitus tuenda
**(ローマ人の)軍隊全体を守るためではなく、
*─ nullum enim poterat universis <a> perterritis ac dispersis periculum accidere ─,
**─なぜなら、脅かされ分散されている者たちにより(ローマ軍)総勢が危険を生じることはありえなかったので─
*sed in singulis militibus conservandis;
**けれども、個々の(ローマ人の)兵士たちを守ることのために(注意深さを必要としていた)。
*quae tamen ex parte res ad salutem exercitus pertinebat.
**少なくとも、ある面では、そういう事態は軍隊の安全に及んでいた。
*④ Nam et praedae cupiditas multos longius evocabat,
**すなわち、略奪品への欲望が多くの者たちをより遠くへ呼び寄せていたし、
*et silvae incertis occultisque itineribus confertos adire prohibebant.
**森林の不確かで隠された道のりによって密集した行軍を妨げていた。
*⑤ Si negotium confici stirpemque hominum sceleratorum interfici vellent,
**もし、戦役が完遂されること、および非道な連中(=エブロネス族)の血筋が滅ぼされることを欲するならば、
*dimittendae plures manus diducendique erant milites;
**いくつもの部隊が分遣され、兵士たちが展開されるべきである。
*⑥ si continere ad signa manipulos vellent, ut instituta ratio et consuetudo exercitus Romani postulabat,
**もし、ローマ軍が決められた流儀や慣行を要求するように、[[w:マニプルス|中隊]]が軍旗のもとにとどまることを欲するならば、
*locus ipse erat praesidio barbaris,
**その場所が蛮族にとって守りとなるであろう。
*neque ex occulto insidiandi et dispersos circumveniendi
**隠れたところから待ち伏せするため、分散した者たち(=ローマ兵)を包囲するために、
*singulis deerat audacia.
**(エブロネス族の)おのおのにとって勇敢さには事欠かなかった。
*⑦ Ut in eiusmodi difficultatibus, quantum diligentia provideri poterat providebatur,
**そのような困難さにおいては、できるかぎりの注意深さで用心されるほどに、用心されるものであるが、
*ut potius in nocendo aliquid praetermitteretur,
**結果として、むしろ(敵勢への)何らかの加害は差し控えられることになった。
*etsi omnium animi ad ulciscendum ardebant,
**たとえ、皆の心が(エブロネス族に)報復するために燃え立っていたとしても、
*quam cum aliquo militum detrimento noceretur.
**兵士たちの何らかの損失を伴って(敵に)加害がなされるよりも。
**:(訳注:伏兵によって被害をこうむるよりは、ローマ人の安全のために、ローマ兵による攻撃は避けられた。)
*⑧ Dimittit ad finitimas civitates nuntios Caesar;
**カエサルは、近隣の諸部族のところへ伝令たちを分遣した。
*omnes ad se vocat spe praedae ad diripiendos Eburones,
**[[w:エブロネス族|エブロネス族]]に対して戦利品を略奪することの望みを呼びかけた。
*ut potius in silvis Gallorum vita quam legionarius miles periclitetur,
**森の中で、軍団の兵士たちよりも、むしろガッリア人たちの生命が危険にさらされるように、
*simul ut magna multitudine circumfusa
**同時にまた、たいへんな大勢で取り囲むことによって、
*pro tali facinore stirps ac nomen civitatis tollatur.
**(サビヌスらを滅ぼした)あれほどの罪業の報いとして、部族の血筋と名前が抹殺されるように、と。
*Magnus undique numerus celeriter convenit.
**至る所から多数の者が速やかに集結した。
==スガンブリー族のアドゥアトゥカ攻略戦==
===35節===
'''スガンブリー族が略奪に駆り立てられてアドゥアトゥカへ向かう'''
*① Haec in omnibus Eburonum partibus gerebantur,
**これらのこと(=追討戦)が[[w:エブロネス族|エブロネス族]]のすべての地方で遂行されていたが、
*diesque adpetebat septimus, quem ad diem Caesar ad impedimenta legionemque reverti constituerat.
**カエサルがその日に[[w:輜重|輜重]]と(キケロの)[[w:ローマ軍団|軍団]]のところへ引き返すと決めていた7日目が近づいていた。
*② Hic quantum in bello Fortuna possit et quantos adferat casus, cognosci potuit.
**ここに、戦争では運命(の女神)がどれほどのことに力を持ち、どれほどの結末を引き起こすかを知ることができた。
**:(訳注:[[#30節|30節]]でもそうだが、カエサルは戦況が芳しくないと運命 Fortuna を持ち出すようである。[[#42節|42節]]も参照。)
*③ Dissipatis ac perterritis hostibus, ut demonstravimus,
**(前節で)説明したように、追い散らされて、脅かされている敵たちには、
*manus erat nulla quae parvam modo causam timoris adferret.
**(ローマ勢に敵を)恐れる理由を少しの程度も引き起こすようないかなる手勢もなかった。
*④ Trans Rhenum ad Germanos
**レーヌス(=[[w:ライン川|ライン川]])の向こう側の[[w:ゲルマニア|ゲルマーニア]]人のところへ、
*pervenit fama, diripi Eburones atque ultro omnes ad praedam evocari.
**エブロネス族が収奪され、(近隣部族の)皆が略奪品へ向けて自発的に誘惑されているという風評が達した。
*⑤ Cogunt equitum duo milia Sugambri, qui sunt proximi Rheno,
**レーヌスの近隣にいたスガンブリ族は、騎兵2000騎を徴集した。
*a quibus receptos ex fuga Tenctheros atque Usipetes supra docuimus.
**前に説明したように、彼らによって[[w:テンクテリ族|テンクテリ族]]と[[w:ウスィペテス族|ウスィペテス族]]が逃亡から迎え入れられたのだ。
**:(訳注:[[ガリア戦記 第4巻#16節|第4巻16節]]および[[ガリア戦記 第4巻#18節|18~19節]]を参照。)
*⑥ Transeunt Rhenum navibus ratibusque
**(スガンブリー族は)レーヌスを船団や筏で渡河した。
*triginta milibus passuum infra eum locum, ubi pons erat perfectus praesidiumque ab Caesare relictum.
**カエサルにより橋が造り上げられて守備隊が残された地点よりも下流に30ローママイル(約44km)のところを。
*Primos Eburonum fines adeunt;
**手始めとしてエブロネス族の領土に殺到して、
*multos ex fuga dispersos excipiunt,
**逃亡からちりぢりにさせられた多くの者たちを追い捕らえて、
*magno pecoris numero, cuius sunt cupidissimi barbari, potiuntur.
**蛮族たちが最も熱望している家畜の多数をわがものにした。
*⑦ Invitati praeda longius procedunt.
**(スガンブリー族の軍勢は)略奪品に誘われて、より遠くに進み出た。
*Non hos palus ─ in bello latrociniisque natos ─, non silvae morantur.
**戦争や追いはぎに生まれついていたので、沼地も森林も彼らを妨げることがなかった。
*Quibus in locis sit Caesar, ex captivis quaerunt;
**カエサルがどの場所にいるのか、捕虜から問い質した。
*profectum longius reperiunt omnemque exercitum discessisse cognoscunt.
**(彼が)より遠くに旅立って、軍隊の総勢が立ち去ったことを、知った。
*⑧ Atque unus ex captivis "Quid vos," inquit,
**なおかつ、捕虜たちのうちの一人が「なぜ、あんたたちは」と言い出した。
*"hanc miseram ac tenuem sectamini praedam,
**「この取るに足らない、ちっぽけな略奪品を追い求めるのか。
**:(訳注:sectamini はデポネンティア動詞 sector の直説法・2人称複数・現在形)
*quibus licet iam esse fortunatissimos?
**(あんたたちは)今や、最も富裕な者に成り得るのに。
*⑨ Tribus horis Aduatucam venire potestis:
**(この場所から)3時間で[[w:アドゥアトゥカ|アドゥアトゥカ]]に到達できる。
**:(訳注:古代ローマの時間は、不定時法であり、当地の緯度や季節により長さは異なる。)
*huc omnes suas fortunas exercitus Romanorum contulit;
**ここへ、ローマ軍がすべての財産を運び集めたのだ。
*praesidii tantum est, ut ne murus quidem cingi possit,
**守備隊は、城壁が取り巻かれることさえできないほどの(貧弱な)ものでしかない。
*neque quisquam egredi extra munitiones audeat."
**何者も防備の外側へあえて出て行こうとはしないのだ。」
*⑩ Oblata spe Germani,
**ゲルマーニア人たちは(ローマ軍の財産という)望みを提示されて、
*quam nacti erant praedam, in occulto relinquunt;
**(すでにエブロネス族の者たちから)獲得していた略奪品を秘されたところに残しておいて、
*ipsi Aduatucam contendunt usi eodem duce, cuius haec indicio cognoverant.
**自身は、このことを申告により知ったところの同じ(捕虜の)案内人を使役して、アドゥアトゥカに急いだ。
<br>
:('''訳注:部族名・地名の表記について'''
:スガンブリー族 Sugambri:α系写本では Sugambri、T・U写本では Sygambri、V・R写本では Sigambri
:テンクテリ族 Tenctheri:β系写本では Tenctheri、α系写本では Thenctheri
:アドゥアトゥカ Aduatuca:α系・T写本では Aduatuca、V・ρ系写本では Atuatuca)
===36節===
'''アドゥアトゥカのキケロが糧秣徴発に派兵する'''
*① [[w:la:Quintus_Tullius_Cicero|Cicero]], qui omnes superiores dies
**[[w:クィントゥス・トゥッリウス・キケロ|キケロ]]は(期日の7日目)より以前の日々すべてを
*praeceptis Caesaris cum summa diligentia milites in castris continuisset
**カエサルの指図により、最高の入念さとともに、兵士たちを陣営の中に留めておき、
*ac ne calonem quidem quemquam extra munitionem egredi passus esset,
**<ruby><rb>[[w:カロネス|軍属奴隷]]</rb><rp>(</rp><rt>カロネス</rt><rp>)</rp></ruby> でさえも、何者も防備の外側に出て行くことを許されなかった。
*septimo die diffidens de numero dierum Caesarem fidem servaturum,
**(期日の)7日目に、カエサルが日数についての約束を守るであろうか、という不信を抱いた。
*quod longius eum<ref>eum はβ系写本の記述で、α系写本にはない。</ref> progressum audiebat,
**というのは、彼(カエサル)は、はるか遠くに前進したと聞いていたのだし、
*neque ulla de reditu eius fama adferebatur,
**彼の帰還については何ら伝言を届けられていなかったからである。
*② simul eorum permotus vocibus,
**同時に(キケロは)以下のような者たちの声に揺り動かされた。
*qui illius patientiam paene obsessionem appellabant, siquidem ex castris egredi non liceret,
**もし本当に陣営から出て行くことが許されないならば、彼の忍耐はほぼ攻囲(籠城)であるというのだ。
*nullum eiusmodi casum exspectans,
**以下のような事態を予期してもいなかった。
*quo novem oppositis legionibus maximoque equitatu,
**9個[[w:ローマ軍団|軍団]]と最大限の[[w:騎兵|騎兵]]隊が(敵と)対峙して、
*dispersis ac paene deletis hostibus
**敵たちは散らばらされて、ほとんど抹殺されたのに、
*in milibus passuum tribus offendi posset,
**(自陣から)3ローママイルの内で(敵対勢力から)襲撃され得るとは。
[[画像:PraetorianVexillifer_1.jpg|thumb|right|200px|帝政期に用いられた軍旗(ウェクスィッルム)の一種を再現したもの。]]
*quinque cohortes frumentatum in proximas segetes mittit,
**5個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby>を糧秣徴発するために、近隣の耕地に派遣した。
*quas inter et castra unus omnino collis intererat.
**それら(の耕地)と陣営の間には、ただ一つの丘陵が介在するだけであった。
*③ Complures erant in castris<ref>in castris はβ系写本の記述で、α系写本にはない。</ref> ex legionibus aegri relicti;
**陣営の中には、諸軍団のうちから少なからぬ傷病者たちが残留していた。
*ex quibus qui hoc spatio dierum convaluerant, circiter trecenti(CCC),
**その者たちのうちから、この日々の間に回復していた約300名が、
*sub vexillo una mittuntur;
**<ruby><rb>[[w:ウェクスィッルム|軍旗]]</rb><rp>(</rp><rt>ウェクスィッルム</rt><rp>)</rp></ruby>のもとで一緒に派遣された。
*magna praeterea multitudo calonum, magna vis iumentorum quae in castris subsederant,
**そのうえに、軍属奴隷の大多数、陣営の中に残留していた(ロバなどの)役畜の多数が、
*facta potestate sequitur.
**機会を与えられて、随行した。
===37節===
[[画像:Castra1.png|thumb|right|200px|ローマ式[[w:カストラ|陣営]]([[w:la:Castra_Romana|castra Romana]])の概略図(再掲)。'''7'''が第10大隊の門(porta decumana)で、陣営の裏門に当たる。]]
'''スガンブリー族がキケロの陣営に襲来'''
*① Hoc ipso tempore et casu Germani equites interveniunt
**このまさにその時と状況に、[[w:ゲルマニア|ゲルマーニア]]人の[[w:騎兵|騎兵]]たちが出現して、
*protinusque eodem illo, quo venerant, cursu
**さらに前方へ(彼らが)やって来たのと同じ突進でもって、
*ab decumana porta in castra inrumpere conantur,
**第10大隊の門(=裏門)から陣営の中に突入することを試みた。
**:(訳注:decumana porta は[[ガリア戦記 第2巻#24節|第2巻24節]]で既出、図を参照。)
*② nec prius sunt visi obiectis ab ea parte silvis, quam [[wikt:la:castrum|castris]] adpropinquarent,
**その方面については森林がじゃま立てしていたので(彼らは)陣営に接近するまでは視認されなかったのだ。
*usque eo ut qui sub [[w:la:Vallum|vallo]] tenderent mercatores, recipiendi sui facultatem non haberent.
**そこまで(敵が急に来たので)、防柵の下に宿営していた商人たちが退避する機会を持たなかったほどであった。
*③ Inopinantes nostri re nova perturbantur,
**予感していなかった我が方は、新しい事態に混乱させられて、
*ac vix primum impetum cohors in statione sustinet.
**やっとのことで[[w:歩哨|歩哨]]に就いていた[[w:コホルス|歩兵大隊]]が(敵の)最初の突撃を持ちこたえた。
*④ Circumfunduntur ex reliquis hostes partibus, si quem aditum reperire possent.
**敵たちは、何らかの入口を探り出せないかと、ほかの方面から取り囲んだ。
*⑤ Aegre portas nostri tuentur;
**我が方(=ローマ勢)は辛うじて(四方の)諸門を固守して、
*reliquos aditus locus ipse per se munitioque defendit.
**ほかの入口を、その位置そのものと防備が(敵の突入から)防護した。
*⑥ Totis trepidatur castris,
**陣営の全体が震撼させられて、
*atque alius ex alio causam tumultus quaerit;
**各人がほかの者に騒乱の原因を尋ね合った。
**:(訳注:エブロネス族を追討している最中に、スガンブリー族が来襲するとは予想だにしなかったからである。)
*neque quo signa ferantur, neque quam in partem quisque conveniat provident.
**が、どこへ軍旗が運ばれるのか、どの方面におのおのが集結するのか、判らなかった。
*⑦ Alius iam castra capta pronuntiat,
**ある者は、すでに陣営は占拠されたと公言し、
*alius deleto exercitu atque imperatore victores barbaros venisse contendit;
**別のある者は、軍隊も将軍(カエサル)も滅びて蛮族が勝利者としてやって来たのだ、と断言した。
*⑧ plerique novas sibi ex loco religiones fingunt
**たいていの者たちは、その場所から、新奇な迷信的感情を創り上げ、
*Cottaeque et Tituri calamitatem, qui in eodem occiderint castello,
**同じ砦のところで斃れた[[w:ルキウス・アウルンクレイウス・コッタ|コッタ]]と[[w:クィントゥス・ティトゥリウス・サビヌス|ティトゥリウス(・サビヌス)]]の敗亡を
*ante oculos ponunt.
**眼前に想い描いた。
*⑨ Tali timore omnibus perterritis
**このような怖れによって(陣営内部の)皆が脅えており、
*confirmatur opinio barbaris, ut ex captivo audierant, nullum esse intus praesidium.
**蛮族にとっては、捕虜から聞いていたように、内部に守備隊が存在していないという見解が強められた。
*⑩ Perrumpere nituntur
**(スガンブリー勢は、陣営の防備を)突破することに努め、
*seque ipsi adhortantur, ne tantam fortunam ex manibus dimittant.
**これほどの幸運を手から取りこぼさないように、自分たちが自身を鼓舞した。
===38節===
'''バクルスと百人隊長たちが防戦する'''
*① Erat aeger cum<ref>cum はα系写本の記述で、β系写本では in となっている。</ref> praesidio relictus P.(Publius) Sextius Baculus,
**(キケロの陣営には)プーブリウス・セクスティウス・バクルスが傷病者として、守備兵とともに残されていた。
**:<span style="color:#009900;">(訳注:[[w:la:Publius Sextius Baculus|Publius Sextius Baculus]] などの記事を参照。)</span>
*qui primum pilum ad<ref>ad はα系写本の記述で、β系写本では apud となっている。</ref> Caesarem duxerat,
**その者はカエサルのもとで<ruby><rb>[[w:プリムス・ピルス|首位百人隊長]]</rb><rp>(</rp><rt>プリムス・ピルス</rt><rp>)</rp></ruby> の座に就いていたことがあり、
*cuius mentionem superioribus proeliis fecimus,
**かつての戦闘で彼に言及したが、
**:<span style="color:#009900;">(訳注:[[ガリア戦記 第2巻#25節|第2巻25節]] および [[ガリア戦記 第3巻#5節|第3巻5節]]を参照。)</span>
*ac diem iam quintum cibo caruerat.
**(このとき)食物を欠いてすでに5日目であった。
*② Hic diffisus suae atque omnium saluti inermis ex tabernaculo prodit;
**彼は、自らと皆の身の安全に疑念を抱いて、非武装のまま天幕小屋から出て来て、
*videt imminere hostes atque in summo esse rem discrimine;
**敵たちが迫って来ていること、および事態が重大な危急にあることを目の当たりにして、
*capit arma a proximis atque in porta consistit.
**すぐ近くの者から武器を取って、門のところに陣取った。
*③ Consequuntur hunc centuriones eius cohortis quae in statione erat;
**歩哨に立っていた(1個)<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> の<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオ</rt><rp>)</rp></ruby> たちが彼に追随して、
**:(訳注:1個歩兵大隊の百人隊長は、定員通りであれば、6名いた。)
*paulisper una proelium sustinent.
**しばらく一緒に戦闘を持ちこたえた。
*④ Relinquit animus Sextium gravibus acceptis vulneribus;
**セクスティウス(・バクルス)は重い傷を受けて、気を失った。
*Deficiens<ref>deficiens はβ系写本の記述で、α系写本にはない。</ref> aegre per manus tractus servatur.
**(彼は)衰弱して、(味方の)手から手に運ばれて辛うじて救助された。
*⑤ Hoc spatio interposito reliqui sese confirmant
**こうしてしばらくした後で、ほかの者たちは意を強くした。
*tantum, ut in munitionibus consistere audeant speciemque defensorum praebeant.
**(それは)防壁にあえて陣取って、防戦者たちの姿を示したほどであった。
===39節===
'''スガンブリー族が糧秣徴発部隊をも襲う'''
*① Interim confecta frumentatione milites nostri clamorem exaudiunt;
**その間に、糧秣徴発を成し遂げると、我が方の兵士たち(=ローマ軍団兵)は叫び声を聞きつけて、
*praecurrunt equites;
**[[w:騎兵|騎兵]]たちが先駆けして、
*quanto res sit in periculo cognoscunt.
**事態がどれほどの危険にあるかを認識した。
*② Hic vero nulla munitio est quae perterritos recipiat;
**そこには、まさに、脅え上がった者たちを受け入れるような、いかなる防備もなかったのである。
*modo conscripti atque usus militaris imperiti
**やっと徴集されたばかりの者たち、なおかつ兵役の経験に通じていない者たちは、
*ad tribunum militum centurionesque ora convertunt;
**<ruby><rb>[[w:トリブヌス・ミリトゥム|兵士長官]]</rb><rp>(</rp><rt>トリブヌス・ミリトゥム</rt><rp>)</rp></ruby>や<ruby><rb>[[w:ケントゥリオ|百人隊長]]</rb><rp>(</rp><rt>ケントゥリオ</rt><rp>)</rp></ruby>たちの方へ顔を向けた。
*quid ab his praecipiatur exspectant.
**彼ら(上官たち)によって何を指図されるか、待っていたのである。
*③ Nemo est tam fortis, quin rei novitate perturbetur.
**新奇な事態に不安にさせられないほど勇敢な者は、誰もいなかった。
*④ Barbari signa procul conspicati oppugnatione desistunt,
**蛮族たちは、(糧秣徴発隊の)軍旗を遠くから視認すると、(陣営への)攻囲を停止した。
*redisse primo legiones credunt, quas longius discessisse ex captivis cognoverant;
**(彼らは)当初は、より遠くに立ち去ったことを捕虜から知っていた(ローマの)諸軍団が戻って来たと思ったが、
*postea despecta paucitate ex omnibus partibus impetum faciunt.
**後には、(糧秣徴発隊の)寡勢ぶりを侮って、あらゆる方向から突撃して来た。
===40節===
'''敵中突破して陣営へ戻る糧秣徴発部隊の明暗'''
*① Calones in proximum tumulum procurrunt.
**[[w:カロネス|軍属奴隷]]たちは、近隣の丘に先駆けした。
*Hinc celeriter deiecti
**(彼らは)ここから、(突撃して来る敵の軍勢を眺めて)たちまち当てが外れて、
*se in signa manipulosque coniciunt;
**(後方にいた)軍旗と[[w:マニプルス|歩兵中隊]]のところに身を投じた。
*eo magis timidos perterrent milites.
**それゆえに、臆病な兵士たちを大いに脅かした。
[[画像:Wedge-diagram.svg|thumb|right|200px|[[w:くさび|楔(くさび)]]の図。本節で述べられているのは、ローマ勢が楔(図の黒い部分)のように突撃することにより、敵を中央突破しようという戦術であろう。]]
*② Alii cuneo facto ut celeriter perrumpant, censent
**(ローマ兵の)ある者たちは、速やかに(敵中を)突破するように、<ruby><rb>[[w:くさび|楔形]]</rb><rp>(</rp><rt>くさびがた</rt><rp>)</rp></ruby>隊列を形成しようと考慮した。
*─ quoniam tam propinqua sint castra,
**─ 陣営がこれほどまで近隣にあるので、
*etsi pars aliqua circumventa ceciderit, at reliquos servari posse confidunt ─,
**たとえ、一部の誰かが包囲されて斃れたとしても、残りの者たちは救われることが可能だと確信したのだ ─。
*③ alii ut in iugo consistant atque eundem omnes ferant casum.
**別のある者たちは、(丘の)尾根に陣取って、皆が同じ命運に耐え忍ぼうと(考えた)。
*④ Hoc veteres non probant milites, quos sub vexillo una profectos docuimus.
**既述したように軍旗のもとで一緒に発って来た古参兵たちは、後者(の案)を承認しなかった。
**:(訳注:[[#36節|36節]]③項で既述のように、回復した傷病兵たちが同行してきていた。)
*Itaque inter se cohortati
**こうして、(古参の傷病兵たちは)互いに激励し合って、
*duce C.(Gaio) Trebonio equite Romano, qui iis erat praepositus,
**彼らの指揮を委ねられていたローマ人[[w:騎士|騎士階級]]のガイウス・トレボニウスを統率者として、
**:(訳注:[[#33節|33節]]で3個軍団を率いて出発した副官の[[w:ガイウス・トレボニウス|ガイウス・トレボニウス]]とは明らかに同名の別人である。)
*per medios hostes perrumpunt incolumesque ad unum omnes in castra perveniunt.
**敵たちの中央を突破して、一人に至るまで皆が無傷で陣営に到着した。
*⑤ Hos subsecuti calones equitesque eodem impetu militum virtute servantur.
**彼らに追随して、軍属奴隷と[[w:騎兵|騎兵]]たちが同様の突撃をして、兵士たちの武勇により救われた。
*⑥ At ii qui in iugo constiterant,
**それに対して(丘の)尾根に陣取った者たちは、
*nullo etiam nunc usu rei militaris percepto
**今になってさえも、軍事的行動というものを把握しておらず、
*neque in eo quod probaverant consilio permanere, ut se loco superiore defenderent,
**より高い場所で身を守るという、彼らが承認していた考えに留まりもせず、
*neque eam quam prodesse aliis vim celeritatemque viderant, imitari potuerunt,
**(彼らが)別の者たち(=古参兵)に役立ったのを見ていたところの力と迅速さを真似することもできなかった。
*sed se in castra recipere conati iniquum in locum demiserunt.
**けれども、陣営に退却することを試みたが、不利な場所に落ち込んで行った。
*⑦ Centuriones, quorum nonnulli ex inferioribus ordinibus reliquarum legionum
**[[w:ケントゥリオ|百人隊長]]たちといえば、彼らの少なからぬ者たちは、ほかの[[w:ローマ軍団|軍団]]のより低い序列から、
*virtutis causa in superiores erant ordines huius legionis traducti,
**武勇のおかげで、この軍団のより高い序列に異動させられていたが、
*ne ante partam rei militaris laudem amitterent, fortissime pugnantes conciderunt.
**かつて獲得した軍事的な賞賛を失わないように、とても果敢に奮戦して斃れた。
*⑧ Militum pars horum virtute
**兵士たちの一部は、これら(討ち死にした百人隊長たち)の武勇により、
*submotis hostibus praeter spem incolumis in castra pervenit,
**予想に反して敵たちが撃退されたので、無傷で陣営に到着した。
*pars a barbaris circumventa periit.
**別の一部は、蛮族によって包囲されて、討ち死にした。
===41節===
'''スガンブリー族の撤退、カエサルの帰還'''
*① Germani desperata expugnatione castrorum,
**[[w:ゲルマニア|ゲルマーニア]]人たちは(キケロの)[[w:カストラ|陣営]]の攻略に絶望して、
*quod nostros iam constitisse in munitionibus videbant,
**というのは、我が方(ローマ勢)が防備のところに立っているのを見たからであるが、
*cum ea praeda quam in silvis deposuerant, trans Rhenum sese receperunt.
**森の中にしまい込んでいた略奪品とともに、レヌス(=[[w:ライン川|ライン川]])の向こう側に撤退した。
*② Ac tantus fuit etiam post discessum hostium terror,
**敵たちの立ち去った後でさえ(ローマ勢の)畏怖はたいへんなものであったので、
*ut ea nocte, cum C.(Gaius) Volusenus missus cum equitatu ad castra venisset,
**その夜に、(追討戦に)派遣されていたガーイウス・ウォルセーヌスが騎兵隊とともに陣営へ帰着したときに
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:''[[w:en:Gaius Volusenus|Gaius Volusenus]]'' は、[[ガリア戦記_第3巻#5節|第3巻5節]]のアルプス・オクトードゥールスの戦い、<br> [[ガリア戦記_第4巻#21節|第4巻21節]]・[[ガリア戦記_第4巻#23節|23節]]のブリタンニアへの先遣で既述。<br> この後、さらに第8巻23節<sub>([[s:la:Commentarii_de_bello_Gallico/Liber_VIII#23|s]])</sub>、48節<sub>([[s:la:Commentarii_de_bello_Gallico/Liber_VIII#48|s]])</sub>でも活躍する。)</span>
*fidem non faceret adesse cum incolumi Caesarem exercitu.
**カエサルが無傷の軍隊とともに近くに来ていることを(陣営の残留組に)信用させなかったほどである。
*③ Sic omnino animos timor praeoccupaverat, ut paene alienata mente
**ほとんど気でも違ったかのように、皆の心を怖れが占めていた。
**:(訳注:sic … ut ~ の構文;「~と同様に…である」)
*deletis omnibus copiis equitatum se ex fuga recepisse dicerent
**(残留者たちは、カエサルら)全軍勢が滅ぼされて、[[w:騎兵|騎兵隊]]が敗走から退いて来たのだ、と言った。
*neque incolumi exercitu Germanos castra oppugnaturos fuisse contenderent.
**(カエサルら)軍隊が無傷であれば、ゲルマーニア人が陣営を襲撃しなかっただろう、と断言した。
**:(訳注:oppugnaturos fuisse ;間接話法では非現実な[[w:条件法|条件文]]の帰結は「未来分詞+fuisse」で表される。)
*④ Quem timorem Caesaris adventus sustulit.
**その怖れをカエサルの到着が取り除いた。
**:(訳注:sustulit は tollō の完了・能動3人称単数形)
===42節===
'''カエサルがスガンブリー族の襲来と撤退を運命に帰する'''
*① Reversus ille, eventus belli non ignorans,
**引き返して来た彼(カエサル)は、戦争の成り行きというものを知らないはずがないので、
*unum quod cohortes ex statione et praesidio essent emissae,
**ひとつ(だけ)、<ruby><rb>[[w:コホルス|諸大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> が[[w:歩哨|歩哨]]や守備から(糧秣徴発に)派遣されたことを
*questus ─ ne minimo quidem casu locum relinqui debuisse ─
**不慮の事態に対して最小限のいかなる余地も残されるべきではなかった、と嘆いた。
*multum Fortunam in repentino hostium adventu potuisse iudicavit,
**不意の敵たちの到来においては運命(の女神)が大いに力を持つ、と断じた。
*② multo etiam amplius, quod paene ab ipso vallo portisque castrorum barbaros avertisset.
**さらに、より一層大きかったのは、(運命が)ほとんど蛮族をその陣営の防柵と諸門から追い返してしまったことである。
*③ Quarum omnium rerum maxime admirandum videbatur,
**それらのすべての事態でとりわけ驚くべきと思われたのは、
*quod Germani, qui eo consilio Rhenum transierant, ut Ambiorigis fines depopularentur,
**その意図で[[w:アンビオリクス|アンビオリクス]]の領土を荒らすようにレヌス(=[[w:ライン川|ライン川]])を渡河していた[[w:ゲルマニア|ゲルマーニア]]人が、
*ad castra Romanorum delati
**ローマ人の陣営の方へそらされて、
*optatissimum Ambiorigi beneficium obtulerunt.
**アンビオリクスに最も望ましい恩恵を施してしまったことである。
==対エブロネス族追討戦(2)==
===43節===
'''アンビオリクスが辛うじて追討を逃れる'''
*① Caesar rursus ad vexandos hostes profectus
**カエサルは再び敵たちを苦しめるために出発して、
*magno coacto <equitum> numero ex finitimis civitatibus in omnes partes dimittit.
**[[w:騎兵|騎兵]]の多数を隣接する諸部族から徴集して、あらゆる方面に派遣した。
**:(訳注:<equitum> 「騎兵の」は近代の校訂者による挿入である。)
*② Omnes vici atque omnia aedificia quae quisque conspexerat incendebantur,
**おのおのが目にしたすべての村々およびすべての建物が焼き打ちされた。
*pecora interficiebantur<ref>pecora interficiebantur はβ系写本の記述で、α系写本にはない。</ref>, praeda ex omnibus locis agebatur;
**家畜は屠殺され、あらゆる場所から略奪品が奪い去られた。
*③ frumenta non solum tanta multitudine iumentorum atque hominum consumebantur,
**役畜および人間たちのこれほど大勢により穀物が消費され尽くしたのみならず、
*sed etiam anni tempore atque imbribus procubuerant,
**季節と豪雨によってさえも(穀物が)倒れた。
*ut si qui etiam in praesentia se occultassent,
**その結果、もし(エブロネス族の)何者かが現状では身を隠しているとしても、
*tamen his deducto exercitu rerum omnium inopia pereundum videretur.
**それでも彼らは(ローマ人の)軍隊が引き揚げれば、あらゆるものの欠乏により死滅するはずと思われた。
*④ Ac saepe in eum locum ventum est tanto in omnes partes diviso equitatu,
**たいへん多くの騎兵隊があらゆる方面に分遣されて、しばしば以下のような状態に出くわした。
*ut non modo visum ab se Ambiorigem in fuga circumspicerent captivi
**捕虜たちが、自分たちによって逃亡中の[[w:アンビオリクス|アンビオリクス]]が目撃されたと見回しただけでなく、
*nec plane etiam abisse ex conspectu contenderent,
**(アンビオリクスが)視界からまったく消え去ってはいないとさえ主張した。
*⑤ ut spe consequendi inlata atque infinito labore suscepto,
**その結果、(アンビオリクスを)追跡する希望がもたらされて、さらに限りない労苦が従事された。
*qui se summam ab Caesare gratiam inituros putarent,
**カエサルから最高の恩恵を得ようと思った者たちは、
*paene naturam studio vincerent,
**熱意により(身体的な)資質にほとんど打ち克ったが、
*semperque paulum ad summam felicitatem defuisse videretur,
**いつも最高の恵みにあと少しで足りなかったと思われる。
*⑥ atque ille latebris aut silvis<ref>aut silvis はβ系写本の記述で、α系写本にはない。</ref> aut saltibus se eriperet
**かつ彼(アンビオリクス)は隠れ処、あるいは森林、あるいは峡谷によって自らを救い、
*et noctu occultatus alias regiones partesque peteret
**夜に秘されて、別の地方や方面をめざした。
*non maiore equitum praesidio quam quattuor,
**4名より多くない騎兵の護衛によって、
*quibus solis vitam suam committere audebat.
**自らの生命をその者たちだけにあえて委ねたのだ。
===44節===
'''カエサルが撤退し、造反者アッコを処刑する'''
*① Tali modo vastatis regionibus
**このようなやり方で(エブロネス族の)諸地域を荒廃させて、
[[画像:Porte_Mars_01.jpg|thumb|right|200px|ドゥロコルトルム(現在の[[w:ランス (マルヌ県)|ランス]])に建てられた帝政ローマ時代(3世紀)の[[w:凱旋門|凱旋門]]。]]
*exercitum Caesar duarum cohortium damno [[w:la:Remi|Durocortorum]] Remorum reducit
**カエサルは、2個<ruby><rb>[[w:コホルス|歩兵大隊]]</rb><rp>(</rp><rt>コホルス</rt><rp>)</rp></ruby> の損失(だけ)で、軍隊を[[w:レミ族|レミ族]]の[[w:ドゥロコルトルム|ドゥロコルトルム]]に連れ戻して、
**:(訳注:ドゥロコルトルムはレミ族の首邑で、現在の[[w:ランス (マルヌ県)|ランス]] Reims である。)
*concilioque in eum locum Galliae indicto
**その地においてガッリアの(領袖たちの)会合を公示して、
*de coniuratione Senonum et Carnutum quaestionem habere instituit
**[[w:セノネス族|セノネス族]]と[[w:カルヌテス族|カルヌテス族]]の共謀について詮議することを決定した。
*② et de Accone, qui princeps eius consilii fuerat,
**その謀計の首謀者であった[[w:アッコ (セノネス族)|アッコ]]については
*graviore sententia pronuntiata more maiorum supplicium sumpsit.
**より重い判決が布告され、(ローマ人の)先祖の習慣により極刑に処した。
**:(訳注:ローマ史家[[w:テオドール・モムゼン|モムゼン]]は、アッコはローマの<ruby><rb>[[w:リクトル|先導吏]]</rb><rp>(</rp><rt>リクトル</rt><rp>)</rp></ruby> により[[w:斬首刑|斬首]]されたと言及している<ref>『モムゼン ローマの歴史Ⅳ』長谷川博隆訳、名古屋大学出版会、p.233 を参照。</ref>。
**:外国から来た侵略者カエサルがこのような刑罰を下したことに、ガッリア人たちは憤激した。[[ガリア戦記 第7巻#1節|第7巻1節]]を参照。)
*③ Nonnulli iudicium veriti profugerunt.
**少なからぬ者たちは、裁判を恐れて逃走した。
*Quibus cum aqua atque igni interdixisset,
**その者たちには水と火が禁じられたうえで、
**:(訳注:「水と火を禁じる」とは追放処分のことで、居住権や財産の没収などを指す。)
*duas legiones ad fines Treverorum, duas in Lingonibus,
**2個[[w:ローマ軍団|軍団]]をトレーウェリー族の領土へ、2個(軍団)を[[w:リンゴネス族|リンゴネス族]](の領土)に、
*sex reliquas in Senonum finibus [[w:la:Agedincum|Agedinci]] in hibernis conlocavit
**残りの6個(軍団)を[[w:セノネス族|セノネス族]]の領土の[[w:アゲディンクム|アゲディンクム]]に、冬営地に宿営させた。
**:(訳注:アゲディンクムは、現在の[[w:サン (ヨンヌ県)|サン]] Sens である。)
*frumentoque exercitui proviso,
**軍隊の糧秣を調達してから、
*ut instituerat, in Italiam ad conventus agendos profectus est.
**定めていたように、イタリアに開廷(巡回裁判)を行なうために出発した。
**:(訳注:ここで「イタリア」とはカエサルが総督を務める[[w:ガリア・キサルピナ|ガッリア・キサルピーナ]]のことと思われる。)
----
*<span style="background-color:#99ff99;">「ガリア戦記 第6巻」了。「[[ガリア戦記 第7巻]]」へ続く。</span>
==脚注==
<references />
==参考リンク==
*ウィキペディア英語版・日本語版
**[[w:en:Category:Tribes of ancient Gaul|Category:Tribes of ancient Gaul]]([[w:Category:ガリアの部族|Category:ガッリアの部族]])
***[[w:en:Eburones|Eburones]]([[w:エブロネス族|エブロネス族]])
***[[w:en:Nervii|Nervii]]([[w:ネルウィイ族|ネルウィイ族]])
***[[w:en:Senones|Senones]](セノネス族)- [[w:la:Senones|la:Senones]]
***[[w:en:Carnutes|Carnutes]](カルヌテス族)
***[[w:en:Parisii (Gaul)|Parisii (Gaul)]]([[w:パリシイ族|パリスィ族]])
****[[w:en:Lutetia|Lutetia]]([[w:ルテティア|ルテティア]])
***[[w:en:Menapii|Menapii]](メナピイ族)
***[[w:en:Treveri|Treveri]](トレーウェリー族)
***[[w:en:Aedui|Aedui]]([[w:ハエドゥイ族|ハエドゥイ族]])
***[[w:en:Sequani|Sequani]](セクアニ族)
***[[w:en:Remi|Remi]](レーミー族)
**[[w:en:Category:Germanic peoples|Category:Germanic peoples]](ゲルマーニア人のカテゴリ)
***[[w:en:Category:Ancient Germanic peoples|Category:Ancient Germanic peoples]](古代ゲルマーニア人)
***[[w:en:Germanic peoples|Germanic peoples]](ゲルマーニア人)
***[[w:en:Ubii|Ubii]](ウビイー族)
***[[w:en:Suebi|Suebi]]([[w:スエビ族|スエービー族]])
***[[w:en:Chatti|Chatti]](カッティー族)
***[[w:en:Cherusci|Cherusci]](ケールスキー族)
***[[w:en:Sicambri|Sicambri]](スガンブリー族)
***[[w:en:Hercynian Forest|Hercynian Forest]](ヘルキュニアの森)
**地理学者・史家
***[[w:en:Posidonius|Posidonius]]([[w:ポセイドニオス|ポセイドニオス]];BC135-51年頃)- [[w:la:Posidonius Apameus|la:Posidonius Apameus]]
***[[w:en:Diodorus Siculus|Diodorus Siculus]]([[w:シケリアのディオドロス|シケリアのディオドロス]];BC1世紀) - [[w:la:Diodorus Siculus|la:Diodorus Siculus]]
****〔ウィキソース ギリシア語版:[[s:el:Διόδωρος Σικελιώτης|Διόδωρος Σικελιώτης]](シケリアのディオドロス)- [[s:el:Ιστορική Βιβλιοθήκη|Ιστορική Βιβλιοθήκη]](歴史叢書)〕
***[[w:en:Strabo|Strabo]]([[w:ストラボン|ストラボン]];BC63年頃–AD24年頃)- [[w:la:Strabo|la:Strabo]]
****〔ウィキソース ギリシア語版:[[s:el:Στράβων|Στράβων]](ストラボン) - [[s:el:Γεωγραφία|Γεωγραφία]](世界地誌)〕
***[[w:en:Tacitus|Tacitus]]([[w:タキトゥス|タキトゥス]];56年頃–117年頃)- [[w:la:Cornelius Tacitus|la:Cornelius Tacitus]]
****[[w:en:Germania (book)|Germania (book)]]([[w:ゲルマニア (書物)|ゲルマーニア (書物)]])- [[w:la:Germania (opus Taciti)|la:Germania (opus Taciti)]]
***[[w:en:Pomponius Mela|Pomponius Mela]](ポンポニウス・メラ;1世紀)- [[w:la:Pomponius Mela|Pomponius Mela]]
***[[w:en:Athenaeus|Athenaeus]]([[w:アテナイオス|アテナイオス]];2世紀頃)- [[w:la:Athenaeus Naucratita|la:Athenaeus Naucratita]]
***[[w:en:Theodor Mommsen|Theodor Mommsen]]([[w:テオドール・モムゼン|テオドール・モムゼン]];19世紀)- [[w:la:Theodorus Mommsen|la:Theodorus Mommsen]]
**[[w:en:Category:Celtic culture|Category:Celtic culture]](ケルト文化)
**[[w:en:Category:Celtic mythology|Category:Celtic mythology]]([[w:Category:ケルト神話|Category:ケルト神話]])
***[[w:en:Druid|Druid]]([[w:ドルイド|ドルイド]]) - [[w:la:Druis|la:Druis]]
***[[w:en:Wicker Man|Wicker Man]]([[w:ウィッカーマン|ウィッカーマン]])
**[[w:en:Category::Celtic_gods|Category::Celtic_gods]](ケルトの神々)
**[[w:en:Category:Ancient Gaulish and British gods|Category:Ancient Gaulish and British gods]](古代ガッリアとブリタニアの神々)
***[[w:en:Taranis|Taranis]](タラニス)
***[[w:en:Cernunnos|Cernunnos]](ケルヌンノス)
***[[w:en:Dis Pater|Dis Pater]](ディス・パテル)
***[[w:en:Sucellus|Sucellus]](スケッルス)
**カエサルの副官たち
***[[w:en:Titus_Labienus|Titus Labienus]]([[w:ティトゥス・ラビエヌス|ティトゥス・ラビエヌス]])- [[w:la:Titus_Labienus|la:Titus Labienus]]
***[[w:en:Trebonius|Gaius Trebonius]]([[w:ガイウス・トレボニウス|ガイウス・トレボニウス]])- [[w:la:Gaius Trebonius|la:Gaius Trebonius]]
***[[w:en:Quintus_Tullius_Cicero|Quintus Tullius Cicero]]([[w:クィントゥス・トゥッリウス・キケロ|クィントゥス・トゥッリウス・キケロ]])- [[w:la:Quintus_Tullius_Cicero|la:Quintus Tullius Cicero]]
***[[w:en:|en:]]([[w:|w:]])
***[[w:en:|en:]]([[w:|w:]])
*ウィクショナリー フランス語版
**[[wikt:fr:calo]](カーロー、軍属奴隷)
fwu0e6ciowz1tkxif8yojwm0r6kdgr1
高校化学 芳香族化合物
0
13379
263061
234270
2024-11-05T02:21:24Z
202.32.153.138
/* ニトロ化(nitration) */
263061
wikitext
text/x-wiki
{{pathnav|高等学校の学習|高等学校理科|高等学校 化学|pagename=芳香族化合物|frame=1|small=1}}
== ベンゼン ==
:[[File:ベンゼン環の分子模型.svg|thumb|left|150x150px|ベンゼンの分子模型]]
[[ファイル:Benzene Structural diagram.svg|サムネイル|ベンゼンの構造。]]
'''ベンゼン'''C{{sub|6}}H{{sub|6}}は6つの炭素原子が正六角形に結合し、その外側に水素原子がひとつずつ結合した環状構造をもつ。これら12個の原子はすべて同一平面上にある。
構造式は、炭素原子間の結合は二重結合と単結合が繰り返されているように書かれるが、実際は、炭素原子間の6つの結合はすべて等価であり、単結合と二重結合の中間の1.5重結合のような性質を持っている。
この特徴的な環構造を'''ベンゼン環'''(benzene ring)という。ベンゼン環の構造は
:[[File:Benzol.svg|60px|ベンゼン環]] または [[File:Benzene circle.svg|60px|ベンゼン環]] または [[File:Benzol 2.svg|60px|ベンゼンの略記号。]] または [[File:Benzol 3.svg|60px|ベンゼンの略記号。]]
などと略記する。この教科書では、いずれの書き方も用いる。
=== 性質 ===
* 特有な臭いをもち、無色で揮発性の液体(沸点80℃、融点5.5℃)である。
* 水に溶けにくく、有機化合物をよく溶かすので、有機溶媒として用いられる。
* 引火しやすい。炭素原子の割合が多いため、多量のすすを出して燃える。
* 人体には有毒で発がん性がある。
=== ベンゼンの置換反応 ===
ベンゼンは、ベンゼン環の安定性のため、アルケンより付加反応を起こしづらい。だが、置換反応では、環の構造が保存されるため、ベンゼンは置換反応を起こしやすい。
==== スルホン化(sulfonation) ====
: 濃硫酸にベンゼンを加え加熱すると、水素原子がスルホ基 -SO<sub>3</sub>H に置換され、'''ベンゼンスルホン酸''' ( C<sub>6</sub>H<sub>5</sub>SO<sub>3</sub>H ) を生じる。
: [[ファイル:ベンゼンスルホン酸の合成式.svg|500x500ピクセル|ベンゼンスルホン酸の合成式]]
ベンゼンスルホン酸は強酸である。
==== ニトロ化(nitration) ====
: 濃硫酸と濃硝酸の混合物('''混酸''')にベンゼンを加え加熱すると、水素がニトロ基 -NO<sub>2</sub> で置換され、'''ニトロベンゼン''' ( C<sub>6</sub>H<sub>5</sub>NO<sub>2</sub> ) を生じる。
:: [[ファイル:ニトロベンゼンの合成式.svg|500x500ピクセル|ニトロベンゼンの合成式]]
ニトロベンゼンは、無色~淡黄色の液体で、特有の甘い香りをもつ。ニトロベンゼンは、水に溶けにくく、'''水より重い'''(密度1.2g/cm<sup>3</sup>)。
ニトロベンゼンのように、炭素原子に直接ニトロ基が結合した化合物をニトロ化合物という。
ニトロ基は電子吸引性の官能基であるため、ベンゼンと化合するとベンゼンのo位とp位が正電荷を帯びて反応性が下がり、別の官能基との置換反応が起こるときにm位での置換が起こりやすい。これを'''メタ配向性'''という。フェノールに見られるオルトパラ配向性とは真逆である。
ニトロ基が多くなると爆発性を持つ。ダイナマイトに用いられるニトログリセリンや、ニトロセルロース、ピクリン酸などが好例である。
==== ハロゲン化(halogenation) ====
: [[ファイル:1,4-dichlorobenzene.svg|サムネイル|191x191ピクセル|p-ジクロロベンゼン]]ベンゼンに触媒を用いてハロゲンを反応させると、置換反応が生じる。例えば塩素を反応させると水素原子を1つ置換して'''クロロベンゼン''' ( C<sub>6</sub>H<sub>5</sub>Cl ) が生じる。
:: [[ファイル:クロロベンゼンの合成式.svg|500x500ピクセル|クロロベンゼンの生成]]
: クロロベンゼンにさらに塩素を付加すると生じるパラジクロロベンゼン(''p''-ジクロロベンゼン)は昇華性がある無色の固体(融点:54℃)であり、防虫剤として用いられる。
=== ベンゼンの付加反応 ===
ベンゼンでは付加反応はほとんど起こらないが、高温高圧下で触媒を用いると、水素が付加しシクロヘキサン C<sub>6</sub>H<sub>12</sub> を生じる。
: [[ファイル:ベンゼンの水素付加反応.svg|450x450ピクセル|ベンゼンの水素付加反応]]
また、ベンゼンと塩素の混合物に紫外線を加えても、付加反応を起こし、ヘキサクロロシクロヘキサン C<sub>6</sub>H<sub>6</sub>Cl<sub>6</sub> を生じる。
: [[ファイル:ベンゼンの塩素付加反応.svg|510x510ピクセル|ベンゼンの塩素付加反応]]
== 芳香族炭化水素 ==
{| cellspacing="0" border="1" align="right"
!名称
!構造式
|-
|'''トルエン'''C<sub>6</sub>H<sub>5</sub>CH<sub>3</sub>
|[[ファイル:Toluene_acsv.svg|91x91ピクセル|トルエン]]
|-
|'''スチレン'''
|[[ファイル:Polystyrol-Strukturformel.svg|100x100ピクセル|スチレン]]
|-
|'''ナフタレン'''C<sub>10</sub>H<sub>8</sub>
| [[ファイル:Naphthalene-2D-Skeletal.svg|100x100ピクセル|ナフタレン]]
|-
| '''アントラセン'''
C<sub>14</sub>H<sub>10</sub>
| [[ファイル:Anthracen.svg|150x150ピクセル|アントラセン]]
|-
|}
ベンゼン環をもつ炭化水素を'''{{Ruby|芳香|ほうこう}}族炭化水素'''(aromatic hydrocarbon)という。 芳香族炭化水素には、ベンゼンの原子が置換した'''トルエン'''(toluene、化学式:C<sub>6</sub>H<sub>5</sub>CH<sub>3</sub>)やキシレン、ベンゼンが2個結合した'''ナフタレン'''(naphthalene、化学式:C<sub>10</sub>H<sub>8</sub>)、などがある。
これらの化合物は芳香を持つものが多く、人体には有害なものが多い。また、ベンゼンと同様に可燃性があり、引火すると、すすを多く出して燃える。
キシレンには、2つのメチル基の位置によって3種類の異性体が存在する。
[[ファイル:Xylenes_ja.png|中央|500x500ピクセル|キシレンの異性体]]
''o''-,''m''-,''p''- はそれぞれ、オルト、メタ、パラと読む<ref>例えば、p-キシレンは、パラキシレンと読む。</ref>。
2つの置換基がある場合、ある置換基に対して、そのすぐ隣の位置を'''オルト位'''、1つ空いて離れた位置を'''メタ位'''、ベンゼン環を挟んで正反対の位置を'''パラ位'''と呼び、それぞれ記号''o''-,''m''-,''p''-をつけて異性体を区別する。
{| class="wikitable"
|+
!名称
!融点[℃]
!沸点[℃]
|-
|ベンゼン
|6
|80
|-
|トルエン
| -95
|111
|-
|スチレン
| -31
|145
|-
|o-キシレン
| -25
|144
|-
|m-キシレン
| -48
|139
|-
|p-キシレン
|13
|138
|-
|ナフタレン
|81
|218
|-
|アントラセン
|216
|342
|-
|}
==== トルエンのニトロ化 ====
混酸をもちいてトルエンをニトロ化すると、o-位やp-位がニトロ化されて、ニトロトルエン C<sub>6</sub>H<sub>4</sub>(CH<sub>3</sub>)NO<sub>2</sub> が生じる。<gallery widths="150px" heights="150px">
File:O-Nitrotoluol.svg|o-ニトロトルエン
File:P-Nitrotoluol.svg|p-ニトロトルエン
File:Trinitrotoluene acsv.svg|2,4,6,-トリニトロトルエン
</gallery>さらにニトロ化すると、 2,4,6,-トリニトロトルエン(略称:TNT)が生じる。TNTは火薬の原料である。
== フェノール類 ==
{| style="text-align:center" cellspacing="0" border="1" align="right"
!名称
!構造式
|-
|'''フェノール'''
|[[ファイル:Phenol topo.svg|85x85ピクセル|フェノール]]
|-
|'''''o''-クレゾール'''
|[[ファイル:O-Kresol.png|76x76ピクセル|o-クレゾール]]
|-
|'''''m''-クレゾール'''
|[[ファイル:M-Kresol.png|76x76ピクセル|m-クレゾール]]
|-
|'''''p''-クレゾール'''
|[[ファイル:P-Kresol.png|99x99ピクセル|p-クレゾール]]
|}
ベンゼン環にヒドロキシ基 -OH が直接結合したものを'''フェノール類'''(phenols)と呼ぶ。フェノール類には、フェノールのほか、クレゾール、ナフトールなどがある。フェノール類は互いに似た性質を示す。
構造式を下に示すベンジルアルコールのように、ベンゼン環に直接ヒドロキシ基が結合しないものはフェノール類に属さない。
[[ファイル:Alkohol_benzylowy.svg|中央|サムネイル|150x150ピクセル|ベンジルアルコール]]
フェノール類の持つヒドロキシ基は水溶液中でわずかに電離し、弱酸性を示す。フェノール類の水溶液は、炭酸よりも弱い酸性を示す。
: [[ファイル:フェノキシドイオンの合成式.svg|600x600ピクセル|フェノキシドイオンの合成式]]
フェノール類は水にほとんど溶けないが、塩基水溶液と反応して塩となり水に溶ける。
: [[ファイル:ナトリウムフェノキシドの合成式.svg|600x600ピクセル|ナトリウムフェノキシドの合成式]]
ナトリウムフェノキシドの溶液に、フェノールよりも強い酸である二酸化炭素などをくわえると、フェノールが生じる。
* ナトリウムとの反応
また、フェノール類は、アルコールと同様に単体のナトリウムと反応し、水素を発生する。
: 2[[ファイル:フェノール.svg|100x100ピクセル|フェノール]] + 2Na → 2 [[ファイル:Natriumphenolat_Structural_Formula_V.1.svg|80x80ピクセル|ナトリウムフェノキシド]] + H{{sub|2}}↑
=== 検出反応 ===
フェノール類水溶液は塩化鉄(Ⅲ) FeCl{{sub|3}} 水溶液を加えると青~赤紫色を呈する。この呈色反応はフェノール類の検出に利用される。
=== フェノール ===
'''フェノール'''はベンゼン環の水素原子を1つヒドロキシ基で置換した構造である。
特有の匂いを持つ、人体には有毒な白色の固体である。石炭の乾留から得られるため石炭酸ともいう。
[[ファイル:Phenol topo.svg|左|サムネイル|128x128ピクセル|フェノール]]
{{-}}
==== フェノールの合成 ====
フェノールはベンゼンを原料として様々な経路により合成することができる。中でも、工業的には'''クメン法'''(Cummene process)が重要である。
; クメン法
# ベンゼンとプロピレンを触媒を用いて反応させ、クメンを生じる。
# クメンを酸素で酸化し、クメンヒドロペルオキシドとする。
# 希硫酸により分解し、フェノールを生じる。この際、副生成物としてアセトンを生じる。
: [[ファイル:クメン法.svg|中央|700x700ピクセル|クメン法]]
他にも、ベンゼンスルホン酸のアルカリ融解や、クロロベンゼンからフェノールを合成する方法も存在する。
: [[ファイル:フェノールの昔の製法.svg|700x700ピクセル|フェノールの昔の製法]]
なお、ベンゼンスルホン酸からの製法では水酸化ナトリウムを300℃前後で融解させるので、'''アルカリ融解'''とも言われる。
また、フェノールはコールタール(石炭の乾留から生じる液体)の分留によっても得ることが出来る。
==== フェノールの反応 ====
:
フェノールは反応性が高く、さまざまな化合物を生じる。フェノールに臭素を反応させると、ヒドロキシ基に対してオルト位とパラ位の水素原子が臭素で置換され、2,4,6-トリブロモフェノールの白色沈殿を生じる。
: [[ファイル:2,4,6-tribromophenol_synthesis.PNG|400x400ピクセル|2,4,6-トリブロモフェノールの合成]]
[[ファイル:Pikrinsäure.svg|サムネイル|ピクリン酸]]また、フェノールに濃硫酸と濃硝酸を作用させると、ヒドロキシ基に対してオルト位とパラ位をニトロ化してピクリン酸を生じる。
== 芳香族カルボン酸 ==
ベンゼン環にカルボキシル基が直接結合した化合物を'''芳香族カルボン酸'''(aromatc carboxylic acid)という。一般に、水には溶けにくいが、水中ではわずかに電離して、水中では弱い酸性を示す。
また、水酸化ナトリウムなどの塩基の水溶液と中和して、塩を生じて、水に溶ける。
芳香族カルボン酸は、医薬品や染料の原料として、よく用いられる。
=== 安息香酸 ===
[[ファイル:安息香酸.svg|サムネイル|安息香酸]]
'''{{Ruby|安息香|あんそくこう}}酸'''(benzoic acid) C<sub>6</sub>H<sub>5</sub>COOH はベンゼン環の水素原子1つをカルボキシル基で置換した物質である。白色の固体で、水に溶けにくいが、熱水には溶け、水溶液中では弱酸性を示す。また、有機溶媒によく溶ける。弱酸性を示す。安息香酸は水酸化ナトリウム水溶液に加えると、安息香酸ナトリウムを生じて溶ける。しかし、塩酸などの強酸を加えると、弱酸である安息香酸は遊離し、白色結晶が析出する。
: [[ファイル:安息香酸の合成式.svg|600x600ピクセル|安息香酸の合成式]]
安息香酸は、触媒をもちいてトルエンの酸化により得られる。トルエンを二酸化マンガンを触媒として酸化するか、あるいは過マンガン酸カリウム水溶液中で加熱するかで、トルエンの側鎖 -CH<sub>3</sub> が酸化されて安息香酸が得られる。
: [[ファイル:ベンズアルデヒドと安息香酸の式.svg|600x600ピクセル|ベンズアルデヒドと安息香酸の式]]
トルエンから安息香酸までの反応の際、おだやかな条件で酸化させると、まずトルエンのメチル基 -CH<sub>3</sub> が酸化されアルデヒド基となり、-CHO基をもつベンズアルデヒド C<sub>6</sub>H<sub>5</sub>CHO が生じる。ベンズアルデヒドは無色であり、芳香をもち、空気中で徐々に酸化されて、しだいに安息香酸になる。
{{-}}
=== フタル酸とテレフタル酸 ===
[[ファイル:Phthalic_Acid.PNG|サムネイル|フタル酸]]
'''フタル酸''' C<sub>6</sub>H<sub>4</sub>(COOH)<sub>2</sub> はベンゼン環に2つのカルボキシル基が、互いにオルト位に結合した物質である。フタル酸は2つのカルボキシル基が近い位置にあるため、加熱により分子内脱水反応が起こり、無水フタル酸を生じる。
: [[ファイル:フタル酸と無水フタル酸.svg|500x500ピクセル|フタル酸と無水フタル酸]]
フタル酸の製法は、工業的には、o(オルト)-キシレンの酸化によって得られる。「オルト」とは、ベンゼン環での隣り合った位置どうしの関係のこと。
なお、バナジウムの触媒でナフタレンを酸化しても、無水フタル酸が得られる。
'''テレフタル酸'''はフタル酸の異性体であり、互いにパラ位に2つのカルボキシル基が存在する。フタル酸とは異なり、カルボキシル基が離れているため、加熱しても脱水反応は起こらない。テレフタル酸はペットボトルやワイシャツなどの素材となるPET(ポリエチレンテレフタラート)の原料である。テレフタル酸の製法は、工業的には、p(パラ)-キシレンの酸化によって得られる。
: [[ファイル:テレフタル酸.svg|600x600ピクセル|テレフタル酸]]
{{-}}
=== サリチル酸 ===
'''サリチル酸'''は、ベンゼン環にカルボキシル基とヒドロキシ基が互いにオルト位に結合した物質である。 サリチル酸は、ナトリウムフェノキシドから合成される。ナトリウムフェノキシドに二酸化炭素を高温・高圧下で反応させるとサリチル酸ナトリウムが作られる。そのサリチル酸ナトリウムに希硫酸を作用させると、サリチル酸が得られる。
: [[ファイル:サリチル酸の合成式.svg|700x700ピクセル|サリチル酸の合成式]]
サリチル酸は無色(白色)の結晶で、水にはわずかに溶けて酸性を示す。温水やエタノールにはよく溶ける。サリチル酸はベンゼン環に直接ヒドロキシ基が結合しているため、芳香族カルボン酸としての性質を持つと同時に、[[高等学校化学I/芳香族化合物/芳香族カルボン酸#%E3%83%95%E3%82%A7%E3%83%8E%E3%83%BC%E3%83%AB%E9%A1%9E|フェノール類]]としての性質も持つ。
また、サリチル酸のヒドロキシ基を無水酢酸でアセチル化(アセチル基-OCOCH{{sub|3}}での置換反応)すると、'''アセチルサリチル酸'''となる。アセチルサリチル酸は「アスピリン」とも呼ばれ、解熱鎮痛剤として広く用いられている。
: [[ファイル:アセチルサリチル酸の合成式.svg|800x800ピクセル|アセチルサリチル酸の合成式]]
サリチル酸のカルボキシル基をメタノールでエステル化すると、'''サリチル酸メチル'''となる。サリチル酸メチルは湿布薬などに消炎剤として用いられる。
:
== 芳香族アミン ==
アンモニア NH<sub>3</sub> の水素基を炭化水素基で置換した化合物を'''アミン'''(amine)といい、炭化水素基がベンゼン環の場合は'''芳香族アミン'''(aliphateic amine)という。
芳香族アミンは弱塩基性であり、また、アンモニアに化学的性質が似ている。
=== アニリン ===
'''アニリン'''はベンゼンの水素原子1つをアミノ基で置換した物質である。アニリンは無色油状の液体で(沸点185℃)、水に溶けにくい。アニリンを水と混ぜると、分離して下に沈む。アミノ基は弱塩基性を示すため、塩酸と反応するとアニリン塩酸塩 C6H5NH5Cl を生じて、水に溶ける。
: [[ファイル:アニリン塩酸塩の合成式.svg|600x600ピクセル|アニリン塩酸塩の合成式]]
アニリン塩酸塩に、水酸化ナトリウムのような強塩基の水溶液を加えると、油状のアニリンが遊離する。
アニリン溶液は、さらし粉の水溶液を加えると、酸化されて赤紫色になる。この呈色反応はアニリンの検出反応として重要である。
また、アニリンを硫酸酸性二クロム酸カリウム水溶液で酸化すると黒色物質を生じる。これは'''アニリンブラック'''(aniline black)と呼ばれ、黒色染料や黒色顔料として用いられる。
* 製法
アニリンの製法は、実験室ではニトロベンゼンから合成される。ニトロベンゼンにスズと塩酸を加えて加熱すると、還元され、アニリン塩酸塩を生じる。この水溶液に水酸化ナトリウム水溶液のような強塩基を加えて、アニリンを遊離させる。アニリンは水に溶けず分離するため、ジエチルエーテルを加えてアニリンをエーテルに溶かし抽出する。エーテル層と水層の2層に分離するため、エーテル層のみを取り出してエーテルを蒸発させると、アニリンが得られる。
: [[ファイル:Nitrobenzene-reduction.png|300x300ピクセル|アニリンの合成]]
=== アセトアニリド ===
アニリンに無水酢酸を作用させると、アミノ基がアセチル化され、'''アセトアニリド''' C<sub>6</sub>H<sub>5</sub>NHCOCH<sub>3</sub> を生じる。アセトアニリドは無色無臭(白色)の固体であり、解熱鎮痛剤の原料となる。
: [[ファイル:アセトアニリドの合成式.svg|700x700ピクセル|アセトアニリドの合成式]]
この反応では、アミノ基とカルボキシ基との間で分子間脱水した結合-NH-CO-を生じている。この結合は'''アミド結合'''と呼ばれ、タンパク質やアミノ酸を構成する結合としても重要である。
== アゾ化合物 ==
アニリンに希塩酸を加えてアニリン塩酸塩とし、これを5℃以下に冷却しながら亜硝酸ナトリウム水溶液を少しずつ反応させると、塩化ベンゼンジアゾニウム C<sub>6</sub>H<sub>5</sub>N<sub>2</sub><sup>+</sup>Cl<sup>ー</sup> を生じる。
: [[ファイル:塩化ベンゼンジアゾニウムの合成式.svg|700x700ピクセル|塩化ベンゼンジアゾニウムの合成式]]
このように、-N{{sup|+}}≡Nを含む化合物ジアゾニウム化合物と呼び、このようにジアゾニウム塩を生じる反応を'''ジアゾ化'''(diazotization)と呼ぶ。
塩化ベンゼンジアゾニウムは非常に不安定な物質であり、常温ではフェノールと窒素に分解してしまう。そのため、低温に冷却して反応を進行させる必要がある。
塩化ベンゼンジアゾニウム水溶液にナトリウムフェノキシド水溶液を加えると、''p''-ヒドロキシアゾベンゼン(''p''-フェニルアゾフェノール)を生じて橙赤色を呈する。このようにジアゾニウム塩と他の芳香族化合物からアゾ化合物を生成する反応を'''ジアゾカップリング'''(diazo coupling)と呼ぶ。
: [[ファイル:Pヒドロキシアゾベンゼンの合成式.svg|900x900ピクセル|Pヒドロキシアゾベンゼンの合成式]]
分子中に'''アゾ基''' -N=N- を持つ物質を'''アゾ化合物'''(azo compound)と呼ぶ。アゾ化合物は様々な色をもち、染料として用いられるものもある。
=== アゾ化合物の利用 ===
芳香族アゾ化合物は、一般に、黄色〜赤色、橙色の化合物であり、染料('''アゾ染料''')や顔料として用いられる。
[[ファイル:Methyl-orange-sample.jpg|サムネイル|メチルオレンジ]]
[[ファイル:Methyl_orange_for_beginner_student_jp.svg|600x600ピクセル|メチルオレンジ]][[ファイル:Methyl_orange_02035.JPG|左|サムネイル|200x200ピクセル|メチルオレンジの溶液]]
{{-}} またメチルオレンジやメチルレッドもアゾ化合物であり、水溶液中のpHによって色が変わるので、pH指示薬として用いられているものも存在する。
== 芳香族化合物の分離 ==
芳香族カルボン酸・・・炭酸水素ナトリウム
と反応して水層にうつる
芳香族アミン・・・塩酸と反応して水層にうつる
フェノール類・・・水酸化ナトリウムと反応して水層にうつる(中和反応)
== ベンゼン環の置換基の配向性 ==
{| class="wikitable"
|+置換基の配向性
!オルトパラ配向性
| -OH、-CH<sub>3</sub>、-NH<sub>2</sub>、-NHCOCH<sub>3</sub>、-Cl、-Br、-OCH<sub>3</sub>
|-
!メタ配向性
| -NO<sub>2</sub>、-COOH、-SO<sub>3</sub>H、-COCH<sub>3</sub>、-CHO
|}
=== オルト・パラ配向性 ===
[[ファイル:オルトパラ配向性.svg|左|サムネイル|600x600ピクセル|オルトパラ配向性]]
オルト・パラ配向性の置換基のベンゼン1置換体はオルト位とパラ位での置換反応を起こしやすい。
これは、オルト・パラ配向性の置換基はベンゼン環に電子を供与するため、置換反応が起きやすくなることによる。
メチル基はオルトーパラ配向性なのでトルエンをニトロ化すると、o-ニトロトルエンまたはp-ニトロトルエンが生成する。
{{-}}
=== メタ配向性 ===
[[ファイル:メタ配向性.svg|左|サムネイル|600x600ピクセル|メタ配向性]]
メタ配向性の置換基のベンゼン1置換体はオルト位とパラ位での置換反応を起こ'''しにくい'''ため、メタ位での置換反応を起こしやすい。
メタ配向性の置換基はベンゼン環の電子を吸引するため、置換反応が起きにくくなる。
== 発展:ベンゼン環の共鳴 ==
[[ファイル:共鳴を知らない場合のO-キシレンの想定.svg|サムネイル|300x300ピクセル|共鳴を知らない場合のo-キシレンの想像図(じっさいとは、ちがう)。]]
[[ファイル:Benzol_Representationen.svg|サムネイル|600x600ピクセル|π電子の説明図、など(図中の文字はドイツ語)下段の右から2つめの図 Benzol Delokalisierte π-Orbitalwolke の青色で表現された電子のように、ベンゼン環では価電子がリング状に存在している。]]
ベンゼンの異性体のひとつ、o-キシレンは、想像図のように2通りが考えられそうだが、じっさいには1通りしかない。
なぜなら、そもそもベンゼン環の環の部分のあいだの結合は、単結合と二重結合の中間の状態の結合になっているからである。
このように、単結合と二重結合の中間の状態の結合のある現象を'''共鳴'''という。
ベンゼン環が共鳴をしているという事は、つまり、価電子が、特定の2個の炭素原子間に束縛されず、ベンゼン環のリング全体に円周状に均等に広がって存在しているという事である。このような現象を、電子の非局在化という。この性質によりベンゼン環は安定性が高い。
ベンゼン環が共鳴していることを明記したい場合、
[[ファイル:Benzene_circle.svg|左|72x72ピクセル|ベンゼン環]]
でベンゼン環を表記する場合もある。
{{-}} 共鳴してる構造式は下図のように両矢印でつないで書き、 [ ] で囲って表す。
[[ファイル:O-キシレンの共鳴_1.svg|左|サムネイル|300x300ピクセル|O-キシレンの共鳴の書き方のひとつ。]]
<references />
{{DEFAULTSORT:ほうこうそくかこうふつ へんせん}}
[[Category:高等学校化学]]
md0nt6ja5i9upj7x7qr7mvxv09ck30t
モジュール:Yesno
828
21957
263045
133420
2024-11-04T22:09:03Z
Zulf
82839
Update from [[d:Special:GoToLinkedPage/enwiki/Q15098140|master]] using [[mw:Synchronizer| #Synchronizer]]
263045
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
swdskn7svew8i9wuydn9uj5l3r2ghcs
テンプレート:Main other
10
22080
263042
102154
2024-11-04T21:53:33Z
Zulf
82839
Update from [[d:Special:GoToLinkedPage/enwiki/Q5627213|master]] using [[mw:Synchronizer| #Synchronizer]]
263042
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
fqcj40f1ojeitvtz4m2eefrp1ymhi6o
C++/クラスの定義や継承
0
22530
263121
250136
2024-11-05T06:06:14Z
Ef3
694
/* オブジェクト指向 */ 校閲と推敲
263121
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼びます)を生成する時(インスタンス化)の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。
メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。
classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述する事ができる。
:クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述することになります。
その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。
「::(コロン2文字)」のことをスコープ解決演算子(scope resoluthion operator)と呼ぶ。
次のように記述する。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->x = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では,メンバー関数 X(), X(int), Y() と Y(int) を持ち,x と y という int データを持つクラスを定義しています(二次元座標上の2点を表す事を意図しています)。
: クラスのメンバーはデフォルトでprivateです。
: X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。
: これらは、aがprivateであるために必要なものです。
: この様な隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。また、セッターメソッドとしても広く知られている。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
: X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す、'''this'''が使われています(X() の様に単に x とすると仮引数の x にシャドーイングされます)。
: this はポインターなので、参照には <code>-></code> を使用します。
: <code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くことも出来ます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述する。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
:複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切る。
:この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型・オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt,p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述する。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
<!-- コピーコンストラクタと代入演算子-->
== クラスの詳細 ==
=== カプセル化 ===
カプセル化とは、オブジェクト指向のクラスにおいて、オブジェクトのデータ構造を直接操作するのではなく、クラスに用意してメソッド集合を使って操作する事です。
これは、クラスがオブジェクトの扱うためのすべてのメソッドを提供すべきだという考えに基づいており、関数や他のクラスのメソッドに頼るのは、クラス設計に問題があるという考え方です。
カプセル化の目的
・オブジェクトへの統一的なインターフェースを提供し体系化できる。
・内部構造を隠蔽することで、内部構造の変更が(継承したクラスを含む)クラスを利用するコードに波及しないようにできる。
・設計手法的に観ると、分割統治法の一種として捉えられ、問題規模の縮小が図られる。
Javaなどの言語でも、カプセル化がサポートされています。
Pythonでは、カプセル化はデコレータなどで実現され、C++やJavaとは異なる方法でサポートされています。
C++では、public, private, protectedの3つのキーワードがアクセス制御として与えられています。
privateは、同じクラスに属するメソッドからしか値が呼び出すことができなくなります<ref name=friend>フレンド関数・フレンドメンバー関数・フレンドクラスは例外です。</ref>。
publicは、プログラムの他の部分からも呼び出せるようになります。
protectedは、クラスを継承した先から用いることが出来るようになります。
しかし、プログラムの他の部分から呼び出すことは出来ません<ref name=friend/>。
;カプセル化の例:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
int main() {
Point pt;
//pt.x = 1234; //この行はコンパイルエラーになる。
pt.X(1234);
cout<<"ptのxの値は"<<pt.X()<<endl;
}
</syntaxhighlight>
:上の例では、クラスPointのメンバー変数xが非公開になっているため、オブジェクトの外からアクセスするには、公開になっているメソッドX()及びメソッドX()を使用しなければならない。
=== ポリモーフィズム ===
ポリモーフィズム(''polymorphism'';多態性・多相性の訳語が充てられることが多い)は、同じ名前で複数の異なる振る舞いを作り、それを利用するオブジェクト指向の概念である。
ポリモーフィズムは、C++では関数のオーバーローディングによって実現される。
関数オーバーローディングとは、同じ名前の関数を複数実装・使用することである。
ただし、引数の型や個数が異ならないと関数オーバーロードできない。
また、戻値の型だけが異なる場合も関数オーバーロードできない。
;ポリモーフィズムの例:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
int main() {
cout << "1+2は" << add(1, 2) << endl;
cout << "1+2+3は" << add(1, 2, 3) << endl;
}
</syntaxhighlight>
:上の例では、2つの引数を加算するadd関数と3つの引数を返すadd関数が関数オーバーローディングで定義されています。
::もしこれをC言語で行うとすれば、add2 add3 の様に別の名前にしないと、コンパイル時あるいはリンク時に関数定義の衝突あるいはシンボル定義の衝突となり、コンパイルあるいはリンクを完遂できない。
=== コンストラクタ関数とデストラクタ関数 ===
C++のクラスには、初期化・終了処理を自動的に行うコンストラクタ・デストラクタ関数という仕組みがあります。
==== コンストラクタ関数 ====
'''コンストラクタ関数'''(''constructor function'')あるいは単にコンストラクタは、オブジェクトが生成される際に呼び出され、主に初期化処理を記述する。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。
コンストラクタは戻り値を返さないので、戻り値の型は指定しません。
コンストラクタには、引数を指定することができます。
コンストラクタも、関数オーバーロードできます。
引数のないコンストラクタを、'''ディフォルトコンストラクタ'''と呼びます。
==== デストラクタ関数 ====
'''デストラクタ関数'''(''destructor function'')あるいは単にデストラクタは、オブジェクトがスコープを似ける時、あるいは delete 演算子で解放される際に暗黙に呼び出され、主に終了処理を記述します。
クラスにデストラクタ関数を追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
//実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>チルダーを付けます。
デストラクタは戻り値を返さないので、戻り値の型は指定しません。
デストラクタには、引数を指定することができません。
デストラクタは、関数オーバーロードできません。
引数も戻り値の型も指定しない。
;[https://paiza.io/projects/Mp3aJdwTkscLaFWAyVsJcw?language=cpp コンストラクタ関数とデストラクタ関数の例]:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
int main() {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
}</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
kon</syntaxhighlight>
=== フレンド関数 ===
フレンド関数(''friend function'')は、メンバー関数ではない普通の関数から、クラスのprivateまたはprotectedメンバーにアクセスしたい場合に使います<ref>フレンド関数は、メンバー関数ではないので this はありません。</ref>。
この特徴だけ書くと、フレンド関数はカプセル化を破壊するように思えますが(事実その様な設計の失敗は観られますが)、'''メンバー関数では出来ない呼出し形式'''がふさわしい場合に利用価値があります。
具体的には、演算子オーバーライドが'''メンバー関数では出来ない呼出し形式'''の1つです。
ユーザー定義クラスを、ストリームに <code><<</code> で出力する場合
:<syntaxhighlight lang=c++>
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
};
};</syntaxhighlight>
: の様に friend 関数を使って定義します。
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
;メンバー関数:演算の左辺のクラスのケースにしか対応できません。
;フレンド関数:右辺のオブジェクトの隠蔽されたメンバーにもアクセスできるので、右辺に対象のクラスを含む式にも対応できます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)}}
C++11からは、キーワード friend を使った構文が拡張され、 class を指定できるようになりました。
friend 宣言された class のメソッドとstaticメンバー関数は、friend 宣言した class のメンバーに、フリーハンドにアクセスできます。
{{See also|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の malloc() と free() などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確報と開放:<syntaxhighlight lang=c highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を new 演算子と delete 演算子 を使って実現します。
;[https://paiza.io/projects/G0oahi4_fjs4kDMLNhRsRQ?language=cpp C言語の動的メモリー確報と開放]:<syntaxhighlight lang=c highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
:いきなり配列版を例示していましたが、<code>int* pp = new int; delete pp;</code> の様に配列以外もnew/deleteで確保できます。
==== new / delete と コンストラクター ====
;[https://paiza.io/projects/pAB9ggGhx5khTHJ02CmbMA?language=cpp new / delete と コンストラクターの例]:<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // ディフォルトコンストラクター(全パラメーターにディフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたての領域を this にしてコンストラクターを呼出し
p2->dump();
delete p2; // ここで暗黙にディズトラクターが呼ばれる
delete pp; // likewise
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 12 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
: 確保と逆順に呼んでいることに深い意味はありません(アロケーターの都合を想像してみましょう)
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
bow0nrw1b1l6d48iupv8r9pacjwo84e
263122
263121
2024-11-05T06:11:06Z
Ef3
694
/* クラスの基本 */ 校閲と推敲
263122
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
カプセル化とは、オブジェクト指向のクラスにおいて、オブジェクトのデータ構造を直接操作するのではなく、クラスに用意してメソッド集合を使って操作する事です。
これは、クラスがオブジェクトの扱うためのすべてのメソッドを提供すべきだという考えに基づいており、関数や他のクラスのメソッドに頼るのは、クラス設計に問題があるという考え方です。
カプセル化の目的
・オブジェクトへの統一的なインターフェースを提供し体系化できる。
・内部構造を隠蔽することで、内部構造の変更が(継承したクラスを含む)クラスを利用するコードに波及しないようにできる。
・設計手法的に観ると、分割統治法の一種として捉えられ、問題規模の縮小が図られる。
Javaなどの言語でも、カプセル化がサポートされています。
Pythonでは、カプセル化はデコレータなどで実現され、C++やJavaとは異なる方法でサポートされています。
C++では、public, private, protectedの3つのキーワードがアクセス制御として与えられています。
privateは、同じクラスに属するメソッドからしか値が呼び出すことができなくなります<ref name=friend>フレンド関数・フレンドメンバー関数・フレンドクラスは例外です。</ref>。
publicは、プログラムの他の部分からも呼び出せるようになります。
protectedは、クラスを継承した先から用いることが出来るようになります。
しかし、プログラムの他の部分から呼び出すことは出来ません<ref name=friend/>。
;カプセル化の例:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
int main() {
Point pt;
//pt.x = 1234; //この行はコンパイルエラーになる。
pt.X(1234);
cout<<"ptのxの値は"<<pt.X()<<endl;
}
</syntaxhighlight>
:上の例では、クラスPointのメンバー変数xが非公開になっているため、オブジェクトの外からアクセスするには、公開になっているメソッドX()及びメソッドX()を使用しなければならない。
=== ポリモーフィズム ===
ポリモーフィズム(''polymorphism'';多態性・多相性の訳語が充てられることが多い)は、同じ名前で複数の異なる振る舞いを作り、それを利用するオブジェクト指向の概念である。
ポリモーフィズムは、C++では関数のオーバーローディングによって実現される。
関数オーバーローディングとは、同じ名前の関数を複数実装・使用することである。
ただし、引数の型や個数が異ならないと関数オーバーロードできない。
また、戻値の型だけが異なる場合も関数オーバーロードできない。
;ポリモーフィズムの例:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
int main() {
cout << "1+2は" << add(1, 2) << endl;
cout << "1+2+3は" << add(1, 2, 3) << endl;
}
</syntaxhighlight>
:上の例では、2つの引数を加算するadd関数と3つの引数を返すadd関数が関数オーバーローディングで定義されています。
::もしこれをC言語で行うとすれば、add2 add3 の様に別の名前にしないと、コンパイル時あるいはリンク時に関数定義の衝突あるいはシンボル定義の衝突となり、コンパイルあるいはリンクを完遂できない。
=== コンストラクタ関数とデストラクタ関数 ===
C++のクラスには、初期化・終了処理を自動的に行うコンストラクタ・デストラクタ関数という仕組みがあります。
==== コンストラクタ関数 ====
'''コンストラクタ関数'''(''constructor function'')あるいは単にコンストラクタは、オブジェクトが生成される際に呼び出され、主に初期化処理を記述する。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。
コンストラクタは戻り値を返さないので、戻り値の型は指定しません。
コンストラクタには、引数を指定することができます。
コンストラクタも、関数オーバーロードできます。
引数のないコンストラクタを、'''ディフォルトコンストラクタ'''と呼びます。
==== デストラクタ関数 ====
'''デストラクタ関数'''(''destructor function'')あるいは単にデストラクタは、オブジェクトがスコープを似ける時、あるいは delete 演算子で解放される際に暗黙に呼び出され、主に終了処理を記述します。
クラスにデストラクタ関数を追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
//実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>チルダーを付けます。
デストラクタは戻り値を返さないので、戻り値の型は指定しません。
デストラクタには、引数を指定することができません。
デストラクタは、関数オーバーロードできません。
引数も戻り値の型も指定しない。
;[https://paiza.io/projects/Mp3aJdwTkscLaFWAyVsJcw?language=cpp コンストラクタ関数とデストラクタ関数の例]:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
int main() {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
}</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
kon</syntaxhighlight>
=== フレンド関数 ===
フレンド関数(''friend function'')は、メンバー関数ではない普通の関数から、クラスのprivateまたはprotectedメンバーにアクセスしたい場合に使います<ref>フレンド関数は、メンバー関数ではないので this はありません。</ref>。
この特徴だけ書くと、フレンド関数はカプセル化を破壊するように思えますが(事実その様な設計の失敗は観られますが)、'''メンバー関数では出来ない呼出し形式'''がふさわしい場合に利用価値があります。
具体的には、演算子オーバーライドが'''メンバー関数では出来ない呼出し形式'''の1つです。
ユーザー定義クラスを、ストリームに <code><<</code> で出力する場合
:<syntaxhighlight lang=c++>
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
};
};</syntaxhighlight>
: の様に friend 関数を使って定義します。
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
;メンバー関数:演算の左辺のクラスのケースにしか対応できません。
;フレンド関数:右辺のオブジェクトの隠蔽されたメンバーにもアクセスできるので、右辺に対象のクラスを含む式にも対応できます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)}}
C++11からは、キーワード friend を使った構文が拡張され、 class を指定できるようになりました。
friend 宣言された class のメソッドとstaticメンバー関数は、friend 宣言した class のメンバーに、フリーハンドにアクセスできます。
{{See also|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の malloc() と free() などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確報と開放:<syntaxhighlight lang=c highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を new 演算子と delete 演算子 を使って実現します。
;[https://paiza.io/projects/G0oahi4_fjs4kDMLNhRsRQ?language=cpp C言語の動的メモリー確報と開放]:<syntaxhighlight lang=c highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
:いきなり配列版を例示していましたが、<code>int* pp = new int; delete pp;</code> の様に配列以外もnew/deleteで確保できます。
==== new / delete と コンストラクター ====
;[https://paiza.io/projects/pAB9ggGhx5khTHJ02CmbMA?language=cpp new / delete と コンストラクターの例]:<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // ディフォルトコンストラクター(全パラメーターにディフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたての領域を this にしてコンストラクターを呼出し
p2->dump();
delete p2; // ここで暗黙にディズトラクターが呼ばれる
delete pp; // likewise
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 12 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
: 確保と逆順に呼んでいることに深い意味はありません(アロケーターの都合を想像してみましょう)
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
mh4gx662res6dygi5bmvmkckfysco24
263123
263122
2024-11-05T06:17:37Z
Ef3
694
/* カプセル化 */ カプセル化とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
263123
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
'''カプセル化'''とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
カプセル化の目的は以下の通りです。
* '''統一的なインターフェースの提供''': オブジェクトに対する統一的なインターフェースを提供し、操作を体系化します。
* '''内部構造の隠蔽''': クラスの内部構造を隠すことで、内部の変更が(継承したクラスを含む)クラスを利用するコードに影響を与えないようにします。
* '''問題規模の縮小''': 設計手法的に分割統治法として捉えられ、問題を小さく管理しやすくします。
C++では、カプセル化のために以下のアクセス制御キーワードが提供されています。
* <code>private</code>: 同じクラス内のメソッドからのみアクセス可能です。ただし、フレンド関数、フレンドメンバー関数、フレンドクラスは例外としてアクセスできます<ref name=friend>フレンド関数やフレンドクラスを通じて、非公開メンバーにアクセスすることができます。</ref>。
* <code>public</code>: プログラムの他の部分からもアクセス可能です。
* <code>protected</code>: クラスを継承したサブクラスからアクセスできるが、プログラムの他の部分からはアクセスできません<ref name=friend/>.
==== カプセル化の例 ====
以下は、C++でカプセル化を示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y; // メンバー変数はprivate
public:
inline int X() const { return x; } // xを取得するメソッド
inline int X(int x) { return this->x = x; } // xを設定するメソッド
inline int Y() const { return y; } // yを取得するメソッド
inline int Y(int y) { return this->y = y; } // yを設定するメソッド
};
auto main() -> int {
Point pt;
// pt.x = 1234; // この行はコンパイルエラーになる。
pt.X(1234); // xに値を設定
cout << "ptのxの値は" << pt.X() << endl; // xの値を表示
}
</syntaxhighlight>
上の例では、<code>Point</code> クラスのメンバー変数 <code>x</code> と <code>y</code> が非公開であるため、オブジェクトの外からは直接アクセスできません。公開メソッド <code>X()</code> および <code>Y()</code> を通じてのみ、値を設定および取得することができます。
=== ポリモーフィズム ===
ポリモーフィズム(''polymorphism'';多態性・多相性の訳語が充てられることが多い)は、同じ名前で複数の異なる振る舞いを作り、それを利用するオブジェクト指向の概念である。
ポリモーフィズムは、C++では関数のオーバーローディングによって実現される。
関数オーバーローディングとは、同じ名前の関数を複数実装・使用することである。
ただし、引数の型や個数が異ならないと関数オーバーロードできない。
また、戻値の型だけが異なる場合も関数オーバーロードできない。
;ポリモーフィズムの例:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
int main() {
cout << "1+2は" << add(1, 2) << endl;
cout << "1+2+3は" << add(1, 2, 3) << endl;
}
</syntaxhighlight>
:上の例では、2つの引数を加算するadd関数と3つの引数を返すadd関数が関数オーバーローディングで定義されています。
::もしこれをC言語で行うとすれば、add2 add3 の様に別の名前にしないと、コンパイル時あるいはリンク時に関数定義の衝突あるいはシンボル定義の衝突となり、コンパイルあるいはリンクを完遂できない。
=== コンストラクタ関数とデストラクタ関数 ===
C++のクラスには、初期化・終了処理を自動的に行うコンストラクタ・デストラクタ関数という仕組みがあります。
==== コンストラクタ関数 ====
'''コンストラクタ関数'''(''constructor function'')あるいは単にコンストラクタは、オブジェクトが生成される際に呼び出され、主に初期化処理を記述する。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。
コンストラクタは戻り値を返さないので、戻り値の型は指定しません。
コンストラクタには、引数を指定することができます。
コンストラクタも、関数オーバーロードできます。
引数のないコンストラクタを、'''ディフォルトコンストラクタ'''と呼びます。
==== デストラクタ関数 ====
'''デストラクタ関数'''(''destructor function'')あるいは単にデストラクタは、オブジェクトがスコープを似ける時、あるいは delete 演算子で解放される際に暗黙に呼び出され、主に終了処理を記述します。
クラスにデストラクタ関数を追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
//実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>チルダーを付けます。
デストラクタは戻り値を返さないので、戻り値の型は指定しません。
デストラクタには、引数を指定することができません。
デストラクタは、関数オーバーロードできません。
引数も戻り値の型も指定しない。
;[https://paiza.io/projects/Mp3aJdwTkscLaFWAyVsJcw?language=cpp コンストラクタ関数とデストラクタ関数の例]:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
int main() {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
}</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
kon</syntaxhighlight>
=== フレンド関数 ===
フレンド関数(''friend function'')は、メンバー関数ではない普通の関数から、クラスのprivateまたはprotectedメンバーにアクセスしたい場合に使います<ref>フレンド関数は、メンバー関数ではないので this はありません。</ref>。
この特徴だけ書くと、フレンド関数はカプセル化を破壊するように思えますが(事実その様な設計の失敗は観られますが)、'''メンバー関数では出来ない呼出し形式'''がふさわしい場合に利用価値があります。
具体的には、演算子オーバーライドが'''メンバー関数では出来ない呼出し形式'''の1つです。
ユーザー定義クラスを、ストリームに <code><<</code> で出力する場合
:<syntaxhighlight lang=c++>
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
};
};</syntaxhighlight>
: の様に friend 関数を使って定義します。
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
;メンバー関数:演算の左辺のクラスのケースにしか対応できません。
;フレンド関数:右辺のオブジェクトの隠蔽されたメンバーにもアクセスできるので、右辺に対象のクラスを含む式にも対応できます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)}}
C++11からは、キーワード friend を使った構文が拡張され、 class を指定できるようになりました。
friend 宣言された class のメソッドとstaticメンバー関数は、friend 宣言した class のメンバーに、フリーハンドにアクセスできます。
{{See also|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の malloc() と free() などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確報と開放:<syntaxhighlight lang=c highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を new 演算子と delete 演算子 を使って実現します。
;[https://paiza.io/projects/G0oahi4_fjs4kDMLNhRsRQ?language=cpp C言語の動的メモリー確報と開放]:<syntaxhighlight lang=c highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
:いきなり配列版を例示していましたが、<code>int* pp = new int; delete pp;</code> の様に配列以外もnew/deleteで確保できます。
==== new / delete と コンストラクター ====
;[https://paiza.io/projects/pAB9ggGhx5khTHJ02CmbMA?language=cpp new / delete と コンストラクターの例]:<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // ディフォルトコンストラクター(全パラメーターにディフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたての領域を this にしてコンストラクターを呼出し
p2->dump();
delete p2; // ここで暗黙にディズトラクターが呼ばれる
delete pp; // likewise
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 12 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
: 確保と逆順に呼んでいることに深い意味はありません(アロケーターの都合を想像してみましょう)
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
5g79hbkkmrwuygtrqbjvaqmugci2oia
263124
263123
2024-11-05T06:21:33Z
Ef3
694
/* ポリモーフィズム */ ポリモーフィズム(polymorphism;多態性・多相性とも訳される)は、同じ名前で異なる振る舞いを持つ複数のメソッドや関数を定義し、それを利用するオブジェクト指向の概念です。これにより、同一のインターフェースを通じて異なるデータ型を扱うことが可能になります。 ポリモーフィズムは、C++においては主に関数のオーバーローディングによって実現されます。関数オーバーローディングとは、同じ名前の関数を異なる引数の型や個数で定義することを指します。
263124
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
'''カプセル化'''とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
カプセル化の目的は以下の通りです。
* '''統一的なインターフェースの提供''': オブジェクトに対する統一的なインターフェースを提供し、操作を体系化します。
* '''内部構造の隠蔽''': クラスの内部構造を隠すことで、内部の変更が(継承したクラスを含む)クラスを利用するコードに影響を与えないようにします。
* '''問題規模の縮小''': 設計手法的に分割統治法として捉えられ、問題を小さく管理しやすくします。
C++では、カプセル化のために以下のアクセス制御キーワードが提供されています。
* <code>private</code>: 同じクラス内のメソッドからのみアクセス可能です。ただし、フレンド関数、フレンドメンバー関数、フレンドクラスは例外としてアクセスできます<ref name=friend>フレンド関数やフレンドクラスを通じて、非公開メンバーにアクセスすることができます。</ref>。
* <code>public</code>: プログラムの他の部分からもアクセス可能です。
* <code>protected</code>: クラスを継承したサブクラスからアクセスできるが、プログラムの他の部分からはアクセスできません<ref name=friend/>.
==== カプセル化の例 ====
以下は、C++でカプセル化を示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y; // メンバー変数はprivate
public:
inline int X() const { return x; } // xを取得するメソッド
inline int X(int x) { return this->x = x; } // xを設定するメソッド
inline int Y() const { return y; } // yを取得するメソッド
inline int Y(int y) { return this->y = y; } // yを設定するメソッド
};
auto main() -> int {
Point pt;
// pt.x = 1234; // この行はコンパイルエラーになる。
pt.X(1234); // xに値を設定
cout << "ptのxの値は" << pt.X() << endl; // xの値を表示
}
</syntaxhighlight>
上の例では、<code>Point</code> クラスのメンバー変数 <code>x</code> と <code>y</code> が非公開であるため、オブジェクトの外からは直接アクセスできません。公開メソッド <code>X()</code> および <code>Y()</code> を通じてのみ、値を設定および取得することができます。
=== ポリモーフィズム ===
'''ポリモーフィズム'''(''polymorphism'';多態性・多相性とも訳される)は、同じ名前で異なる振る舞いを持つ複数のメソッドや関数を定義し、それを利用するオブジェクト指向の概念です。これにより、同一のインターフェースを通じて異なるデータ型を扱うことが可能になります。
ポリモーフィズムは、C++においては主に関数のオーバーローディングによって実現されます。関数オーバーローディングとは、同じ名前の関数を異なる引数の型や個数で定義することを指します。ただし、以下の条件を満たす必要があります。
* 引数の型や個数が異なる場合にのみ、関数をオーバーロードすることができます。
* 戻り値の型だけが異なる場合では、関数をオーバーロードすることはできません。
==== ポリモーフィズムの例 ====
以下は、C++でポリモーフィズムを示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; } // 2つの引数を加算する関数
int add(int a, int b, int c) { return a + b + c; } // 3つの引数を加算する関数
int main() {
cout << "1 + 2 は " << add(1, 2) << endl; // 2つの引数を使用
cout << "1 + 2 + 3 は " << add(1, 2, 3) << endl; // 3つの引数を使用
}
</syntaxhighlight>
上の例では、2つの引数を加算する <code>add</code> 関数と、3つの引数を加算する <code>add</code> 関数が関数オーバーローディングによって定義されています。このように、同じ名前の関数を異なる引数で呼び出すことができるため、コードの可読性が向上します。
もしこれをC言語で行うとすれば、関数名を <code>add2</code> や <code>add3</code> のように異なる名前にしなければならず、そうしないとコンパイル時またはリンク時に関数定義の衝突が発生し、コンパイルやリンクが失敗することになります。
=== コンストラクタ関数とデストラクタ関数 ===
C++のクラスには、初期化・終了処理を自動的に行うコンストラクタ・デストラクタ関数という仕組みがあります。
==== コンストラクタ関数 ====
'''コンストラクタ関数'''(''constructor function'')あるいは単にコンストラクタは、オブジェクトが生成される際に呼び出され、主に初期化処理を記述する。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。
コンストラクタは戻り値を返さないので、戻り値の型は指定しません。
コンストラクタには、引数を指定することができます。
コンストラクタも、関数オーバーロードできます。
引数のないコンストラクタを、'''ディフォルトコンストラクタ'''と呼びます。
==== デストラクタ関数 ====
'''デストラクタ関数'''(''destructor function'')あるいは単にデストラクタは、オブジェクトがスコープを似ける時、あるいは delete 演算子で解放される際に暗黙に呼び出され、主に終了処理を記述します。
クラスにデストラクタ関数を追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
//実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>チルダーを付けます。
デストラクタは戻り値を返さないので、戻り値の型は指定しません。
デストラクタには、引数を指定することができません。
デストラクタは、関数オーバーロードできません。
引数も戻り値の型も指定しない。
;[https://paiza.io/projects/Mp3aJdwTkscLaFWAyVsJcw?language=cpp コンストラクタ関数とデストラクタ関数の例]:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
int main() {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y()
<< endl;
}</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
kon</syntaxhighlight>
=== フレンド関数 ===
フレンド関数(''friend function'')は、メンバー関数ではない普通の関数から、クラスのprivateまたはprotectedメンバーにアクセスしたい場合に使います<ref>フレンド関数は、メンバー関数ではないので this はありません。</ref>。
この特徴だけ書くと、フレンド関数はカプセル化を破壊するように思えますが(事実その様な設計の失敗は観られますが)、'''メンバー関数では出来ない呼出し形式'''がふさわしい場合に利用価値があります。
具体的には、演算子オーバーライドが'''メンバー関数では出来ない呼出し形式'''の1つです。
ユーザー定義クラスを、ストリームに <code><<</code> で出力する場合
:<syntaxhighlight lang=c++>
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
};
};</syntaxhighlight>
: の様に friend 関数を使って定義します。
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
;メンバー関数:演算の左辺のクラスのケースにしか対応できません。
;フレンド関数:右辺のオブジェクトの隠蔽されたメンバーにもアクセスできるので、右辺に対象のクラスを含む式にも対応できます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)}}
C++11からは、キーワード friend を使った構文が拡張され、 class を指定できるようになりました。
friend 宣言された class のメソッドとstaticメンバー関数は、friend 宣言した class のメンバーに、フリーハンドにアクセスできます。
{{See also|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の malloc() と free() などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確報と開放:<syntaxhighlight lang=c highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を new 演算子と delete 演算子 を使って実現します。
;[https://paiza.io/projects/G0oahi4_fjs4kDMLNhRsRQ?language=cpp C言語の動的メモリー確報と開放]:<syntaxhighlight lang=c highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
:いきなり配列版を例示していましたが、<code>int* pp = new int; delete pp;</code> の様に配列以外もnew/deleteで確保できます。
==== new / delete と コンストラクター ====
;[https://paiza.io/projects/pAB9ggGhx5khTHJ02CmbMA?language=cpp new / delete と コンストラクターの例]:<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // ディフォルトコンストラクター(全パラメーターにディフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたての領域を this にしてコンストラクターを呼出し
p2->dump();
delete p2; // ここで暗黙にディズトラクターが呼ばれる
delete pp; // likewise
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 12 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
: 確保と逆順に呼んでいることに深い意味はありません(アロケーターの都合を想像してみましょう)
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
ct26v9ili5tk6hybm9vk5exahu1x7zs
263125
263124
2024-11-05T06:26:37Z
Ef3
694
/* コンストラクタ関数とデストラクタ関数 */ 校閲と推敲
263125
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
'''カプセル化'''とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
カプセル化の目的は以下の通りです。
* '''統一的なインターフェースの提供''': オブジェクトに対する統一的なインターフェースを提供し、操作を体系化します。
* '''内部構造の隠蔽''': クラスの内部構造を隠すことで、内部の変更が(継承したクラスを含む)クラスを利用するコードに影響を与えないようにします。
* '''問題規模の縮小''': 設計手法的に分割統治法として捉えられ、問題を小さく管理しやすくします。
C++では、カプセル化のために以下のアクセス制御キーワードが提供されています。
* <code>private</code>: 同じクラス内のメソッドからのみアクセス可能です。ただし、フレンド関数、フレンドメンバー関数、フレンドクラスは例外としてアクセスできます<ref name=friend>フレンド関数やフレンドクラスを通じて、非公開メンバーにアクセスすることができます。</ref>。
* <code>public</code>: プログラムの他の部分からもアクセス可能です。
* <code>protected</code>: クラスを継承したサブクラスからアクセスできるが、プログラムの他の部分からはアクセスできません<ref name=friend/>.
==== カプセル化の例 ====
以下は、C++でカプセル化を示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y; // メンバー変数はprivate
public:
inline int X() const { return x; } // xを取得するメソッド
inline int X(int x) { return this->x = x; } // xを設定するメソッド
inline int Y() const { return y; } // yを取得するメソッド
inline int Y(int y) { return this->y = y; } // yを設定するメソッド
};
auto main() -> int {
Point pt;
// pt.x = 1234; // この行はコンパイルエラーになる。
pt.X(1234); // xに値を設定
cout << "ptのxの値は" << pt.X() << endl; // xの値を表示
}
</syntaxhighlight>
上の例では、<code>Point</code> クラスのメンバー変数 <code>x</code> と <code>y</code> が非公開であるため、オブジェクトの外からは直接アクセスできません。公開メソッド <code>X()</code> および <code>Y()</code> を通じてのみ、値を設定および取得することができます。
=== ポリモーフィズム ===
'''ポリモーフィズム'''(''polymorphism'';多態性・多相性とも訳される)は、同じ名前で異なる振る舞いを持つ複数のメソッドや関数を定義し、それを利用するオブジェクト指向の概念です。これにより、同一のインターフェースを通じて異なるデータ型を扱うことが可能になります。
ポリモーフィズムは、C++においては主に関数のオーバーローディングによって実現されます。関数オーバーローディングとは、同じ名前の関数を異なる引数の型や個数で定義することを指します。ただし、以下の条件を満たす必要があります。
* 引数の型や個数が異なる場合にのみ、関数をオーバーロードすることができます。
* 戻り値の型だけが異なる場合では、関数をオーバーロードすることはできません。
==== ポリモーフィズムの例 ====
以下は、C++でポリモーフィズムを示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; } // 2つの引数を加算する関数
int add(int a, int b, int c) { return a + b + c; } // 3つの引数を加算する関数
int main() {
cout << "1 + 2 は " << add(1, 2) << endl; // 2つの引数を使用
cout << "1 + 2 + 3 は " << add(1, 2, 3) << endl; // 3つの引数を使用
}
</syntaxhighlight>
上の例では、2つの引数を加算する <code>add</code> 関数と、3つの引数を加算する <code>add</code> 関数が関数オーバーローディングによって定義されています。このように、同じ名前の関数を異なる引数で呼び出すことができるため、コードの可読性が向上します。
もしこれをC言語で行うとすれば、関数名を <code>add2</code> や <code>add3</code> のように異なる名前にしなければならず、そうしないとコンパイル時またはリンク時に関数定義の衝突が発生し、コンパイルやリンクが失敗することになります。
=== コンストラクタとデストラクタ ===
C++のクラスには、オブジェクトの初期化や終了処理を自動的に行うためのコンストラクタとデストラクタという仕組みがあります。
==== コンストラクタ ====
'''コンストラクタ'''(''constructor'')は、オブジェクトが生成される際に呼び出され、主に初期化処理を記述します。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。コンストラクタは戻り値を返さないため、戻り値の型は指定しません。また、引数を指定することができ、関数オーバーロードも可能です。引数のないコンストラクタは、'''ディフォルトコンストラクタ'''と呼ばれます。
==== デストラクタ ====
'''デストラクタ'''(''destructor'')は、オブジェクトがスコープを抜ける時や、<code>delete</code> 演算子で解放される際に暗黙的に呼び出され、主に終了処理を記述します。
クラスにデストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
// 実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>(チルダ)を付けます。デストラクタも戻り値を返さず、引数を指定することができません。また、デストラクタは関数オーバーロードできません。
==== 例 ====
以下は、コンストラクタとデストラクタを使用した例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {
cout << "コンストラクタ呼び出し。" << endl;
}
~Point() {
cout << "デストラクタ呼び出し。" << endl;
}
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
auto main() -> int {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
</syntaxhighlight>
=== フレンド関数 ===
フレンド関数(''friend function'')は、メンバー関数ではない普通の関数から、クラスのprivateまたはprotectedメンバーにアクセスしたい場合に使います<ref>フレンド関数は、メンバー関数ではないので this はありません。</ref>。
この特徴だけ書くと、フレンド関数はカプセル化を破壊するように思えますが(事実その様な設計の失敗は観られますが)、'''メンバー関数では出来ない呼出し形式'''がふさわしい場合に利用価値があります。
具体的には、演算子オーバーライドが'''メンバー関数では出来ない呼出し形式'''の1つです。
ユーザー定義クラスを、ストリームに <code><<</code> で出力する場合
:<syntaxhighlight lang=c++>
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
};
};</syntaxhighlight>
: の様に friend 関数を使って定義します。
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
;メンバー関数:演算の左辺のクラスのケースにしか対応できません。
;フレンド関数:右辺のオブジェクトの隠蔽されたメンバーにもアクセスできるので、右辺に対象のクラスを含む式にも対応できます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)}}
C++11からは、キーワード friend を使った構文が拡張され、 class を指定できるようになりました。
friend 宣言された class のメソッドとstaticメンバー関数は、friend 宣言した class のメンバーに、フリーハンドにアクセスできます。
{{See also|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の malloc() と free() などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確報と開放:<syntaxhighlight lang=c highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を new 演算子と delete 演算子 を使って実現します。
;[https://paiza.io/projects/G0oahi4_fjs4kDMLNhRsRQ?language=cpp C言語の動的メモリー確報と開放]:<syntaxhighlight lang=c highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
:いきなり配列版を例示していましたが、<code>int* pp = new int; delete pp;</code> の様に配列以外もnew/deleteで確保できます。
==== new / delete と コンストラクター ====
;[https://paiza.io/projects/pAB9ggGhx5khTHJ02CmbMA?language=cpp new / delete と コンストラクターの例]:<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // ディフォルトコンストラクター(全パラメーターにディフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたての領域を this にしてコンストラクターを呼出し
p2->dump();
delete p2; // ここで暗黙にディズトラクターが呼ばれる
delete pp; // likewise
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 12 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
: 確保と逆順に呼んでいることに深い意味はありません(アロケーターの都合を想像してみましょう)
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
szhe9aubqstk03c2qn1721iyggvjxl8
263126
263125
2024-11-05T06:30:40Z
Ef3
694
/* フレンド関数 */ フレンド関数(friend function)は、メンバー関数ではない通常の関数が、クラスの private または protected メンバーにアクセスするために使用されます。この特徴だけを述べると、フレンド関数はカプセル化を破壊するように見えるかもしれません(実際、そのような設計の失敗が見受けられます)。しかし、メンバー関数では実現できない呼び出し形式が適切な場合には、フレンド関数には価値があります。具体的には、演算子オーバーロードがメンバー関数では実現できない呼び出し形式の一例です。ユ
263126
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
'''カプセル化'''とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
カプセル化の目的は以下の通りです。
* '''統一的なインターフェースの提供''': オブジェクトに対する統一的なインターフェースを提供し、操作を体系化します。
* '''内部構造の隠蔽''': クラスの内部構造を隠すことで、内部の変更が(継承したクラスを含む)クラスを利用するコードに影響を与えないようにします。
* '''問題規模の縮小''': 設計手法的に分割統治法として捉えられ、問題を小さく管理しやすくします。
C++では、カプセル化のために以下のアクセス制御キーワードが提供されています。
* <code>private</code>: 同じクラス内のメソッドからのみアクセス可能です。ただし、フレンド関数、フレンドメンバー関数、フレンドクラスは例外としてアクセスできます<ref name=friend>フレンド関数やフレンドクラスを通じて、非公開メンバーにアクセスすることができます。</ref>。
* <code>public</code>: プログラムの他の部分からもアクセス可能です。
* <code>protected</code>: クラスを継承したサブクラスからアクセスできるが、プログラムの他の部分からはアクセスできません<ref name=friend/>.
==== カプセル化の例 ====
以下は、C++でカプセル化を示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y; // メンバー変数はprivate
public:
inline int X() const { return x; } // xを取得するメソッド
inline int X(int x) { return this->x = x; } // xを設定するメソッド
inline int Y() const { return y; } // yを取得するメソッド
inline int Y(int y) { return this->y = y; } // yを設定するメソッド
};
auto main() -> int {
Point pt;
// pt.x = 1234; // この行はコンパイルエラーになる。
pt.X(1234); // xに値を設定
cout << "ptのxの値は" << pt.X() << endl; // xの値を表示
}
</syntaxhighlight>
上の例では、<code>Point</code> クラスのメンバー変数 <code>x</code> と <code>y</code> が非公開であるため、オブジェクトの外からは直接アクセスできません。公開メソッド <code>X()</code> および <code>Y()</code> を通じてのみ、値を設定および取得することができます。
=== ポリモーフィズム ===
'''ポリモーフィズム'''(''polymorphism'';多態性・多相性とも訳される)は、同じ名前で異なる振る舞いを持つ複数のメソッドや関数を定義し、それを利用するオブジェクト指向の概念です。これにより、同一のインターフェースを通じて異なるデータ型を扱うことが可能になります。
ポリモーフィズムは、C++においては主に関数のオーバーローディングによって実現されます。関数オーバーローディングとは、同じ名前の関数を異なる引数の型や個数で定義することを指します。ただし、以下の条件を満たす必要があります。
* 引数の型や個数が異なる場合にのみ、関数をオーバーロードすることができます。
* 戻り値の型だけが異なる場合では、関数をオーバーロードすることはできません。
==== ポリモーフィズムの例 ====
以下は、C++でポリモーフィズムを示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; } // 2つの引数を加算する関数
int add(int a, int b, int c) { return a + b + c; } // 3つの引数を加算する関数
int main() {
cout << "1 + 2 は " << add(1, 2) << endl; // 2つの引数を使用
cout << "1 + 2 + 3 は " << add(1, 2, 3) << endl; // 3つの引数を使用
}
</syntaxhighlight>
上の例では、2つの引数を加算する <code>add</code> 関数と、3つの引数を加算する <code>add</code> 関数が関数オーバーローディングによって定義されています。このように、同じ名前の関数を異なる引数で呼び出すことができるため、コードの可読性が向上します。
もしこれをC言語で行うとすれば、関数名を <code>add2</code> や <code>add3</code> のように異なる名前にしなければならず、そうしないとコンパイル時またはリンク時に関数定義の衝突が発生し、コンパイルやリンクが失敗することになります。
=== コンストラクタとデストラクタ ===
C++のクラスには、オブジェクトの初期化や終了処理を自動的に行うためのコンストラクタとデストラクタという仕組みがあります。
==== コンストラクタ ====
'''コンストラクタ'''(''constructor'')は、オブジェクトが生成される際に呼び出され、主に初期化処理を記述します。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。コンストラクタは戻り値を返さないため、戻り値の型は指定しません。また、引数を指定することができ、関数オーバーロードも可能です。引数のないコンストラクタは、'''ディフォルトコンストラクタ'''と呼ばれます。
==== デストラクタ ====
'''デストラクタ'''(''destructor'')は、オブジェクトがスコープを抜ける時や、<code>delete</code> 演算子で解放される際に暗黙的に呼び出され、主に終了処理を記述します。
クラスにデストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
// 実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>(チルダ)を付けます。デストラクタも戻り値を返さず、引数を指定することができません。また、デストラクタは関数オーバーロードできません。
==== 例 ====
以下は、コンストラクタとデストラクタを使用した例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {
cout << "コンストラクタ呼び出し。" << endl;
}
~Point() {
cout << "デストラクタ呼び出し。" << endl;
}
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
auto main() -> int {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
</syntaxhighlight>
=== フレンド関数 ===
'''フレンド関数'''(''friend function'')は、メンバー関数ではない通常の関数が、クラスの private または protected メンバーにアクセスするために使用されます<ref>フレンド関数はメンバー関数ではないため、<code>this</code> ポインタは存在しません。</ref>。
この特徴だけを述べると、フレンド関数はカプセル化を破壊するように見えるかもしれません(実際、そのような設計の失敗が見受けられます)。しかし、'''メンバー関数では実現できない呼び出し形式'''が適切な場合には、フレンド関数には価値があります。
具体的には、演算子オーバーロードが'''メンバー関数では実現できない呼び出し形式'''の一例です。ユーザー定義クラスをストリームに <code><<</code> で出力する場合、次のようにフレンド関数を使って定義します。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
}
};
</syntaxhighlight>
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
* '''メンバー関数''': 演算の左辺がクラスのインスタンスである場合にのみ対応できます。
* '''フレンド関数''': 右辺のオブジェクトの隠されたメンバーにもアクセスできるため、右辺に対象のクラスを含む式にも対応できます。
C++11からは、キーワード <code>friend</code> を使った構文が拡張され、クラスを指定できるようになりました。<code>friend</code> 宣言されたクラスのメソッドおよび静的メンバー関数は、宣言したクラスのメンバーに自由にアクセスできます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の malloc() と free() などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確報と開放:<syntaxhighlight lang=c highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を new 演算子と delete 演算子 を使って実現します。
;[https://paiza.io/projects/G0oahi4_fjs4kDMLNhRsRQ?language=cpp C言語の動的メモリー確報と開放]:<syntaxhighlight lang=c highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
:いきなり配列版を例示していましたが、<code>int* pp = new int; delete pp;</code> の様に配列以外もnew/deleteで確保できます。
==== new / delete と コンストラクター ====
;[https://paiza.io/projects/pAB9ggGhx5khTHJ02CmbMA?language=cpp new / delete と コンストラクターの例]:<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(x) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // ディフォルトコンストラクター(全パラメーターにディフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたての領域を this にしてコンストラクターを呼出し
p2->dump();
delete p2; // ここで暗黙にディズトラクターが呼ばれる
delete pp; // likewise
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 12 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
: 確保と逆順に呼んでいることに深い意味はありません(アロケーターの都合を想像してみましょう)
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
bg748b7sn64w1iq4r1ticieay3ix873
263127
263126
2024-11-05T06:41:28Z
Ef3
694
/* new 演算子と delete 演算子 */ 校閲と推敲
263127
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
'''カプセル化'''とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
カプセル化の目的は以下の通りです。
* '''統一的なインターフェースの提供''': オブジェクトに対する統一的なインターフェースを提供し、操作を体系化します。
* '''内部構造の隠蔽''': クラスの内部構造を隠すことで、内部の変更が(継承したクラスを含む)クラスを利用するコードに影響を与えないようにします。
* '''問題規模の縮小''': 設計手法的に分割統治法として捉えられ、問題を小さく管理しやすくします。
C++では、カプセル化のために以下のアクセス制御キーワードが提供されています。
* <code>private</code>: 同じクラス内のメソッドからのみアクセス可能です。ただし、フレンド関数、フレンドメンバー関数、フレンドクラスは例外としてアクセスできます<ref name=friend>フレンド関数やフレンドクラスを通じて、非公開メンバーにアクセスすることができます。</ref>。
* <code>public</code>: プログラムの他の部分からもアクセス可能です。
* <code>protected</code>: クラスを継承したサブクラスからアクセスできるが、プログラムの他の部分からはアクセスできません<ref name=friend/>.
==== カプセル化の例 ====
以下は、C++でカプセル化を示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y; // メンバー変数はprivate
public:
inline int X() const { return x; } // xを取得するメソッド
inline int X(int x) { return this->x = x; } // xを設定するメソッド
inline int Y() const { return y; } // yを取得するメソッド
inline int Y(int y) { return this->y = y; } // yを設定するメソッド
};
auto main() -> int {
Point pt;
// pt.x = 1234; // この行はコンパイルエラーになる。
pt.X(1234); // xに値を設定
cout << "ptのxの値は" << pt.X() << endl; // xの値を表示
}
</syntaxhighlight>
上の例では、<code>Point</code> クラスのメンバー変数 <code>x</code> と <code>y</code> が非公開であるため、オブジェクトの外からは直接アクセスできません。公開メソッド <code>X()</code> および <code>Y()</code> を通じてのみ、値を設定および取得することができます。
=== ポリモーフィズム ===
'''ポリモーフィズム'''(''polymorphism'';多態性・多相性とも訳される)は、同じ名前で異なる振る舞いを持つ複数のメソッドや関数を定義し、それを利用するオブジェクト指向の概念です。これにより、同一のインターフェースを通じて異なるデータ型を扱うことが可能になります。
ポリモーフィズムは、C++においては主に関数のオーバーローディングによって実現されます。関数オーバーローディングとは、同じ名前の関数を異なる引数の型や個数で定義することを指します。ただし、以下の条件を満たす必要があります。
* 引数の型や個数が異なる場合にのみ、関数をオーバーロードすることができます。
* 戻り値の型だけが異なる場合では、関数をオーバーロードすることはできません。
==== ポリモーフィズムの例 ====
以下は、C++でポリモーフィズムを示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; } // 2つの引数を加算する関数
int add(int a, int b, int c) { return a + b + c; } // 3つの引数を加算する関数
int main() {
cout << "1 + 2 は " << add(1, 2) << endl; // 2つの引数を使用
cout << "1 + 2 + 3 は " << add(1, 2, 3) << endl; // 3つの引数を使用
}
</syntaxhighlight>
上の例では、2つの引数を加算する <code>add</code> 関数と、3つの引数を加算する <code>add</code> 関数が関数オーバーローディングによって定義されています。このように、同じ名前の関数を異なる引数で呼び出すことができるため、コードの可読性が向上します。
もしこれをC言語で行うとすれば、関数名を <code>add2</code> や <code>add3</code> のように異なる名前にしなければならず、そうしないとコンパイル時またはリンク時に関数定義の衝突が発生し、コンパイルやリンクが失敗することになります。
=== コンストラクタとデストラクタ ===
C++のクラスには、オブジェクトの初期化や終了処理を自動的に行うためのコンストラクタとデストラクタという仕組みがあります。
==== コンストラクタ ====
'''コンストラクタ'''(''constructor'')は、オブジェクトが生成される際に呼び出され、主に初期化処理を記述します。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。コンストラクタは戻り値を返さないため、戻り値の型は指定しません。また、引数を指定することができ、関数オーバーロードも可能です。引数のないコンストラクタは、'''ディフォルトコンストラクタ'''と呼ばれます。
==== デストラクタ ====
'''デストラクタ'''(''destructor'')は、オブジェクトがスコープを抜ける時や、<code>delete</code> 演算子で解放される際に暗黙的に呼び出され、主に終了処理を記述します。
クラスにデストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
// 実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>(チルダ)を付けます。デストラクタも戻り値を返さず、引数を指定することができません。また、デストラクタは関数オーバーロードできません。
==== 例 ====
以下は、コンストラクタとデストラクタを使用した例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {
cout << "コンストラクタ呼び出し。" << endl;
}
~Point() {
cout << "デストラクタ呼び出し。" << endl;
}
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
auto main() -> int {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
</syntaxhighlight>
=== フレンド関数 ===
'''フレンド関数'''(''friend function'')は、メンバー関数ではない通常の関数が、クラスの private または protected メンバーにアクセスするために使用されます<ref>フレンド関数はメンバー関数ではないため、<code>this</code> ポインタは存在しません。</ref>。
この特徴だけを述べると、フレンド関数はカプセル化を破壊するように見えるかもしれません(実際、そのような設計の失敗が見受けられます)。しかし、'''メンバー関数では実現できない呼び出し形式'''が適切な場合には、フレンド関数には価値があります。
具体的には、演算子オーバーロードが'''メンバー関数では実現できない呼び出し形式'''の一例です。ユーザー定義クラスをストリームに <code><<</code> で出力する場合、次のようにフレンド関数を使って定義します。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
}
};
</syntaxhighlight>
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
* '''メンバー関数''': 演算の左辺がクラスのインスタンスである場合にのみ対応できます。
* '''フレンド関数''': 右辺のオブジェクトの隠されたメンバーにもアクセスできるため、右辺に対象のクラスを含む式にも対応できます。
C++11からは、キーワード <code>friend</code> を使った構文が拡張され、クラスを指定できるようになりました。<code>friend</code> 宣言されたクラスのメソッドおよび静的メンバー関数は、宣言したクラスのメンバーに自由にアクセスできます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の <code>malloc()</code> と <code>free()</code> などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確保と解放:
<syntaxhighlight lang="c" highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を <code>new</code> 演算子と <code>delete</code> 演算子を使って実現します。
;C++における動的メモリー確保と解放:
<syntaxhighlight lang="cpp" highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
: いきなり配列版を例示していますが、<code>int* pp = new int; delete pp;</code> のように、配列以外でも <code>new</code>/<code>delete</code> で確保できます。
==== new / delete と コンストラクター ====
;C++における <code>new</code> / <code>delete</code> とコンストラクターの例:
<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // デフォルトコンストラクター(全パラメーターにデフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたメモリを this にしてコンストラクターを呼び出し
p2->dump();
delete p2; // ここで暗黙にデストラクターが呼ばれる
delete pp; // 同様
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang="text">
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 34 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
確保と逆順に呼ばれていることに深い意味はありません(アロケーターの都合を考えてみましょう)。
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
gifsln912ghmb81wqmwm6m2jxjts23t
263128
263127
2024-11-05T06:48:13Z
Ef3
694
/*スマートポインタによるメモリー管理*/ C++11以降、スマートポインタが導入され、newおよびdeleteの使用を避け、メモリー管理を自動化することが推奨されています。スマートポインタは、リソースを自動的に解放するため、メモリーリークや二重解放を防ぎます。
263128
wikitext
text/x-wiki
{{Nav}}
{{Nav}}
== オブジェクト指向 ==
=== オブジェクト指向とクラス ===
オブジェクト指向プログラミングとは、データや手続きを統一的に記述することで、プログラムの内容を理解しやすくするプログラミング手法です。
クラスはクラスベースのオブジェクト指向の中核となる概念で<ref>オブジェクト指向言語には、クラスベースのオブジェクト指向言語とプロトタイプベースのオブジェクト指向言語があります。プロトタイプベースのオブジェクト指向言語には、[[Self]]、[[JavaScript]]、[[Lua]]などがあります。</ref>、様々な言語でクラスを定義することができます。C++以外では[[Java]]、[[Python]]、[[Ruby]]、[[Swift]]、[[Scala]]、[[Kotlin]]などがクラスベースのオブジェクト指向言語として有名です。
単純に、クラスベースのオブジェクト指向プログラミングに興味があるのであれば、[[Ruby]]などの動的言語のクラスベースのオブジェクト指向プログラミングの方が、学習が容易であると期待できるため、動的言語も検討するのが良いでしょう。
{{See also|オブジェクト指向プログラミング}}
== クラスの基本 ==
'''クラス'''(class)とは、データ構造であり、データと関数をメンバーとして持ち、実体(インスタンスと呼ばれる)を生成する際の雛型となります。
=== クラスの宣言 ===
C++でクラスを宣言するには、キーワードclassを用いて次のように記述します。
;クラス定義の構文: <syntaxhighlight lang="cpp">
class クラス名 {
// 非公開データメンバーと非公開メンバー関数
public:
// 公開データメンバーと公開メンバー関数
};
</syntaxhighlight>
class内の関数をメンバー関数(しばしばメソッド)と呼び、変数のことをデータメンバー(しばしばメンバー変数)と呼び、総称してメンバーと呼びます。メンバーにはオブジェクトの外からアクセスできない非公開のもの '''private''' と、アクセスできる公開のもの '''public''' があります(継承の説明まで、protected の説明は留保)。classのメンバーはデフォルトで非公開 '''private''' です。
メンバー関数がインライン化できない場合など、クラスの宣言の外にその定義を記述することができます。クラス定義はヘッダーに、メソッドの実装は通常のソースコードに記述します。その場合、メンバー関数の定義は、関数名の前に「クラス名::」を付けます。「::(コロン2文字)」のことをスコープ解決演算子(scope resolution operator)と呼びます。次のように記述します。
:<syntaxhighlight lang="cpp">
戻り値の型 クラス名::関数名(仮引数の並び) {
// 関数の本体
};
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の中に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
inline int X() const { return x; } // 非破壊的なメソッドは const で修飾します
inline int X(int x){ return this->x = x; }
inline int Y() const { return y; } // 非破壊的なメソッドは const で修飾します
inline int Y(int y){ return this->y = y; }
};
#endif
</syntaxhighlight>
; メンバー関数の定義をクラスの宣言の外に書く例
; Point :<syntaxhighlight lang="cpp">
#ifndef POINT_H
#define POINT_H
// Point: 二次元座標上の1点
class Point {
int x, y;
public:
int X() const;
int X(int);
int Y() const;
int Y(int);
};
#endif
</syntaxhighlight>
; Point.cpp :<syntaxhighlight lang="cpp">
#include "Point"
int Point::X() const { return x; }
int Point::X(int x) { return this->x = x; }
int Point::Y() const { return y; }
int Point::Y(int y) { return this->y = y; }
</syntaxhighlight>
: 上の例では、メンバー関数 X(), X(int), Y() と Y(int) を持ち、x と y という int データを持つクラスを定義しています(二次元座標上の2点を表すことを意図しています)。クラスのメンバーはデフォルトで private です。X() は x の内容を取得するメソッドで、X(int) は x を設定するメソッドです。これらは、x が private であるために必要なものです。このような隠蔽されたメンバーへのアクセス手段を提供するメソッドを、アクセサー(ゲッター・セッター)と呼びます<ref>プログラミングにおいて、ミューテーターメソッドは、変数の変更を制御するために使用されるメソッドです。セッターはしばしばゲッターを伴い(共にアクセッサーとも呼ばれる)、プライベートメンバ変数の値を返す。</ref>。
X()では、メソッド呼出しを行ったオブジェクトへのポインターを表す '''this''' が使われています(X() のように単に x とすると仮引数の x にシャドーイングされます)。this はポインターなので、参照には <code>-></code> を使用します。<code>int Point::X() const { return x; }</code>を、<code>int Point::X() const { return this->x; }</code>と書くこともできます。
=== オブジェクトの生成 ===
オブジェクトの生成(インスタンス化)は次のように記述します。
:<syntaxhighlight lang="cpp">
クラス名 オブジェクト名;
</syntaxhighlight>
: 複数のオブジェクトを生成する場合は、<code>,</code>(コンマ)で区切ります。この構文は <code>型名 変数名;</code>そのもので、クラスはユーザー定義型、オブジェクトはクラス型の変数です。
;Pointクラスのオブジェクトpt, p2を生成する例:<syntaxhighlight lang="cpp">
Point pt, p2;
</syntaxhighlight>
=== メンバーへのアクセス ===
メンバーにアクセスするには、ドット(.)演算子を用いて次のように記述します。
:<syntaxhighlight lang="cpp">
オブジェクト名.メンバー名
</syntaxhighlight>
;ptのXメンバー関数を呼び出す例:<syntaxhighlight lang="cpp">
pt.X(1234);
</syntaxhighlight>
=== オブジェクトのコピー ===
オブジェクトのコピーは、既存のオブジェクトから新しいオブジェクトを生成するプロセスです。C++において、オブジェクトのコピーには主に二つの方法があります:コピーコンストラクタと代入演算子です。
==== コピーコンストラクタ ====
コピーコンストラクタは、既存のオブジェクトを引数として受け取り、新しいオブジェクトを初期化する特別なコンストラクタです。コピーコンストラクタは次のように定義されます。
; コピーコンストラクタの構文: <syntaxhighlight lang="cpp">
クラス名(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスのコピーコンストラクタの例です。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x, int y) : x(x), y(y) {} // コンストラクタ
Point(const Point& p) : x(p.x), y(p.y) { // コピーコンストラクタ
// xとyをコピー
}
};
</syntaxhighlight>
この例では、<code>Point</code> クラスのコピーコンストラクタは、既存の <code>Point</code> オブジェクトの <code>x</code> と <code>y</code> の値を新しいオブジェクトにコピーします。
==== 代入演算子 ====
代入演算子は、既存のオブジェクトに別のオブジェクトの値を代入するための特別なメソッドです。代入演算子は次のように定義されます。
; 代入演算子の構文: <syntaxhighlight lang="cpp">
クラス名& operator=(const クラス名& obj);
</syntaxhighlight>
以下は、<code>Point</code> クラスの代入演算子の例です。
:<syntaxhighlight lang="cpp">
Point& Point::operator=(const Point& p) {
if (this != &p) { // 自己代入のチェック
x = p.x; // xをコピー
y = p.y; // yをコピー
}
return *this; // 自分自身を返す
}
</syntaxhighlight>
この例では、<code>Point</code> クラスの代入演算子は、自己代入をチェックした上で、既存のオブジェクトの <code>x</code> と <code>y</code> の値を引数の <code>Point</code> オブジェクトからコピーします。代入演算子は、オブジェクト自身を返すことで、連鎖代入(例:<code>a = b = c;</code>)を可能にします。
==== 注意点 ====
コピーコンストラクタや代入演算子をカスタマイズする際は、以下の点に注意する必要があります。
# '''自己代入のチェック''': 代入演算子において、自己代入をチェックすることで、不正なメモリアクセスを防ぎます。
# '''深いコピー''': オブジェクトが動的に割り当てられたメモリを持つ場合、コピーコンストラクタや代入演算子で深いコピーを行う必要があります。単純な代入では、元のオブジェクトとコピー先オブジェクトが同じメモリを指してしまうためです。
このように、C++におけるオブジェクトのコピーは、特にクラスがリソースを管理する際に重要な概念です。適切なコピーコンストラクタと代入演算子の実装は、プログラムの安全性と安定性を向上させることができます。
== クラスの詳細 ==
=== カプセル化 ===
'''カプセル化'''とは、オブジェクト指向プログラミングにおいて、クラスが内部データを外部から直接操作されることを防ぎ、代わりにメソッドを通じてデータを操作する設計手法です。これにより、データの整合性と安全性が保たれます。
カプセル化の目的は以下の通りです。
* '''統一的なインターフェースの提供''': オブジェクトに対する統一的なインターフェースを提供し、操作を体系化します。
* '''内部構造の隠蔽''': クラスの内部構造を隠すことで、内部の変更が(継承したクラスを含む)クラスを利用するコードに影響を与えないようにします。
* '''問題規模の縮小''': 設計手法的に分割統治法として捉えられ、問題を小さく管理しやすくします。
C++では、カプセル化のために以下のアクセス制御キーワードが提供されています。
* <code>private</code>: 同じクラス内のメソッドからのみアクセス可能です。ただし、フレンド関数、フレンドメンバー関数、フレンドクラスは例外としてアクセスできます<ref name=friend>フレンド関数やフレンドクラスを通じて、非公開メンバーにアクセスすることができます。</ref>。
* <code>public</code>: プログラムの他の部分からもアクセス可能です。
* <code>protected</code>: クラスを継承したサブクラスからアクセスできるが、プログラムの他の部分からはアクセスできません<ref name=friend/>.
==== カプセル化の例 ====
以下は、C++でカプセル化を示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y; // メンバー変数はprivate
public:
inline int X() const { return x; } // xを取得するメソッド
inline int X(int x) { return this->x = x; } // xを設定するメソッド
inline int Y() const { return y; } // yを取得するメソッド
inline int Y(int y) { return this->y = y; } // yを設定するメソッド
};
auto main() -> int {
Point pt;
// pt.x = 1234; // この行はコンパイルエラーになる。
pt.X(1234); // xに値を設定
cout << "ptのxの値は" << pt.X() << endl; // xの値を表示
}
</syntaxhighlight>
上の例では、<code>Point</code> クラスのメンバー変数 <code>x</code> と <code>y</code> が非公開であるため、オブジェクトの外からは直接アクセスできません。公開メソッド <code>X()</code> および <code>Y()</code> を通じてのみ、値を設定および取得することができます。
=== ポリモーフィズム ===
'''ポリモーフィズム'''(''polymorphism'';多態性・多相性とも訳される)は、同じ名前で異なる振る舞いを持つ複数のメソッドや関数を定義し、それを利用するオブジェクト指向の概念です。これにより、同一のインターフェースを通じて異なるデータ型を扱うことが可能になります。
ポリモーフィズムは、C++においては主に関数のオーバーローディングによって実現されます。関数オーバーローディングとは、同じ名前の関数を異なる引数の型や個数で定義することを指します。ただし、以下の条件を満たす必要があります。
* 引数の型や個数が異なる場合にのみ、関数をオーバーロードすることができます。
* 戻り値の型だけが異なる場合では、関数をオーバーロードすることはできません。
==== ポリモーフィズムの例 ====
以下は、C++でポリモーフィズムを示す例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
int add(int a, int b) { return a + b; } // 2つの引数を加算する関数
int add(int a, int b, int c) { return a + b + c; } // 3つの引数を加算する関数
int main() {
cout << "1 + 2 は " << add(1, 2) << endl; // 2つの引数を使用
cout << "1 + 2 + 3 は " << add(1, 2, 3) << endl; // 3つの引数を使用
}
</syntaxhighlight>
上の例では、2つの引数を加算する <code>add</code> 関数と、3つの引数を加算する <code>add</code> 関数が関数オーバーローディングによって定義されています。このように、同じ名前の関数を異なる引数で呼び出すことができるため、コードの可読性が向上します。
もしこれをC言語で行うとすれば、関数名を <code>add2</code> や <code>add3</code> のように異なる名前にしなければならず、そうしないとコンパイル時またはリンク時に関数定義の衝突が発生し、コンパイルやリンクが失敗することになります。
=== コンストラクタとデストラクタ ===
C++のクラスには、オブジェクトの初期化や終了処理を自動的に行うためのコンストラクタとデストラクタという仕組みがあります。
==== コンストラクタ ====
'''コンストラクタ'''(''constructor'')は、オブジェクトが生成される際に呼び出され、主に初期化処理を記述します。
クラスにコンストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
クラス名(仮引数のリスト) {
// 実行する処理
}
</syntaxhighlight>
コンストラクタの名前は、そのクラス名と同じです。コンストラクタは戻り値を返さないため、戻り値の型は指定しません。また、引数を指定することができ、関数オーバーロードも可能です。引数のないコンストラクタは、'''ディフォルトコンストラクタ'''と呼ばれます。
==== デストラクタ ====
'''デストラクタ'''(''destructor'')は、オブジェクトがスコープを抜ける時や、<code>delete</code> 演算子で解放される際に暗黙的に呼び出され、主に終了処理を記述します。
クラスにデストラクタを追加するには、クラス宣言に以下のように記述します。
:<syntaxhighlight lang="cpp">
~クラス名() {
// 実行する処理
}
</syntaxhighlight>
デストラクタの名前は、そのクラス名の前に<code>~</code>(チルダ)を付けます。デストラクタも戻り値を返さず、引数を指定することができません。また、デストラクタは関数オーバーロードできません。
==== 例 ====
以下は、コンストラクタとデストラクタを使用した例です。
:<syntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {
cout << "コンストラクタ呼び出し。" << endl;
}
~Point() {
cout << "デストラクタ呼び出し。" << endl;
}
inline int X() const { return x; }
inline int X(int x) { return this->x = x; }
inline int Y() const { return y; }
inline int Y(int y) { return this->y = y; }
};
auto main() -> int {
Point pt;
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
pt.X(1234);
pt.Y(5678);
cout << "ptのxの値は" << pt.X() << ", "
<< "ptのyの値は" << pt.Y() << endl;
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
コンストラクタ呼び出し。
ptのxの値は0, ptのyの値は0
ptのxの値は1234, ptのyの値は5678
デストラクタ呼び出し。
</syntaxhighlight>
=== フレンド関数 ===
'''フレンド関数'''(''friend function'')は、メンバー関数ではない通常の関数が、クラスの private または protected メンバーにアクセスするために使用されます<ref>フレンド関数はメンバー関数ではないため、<code>this</code> ポインタは存在しません。</ref>。
この特徴だけを述べると、フレンド関数はカプセル化を破壊するように見えるかもしれません(実際、そのような設計の失敗が見受けられます)。しかし、'''メンバー関数では実現できない呼び出し形式'''が適切な場合には、フレンド関数には価値があります。
具体的には、演算子オーバーロードが'''メンバー関数では実現できない呼び出し形式'''の一例です。ユーザー定義クラスをストリームに <code><<</code> で出力する場合、次のようにフレンド関数を使って定義します。
:<syntaxhighlight lang="cpp">
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) {}
friend ostream& operator<<(ostream& os, const Point& pt) {
return os << "(" << pt.x << "," << pt.y << ")";
}
};
</syntaxhighlight>
==== 演算子オーバーロードにおけるメンバー関数とフレンド関数の違い ====
* '''メンバー関数''': 演算の左辺がクラスのインスタンスである場合にのみ対応できます。
* '''フレンド関数''': 右辺のオブジェクトの隠されたメンバーにもアクセスできるため、右辺に対象のクラスを含む式にも対応できます。
C++11からは、キーワード <code>friend</code> を使った構文が拡張され、クラスを指定できるようになりました。<code>friend</code> 宣言されたクラスのメソッドおよび静的メンバー関数は、宣言したクラスのメンバーに自由にアクセスできます。
{{See also|More C++ Idioms/friend 関数の生成(Making New Friends)|w:en:Friend class}}
=== new 演算子と delete 演算子 ===
C言語では、標準ライブラリ関数の <code>malloc()</code> と <code>free()</code> などを使って動的にメモリーを確保しました。
;C言語の動的メモリー確保と解放:
<syntaxhighlight lang="c" highlight="6,15">
#include <stdio.h> // printf(), puts()
#include <stdlib.h> // malloc(), free()
int main(void) {
const int len = 10;
int *p = malloc(sizeof(*p) * len);
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
printf("%d ", p[i]);
puts("");
free(p);
}
</syntaxhighlight>
C++では、同様の機能を <code>new</code> 演算子と <code>delete</code> 演算子を使って実現します。
;C++における動的メモリー確保と解放:
<syntaxhighlight lang="cpp" highlight="6,15">
#include <iostream> // std::cout, std::endl
using std::cout, std::endl;
int main(void) {
const int len = 10;
int *p = new int[len];
for (int i = 0; i < len; i++)
p[i] = i * i;
for (int i = 0; i < len; i++)
cout << p[i] << " ";
cout << endl;
delete[] p;
}
</syntaxhighlight>
: いきなり配列版を例示していますが、<code>int* pp = new int; delete pp;</code> のように、配列以外でも <code>new</code>/<code>delete</code> で確保できます。
==== new / delete と コンストラクター ====
;C++における <code>new</code> / <code>delete</code> とコンストラクターの例:
<syntaxhighlight lang="cpp">
#include <iostream>
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
int main() {
Point* pp = new Point; // デフォルトコンストラクター(全パラメーターにデフォルト値を持つので)
pp->dump();
Point* p2 = new Point(12, 34); // アロケートしたメモリを this にしてコンストラクターを呼び出し
p2->dump();
delete p2; // ここで暗黙にデストラクターが呼ばれる
delete pp; // 同様
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang="text">
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 34 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
確保と逆順に呼ばれていることに深い意味はありません(アロケーターの都合を考えてみましょう)。
=== スマートポインタによるメモリー管理 ===
C++11以降、スマートポインタが導入され、<code>new</code>および<code>delete</code>の使用を避け、メモリー管理を自動化することが推奨されています。スマートポインタは、リソースを自動的に解放するため、メモリーリークや二重解放を防ぎます。
;<code>std::unique_ptr</code>の使用例:<syntaxhighlight lang="cpp">
#include <iostream>
#include <memory> // std::unique_ptr
using std::cout, std::endl;
class Point {
int x, y;
public:
Point(int x = 0, int y = 0) : x(x), y(y) { cout << "コンストラクタ呼び出し。" << endl; }
~Point() { cout << "デストラクタ呼び出し。" << endl; }
void dump() {
cout << "Point( x = " << x << ", y = " << y << " )" << endl;
}
};
auto main() -> int {
std::unique_ptr<Point> pp(new Point); // std::unique_ptrを使用してメモリを確保
pp->dump();
std::unique_ptr<Point> p2(new Point(12, 34)); // スマートポインタにより、明示的なdeleteは不要
p2->dump();
// p2がスコープを抜けると自動的にデストラクタが呼ばれる
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang="text">
コンストラクタ呼び出し。
Point( x = 0, y = 0 )
コンストラクタ呼び出し。
Point( x = 12, y = 34 )
デストラクタ呼び出し。
デストラクタ呼び出し。
</syntaxhighlight>
この例では、<code>std::unique_ptr</code>を使用することで、手動でメモリーを解放する必要がなくなり、メモリー管理が簡潔になります。スマートポインタは、スコープの終了時に自動的にリソースを解放します。
=== 初期化と代入 ===
初期化と代入は、どちらも等号を使って表現できるので混同しがちですが、両者は明確に異なるものです。
==== コピーコンストラクターとコピー代入演算子 ====
;初期化と代入の例:<syntaxhighlight lang=cpp>
T src; // ディフォルトコンストラクター T::T() を呼出し
T x = src; // C言語風の初期化:コピーコンストラクター T::T(const T&) を呼出し
T y(src); // 古いC++の初期化:コピーコンストラクター T::T(const T&) を呼出し
T z{src} // 単一初期化構文: コピーコンストラクター T::T(const T&) を呼出し
T q; // ディフォルトコンストラクター T::T() を呼出し
q = src ; // コピー代入演算子:T& T::operator = (const T&) を呼出し
</syntaxhighlight>
:Tは、何らかのクラスとします。
:;ディフォルトコンストラクター
::T::T()
::初期値を与えない時に使われるコンストラクター
:;コピーコンストラクター
::T::T(const T&)
::同じクラスのインスタンス(リテラルかも知れない)を初期値としたコンストラクター
:;コピー代入演算子
::T& T::operator = (const T&)
::同じクラスのインスタンスを代入した時に使われる
もしクラスで、ディフォルトコンストラクター・コピーコンストラクター・コピー代入演算子を定義しなかった場合は、C++コンパイラは、
;ディフォルトコンストラクター:なにもしない
;コピーコンストラクター:構築中のインスタンスのメンバーを、初期値インスタンスのメンバーで1対1で初期化
;コピー代入演算子:左辺(this側)のインスタンスのメンバーに、右辺(パラメータ側)のインスタンスのメンバーを1対1で代入
と自動的にコードを生成します。この動作は、メンバーがすべて静的な場合には好ましいものです。
;コンパイラの生成するコード(イメージ):<syntaxhighlight lang=cpp>
class T {
int a, b, c;
// コピーコンストラクター
T(const T& src) : a(src.a), b(src.b), c(src.c) {}
// コピー代入演算子
T& operator = (const T& src) {
a = src.a;
b = src.b;
c = src.c;
return *this;
}
};
</syntaxhighlight>
逆に言うと、いずれかのメンバーが動的な場合、具体的には new 演算子で確保された領域へのポインター(やリファレンス)が含まれていた場合、ポインター(あるいはリファレンス)の単純な複製が初期化先あるいは代入先に複製されると、2つのインスタンスが同じ領域を(不本意に)共有してしまうので好ましくありません。
この様な場合は、コンパイラのお仕着せではなく、カスタムメイドのコピーコンストラクターとコピー代入演算子を用意する事になります。
<!--
スタック(かキュー)でコピーコンストラクターとコピー代入演算子の具体例を示そうとしましたが、
new/delete 演算子やテンプレートの項目がまだないので、一旦保留します。
-->
=== 継承 ===
継承とは、オブジェクト指向プログラミングの考え方の一つで、あるクラスの性質を受け継いだ別のクラスを定義することです。継承によって、汎用的なクラスから特化したクラスを作成できます。
あるクラスが別のクラスを継承する場合、継承されるクラスを「基本クラス」(base class)と呼び、継承するクラスを「派生クラス」(derived class)と呼びます。
基本クラスでは共通の性質を定義し、派生クラスではその共通の性質を受け継いだ上で、個別の性質を定義します。クラスの継承は次のように行います。
<syntaxhighlight lang=c++>
class 派生クラス名 : アクセス指定子 基本クラス名 {
//...
};
</syntaxhighlight>
ここで、派生クラス名は派生クラスの名前を指定します。アクセス指定子では、<code>public</code>、<code>private</code>、<code>protected</code>のいずれかを指定します。基本クラス名で基本クラスの名前を指定します。
;[https://paiza.io/projects/Wm_3WwFjha3jPMUFFtn1kQ?language=cpp 継承の例]:<syntaxhighlight lang="cpp">
#include <iostream>
class Point {
int x, y;
public:
explicit Point(int _x = 0, int _y = 0) : x{_x}, y{_y} {
std::cout << "Point: コンストラクタ呼び出し。" << std::endl;
}
~Point() { std::cout << "Point: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto X() const -> int { return x; }
auto X(int _x) -> int { return this->x = _x; }
[[nodiscard]] auto Y() const -> int { return y; }
auto Y(int _y) -> int { return this->y = _y; }
};
class Square : public Point {
int wh;
public:
explicit Square(int _x = 0, int _y = 0, int _wh = 0)
: Point::Point(_x, _y), wh{_wh} {
std::cout << "Square: コンストラクタ呼び出し。" << std::endl;
}
~Square() { std::cout << "Square: デストラクタ呼び出し。" << std::endl; }
[[nodiscard]] auto get_wh() const -> int { return wh; }
auto set_wh(int _wh) -> int { return this->wh = _wh; }
};
auto main() -> int {
Square sq;
sq.X(1234);
sq.Y(5678);
sq.set_wh(9012);
std::cout << "sqのxの値は" << sq.X() << std::endl;
std::cout << "sqのyの値は" << sq.Y() << std::endl;
std::cout << "sqのwhの値は" << sq.get_wh() << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Point: コンストラクタ呼び出し。
Square: コンストラクタ呼び出し。
sqのxの値は1234
sqのyの値は5678
sqのwhの値は9012
Square: デストラクタ呼び出し。
Point: デストラクタ呼び出し。
</syntaxhighlight>
:クラス<code>Point</code>を継承して新たにクラス<code>Square</code>を定義している。
:クラス<code>Point</code>のメンバー変数<code>x</code>にアクセスするメソッド<code>X()</code>及びメソッド<code>X()</code>が、<code>Square</code>でも使用できる。
{{コラム|STLは継承を使っていない|2=STL(Standard Template Library)は、継承を使っていません。STLは、テンプレートメタプログラミングとポリシーベースの設計を中心に構築されています。これにより、柔軟性やパフォーマンスを高めながら、継承に伴うオーバーヘッドや複雑さを避けることができます。
STLのコンテナやアルゴリズムは、テンプレートを使用して実装されており、これによりジェネリックなプログラミングが可能になります。また、ポリシーベースの設計を採用することで、コンテナやアルゴリズムの振る舞いを柔軟にカスタマイズすることができます。
継承を使わないことにより、STLはシンプルで効率的な設計を実現し、様々なプログラミング環境や要件に対応できるようになっています。
}}
=== 仮想関数 ===
==== 純粋仮想関数 ====
;[https://paiza.io/projects/uXJwUEu8FaugpdugfIpELQ?language=cpp 純粋仮想関数の例]:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory> // std::unique_ptr
#include <string>
#include <tuple> // std::tuple
class Point {
int x, y;
public:
explicit Point(int x = 0, int y = 0) : x(x), y(y) {}
~Point() = default;
[[nodiscard]] auto to_string() const -> std::string {
return std::string("Point(x: " + std::to_string(x) +
",y: " + std::to_string(y) + ")");
}
};
class Shape {
protected:
Point pt; // Shape は Point を(継承ではなく)包含している
public:
explicit Shape(int x = 0, int y = 0) : pt(x, y) {}
virtual ~Shape() = default;
[[nodiscard]] virtual auto area() const -> int = 0; // 純粋仮想関数
[[nodiscard]] virtual auto to_string() const -> std::string {
return pt.to_string();
}
};
class Square : public Shape {
int wh;
public:
explicit Square(int x = 0, int y = 0, int wh = 0)
: Shape::Shape(x, y), wh(wh) {}
~Square() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Square(" + pt.to_string() +
", wh: " + std::to_string(wh) + ")");
}
[[nodiscard]] auto area() const -> int override { return wh * wh; }
};
class Rectangle : public Shape {
int w, h;
public:
explicit Rectangle(int x = 0, int y = 0, int w = 0, int h = 0)
: Shape::Shape(x, y), w(w), h(h) {}
~Rectangle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Rectangle(" + pt.to_string() +
", w: " + std::to_string(w) +
", h: " + std::to_string(h) + ")");
}
[[nodiscard]] auto area() const -> int override { return w * h; }
};
class Circle : public Shape {
int r;
public:
explicit Circle(int x = 0, int y = 0, int r = 0)
: Shape::Shape(x, y), r(r) {}
~Circle() override = default;
[[nodiscard]] auto to_string() const -> std::string override {
return std::string("Circle(" + pt.to_string() +
", r: " + std::to_string(r) + ")");
}
[[nodiscard]] auto area() const -> int override { return 3.14 * r * r; }
};
auto main() -> int {
auto shapes = std::tuple{std::make_unique<Square>(12, 34, 56),
std::make_unique<Rectangle>(34, 56, 100, 50),
std::make_unique<Circle>(56, 78, 80)};
std::apply(
[](auto&... args) {
((std::cout << args->to_string() << ": area() = " << args->area()
<< std::endl),
...);
},
shapes);
return 0;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Square(Point(x: 12,y: 34), wh: 56): area() = 3136
Rectangle(Point(x: 34,y: 56), w: 100, h: 50): area() = 10000
Circle(Point(x: 56,y: 78), r: 80): area() = 20096
</syntaxhighlight>
このコードは、基本的な図形(Square、Rectangle、Circle)を表すクラスと、それらの図形を操作するためのメソッドを提供しています。各図形は、座標を表すPointクラスを含んでおり、継承ではなく包含関係を持っています。また、Shapeクラスは純粋仮想関数を持ち、派生クラスでそれぞれの図形の面積を計算するメソッドを実装することを強制します。
<code>main()</code>関数では、各図形のインスタンスを<code>std::tuple</code>に格納し、<code>std::apply</code>を使用して各図形の<code>to_string()</code>メソッドと<code>area()</code>メソッドを呼び出しています。これにより、コードをよりシンプルにして、柔軟性を高め、冗長性を排除しています。
== クラス・構造体・共用体の比較 ==
{{Main|C++/構造体・共用体}}
=== クラスと構造体の比較 ===
クラスと構造体の違いは、クラスと構造体がデフォルトでメンバーのアクセス指定子が異なる点にあります。クラスでは、デフォルトでメンバーのアクセス指定子が<code>private</code>となり、外部からのアクセスが制限されます。一方、構造体では、デフォルトでメンバーのアクセス指定子が<code>public</code>となり、外部からのアクセスが可能となります。
この違いは、クラスと構造体が異なる用途で使用されることが多い理由の1つです。クラスは、オブジェクト指向プログラミングの概念に基づいて、データとそのデータを操作する関数を組み合わせてまとめるために使用されます。そのため、データの隠蔽(カプセル化)が重要となり、デフォルトで<code>private</code>となるのが一般的です。一方、構造体は、関連するデータをグループ化するために使用され、外部からのアクセスが容易であることが求められる場合に利用されます。
=== クラスと共用体の比較 ===
一方、共用体にはいくつかの制限があります。
* 継承したりされたりできない。
* メンバーにstaticを指定できない。
* コンストラクタ・デストラクタがあるオブジェクトをメンバーにできない。
* コンストラクタ・デストラクタは持てる。
* 仮想メンバー関数を持つことはできない。
{{Nav}}
== 脚註 ==
<references/>
[[Category:C++|くらすのていきやけいしよう]]
fi0kcj1di9k9bqq9biuqx9wezhnikw6
C++/初心者むけ/クラス
0
23174
263120
249741
2024-11-05T06:01:53Z
Ef3
694
/* クラスとインスタンス */ Fix typo
263120
wikitext
text/x-wiki
{{Nav}}
== クラスとインスタンス ==
クラス( ''Classes'' )は、オブジェクト指向ブログラミング言語の分類の一つ「[[オブジェクト指向プログラミング#クラスベースのオブジェクト指向|クラスベースのオブジェクト指向ブログラミング言語]]」の主要な概念の1つです<ref>クラスベースのオブジェクト指向ブログラミング言語の他に、[[オブジェクト指向プログラミング#プロトタイプベースのオブジェクト指向|プロトタイプベースのオブジェクト指向ブログラミング言語]]があり [[Self]], [[JavaScript]], [[Lua]] が代表的です。</ref>。
C++もクラスベースのオブジェクト指向ブログラミング言語の1つです。
クラスは、データやデータへの参照変更を含む操作をまとめる手段です。
新しいクラスを定義することは、新しい型を定義することを意味し、その型を使って、インスタンスを作成することができるようになります。
各クラスのインスタンスには、その状態を維持するためのデータ メンバーを持つことができます。
また、クラスには、そのクラスに属するインスタンスの(あるいはクラスそのものの)状態を参照および変更するためのメンバー関数を持つことができます。
{{See also|オブジェクト指向プログラミング#オブジェクトとクラス}}
{{コラム|インスタンスって何?|width=100%|2=
クラスは型です。型であるクラスを実体化したものがインスタンスです。
:<syntaxhighlight lang=c++>
#include <string>
int main() {
std::string s{"abc"};
int i{0};
}
</syntaxhighlight>
: <var>s</var> は <code>string</code> クラスのインスタンスです。
: <var>i</var> は <code>int</code> <u>クラス</u>の<u>インスタンス</u>'''ではなく'''
:: <var>i</var> は <code>int</code> <u>型</u>の<u>値</u>です。
:インスタンスは値の一種です。多くの場合、インスタンスや値は初期化や代入で変数に束縛されているので
:インスタンス=変数と'''誤解'''しがちですが、インスタンスは変数に束縛された値の方です。
:このことは、ポインターと配列や参照を学ぶときに重要になります。
小まとめ
* クラス ⊂ 型
* インスタンス ⊂ 値
}}
=== クラス定義 ===
;[https://paiza.io/projects/uzhYPU-5iL0hg4H5Ov6awQ?language=cpp クラス定義]:<syntaxhighlight lang=c++ line>
#include <iostream>
#include <string>
class Car {
public:
std::string owner;
std::string colour;
int number;
};
auto main() -> int {
auto a = Car();
a.owner = "山田";
a.colour = "blue";
a.number = 1234;
std::cout << "a.owner = " << a.owner << ", a.colour = " << a.colour
<< ", a.number = " << a.number << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
a.owner = 山田, a.colour = blue, a.number = 1234
</syntaxhighlight>
: クルマを抽象化したクラス Class を定義しています。
:;owner:所有者
:;colour:色
:;numbr:ナンバー
:を保持します。
: public: としているので、Carのメンバーは自由に参照できます。
:: この状態は丁度 struct と同じです。
=== コンストラクター ===
コンストラクターは、クラスをインスタンス化するための特別な[[#メンバー関数|メンバー関数]]で、クラス名が関数名になります。
;[https://paiza.io/projects/T5xDjlFWPSYY4Y53RlQwiw?language=cpp コンストラクター]:<syntaxhighlight lang=c++ line highlight="10-11,15-16">
#include <iostream>
#include <string>
class Car {
public:
std::string owner;
std::string colour;
int number;
Car(const char *owner, const char *colour, int number)
: owner{owner}, colour{colour}, number{number} {}
};
auto main() -> int {
Car a = Car("山田", "blue", 1234);
auto b = Car{"伊藤", "red", 3355};
std::cout << "a.owner = " << a.owner << ", a.colour = " << a.colour
<< ", a.number = " << a.number << std::endl;
std::cout << "b.owner = " << b.owner << ", b.colour = " << b.colour
<< ", a.number = " << b.number << std::endl;
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
a.owner = 山田, a.colour = blue, a.number = 1234
b.owner = 伊藤, b.colour = red, a.number = 3355
</syntaxhighlight>
:16行目は、C++-03で導入された一様初期化 ( ''uniform initialization'' )で、Cの構造体の構文でコンストラクターを呼出せる仕組みです。
:Cならば、<code>(struct Car){"伊藤", "red", 3355}</code> と書くところですが
:C++ではクラスは型なので、<code>Car{"伊藤", "red", 3355}</code>となります。
=== クラスの配列でのコンストラクターの使用 ===
;[https://paiza.io/projects/ev5p4PHcMkS-ARqB60GfQg?language=cpp クラスの配列でのコンストラクターの使用]:<syntaxhighlight lang=c++ line highlight="10,14,15">
#include <iostream>
#include <string>
class Car {
public:
std::string owner;
std::string colour;
int number;
Car(const char *owner, const char *colour, int number)
: owner{owner}, colour{colour}, number{number} {}
};
auto main() -> int {
Car ary[] = {
{"山田", "blue", 1234},
{"伊藤", "red", 3355},
{"佐藤", "yellow", 845},
};
for (const auto &el : ary) {
std::cout << "owner = " << el.owner << ", colour = " << el.colour
<< ", number = " << el.number << std::endl;
}
}</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
owner = 山田, colour = blue, number = 1234
owner = 伊藤, colour = red, number = 3355
owner = 佐藤, colour = yellow, number = 845
</syntaxhighlight>
=== メンバー関数 ===
クラスにはインスタンスの持つメンバーとして関数も持つことができます。この関数のメンバーのことをメンバー関数と言います。
メンバー関数を定義するには、関数を定義したようにクラス定義中に定義します。する方法とクラス定義中ではメンバー関数の宣言だけ行い、クラス定義の外で実装する方法があります。
;[https://paiza.io/projects/jFctqUkkyFwtLtgmtsJYZg?language=cpp メンバー関数の定義と実行]:<syntaxhighlight lang=c++ highlight="9,11-15,21,22">
#include <iostream>
#include <string>
class Car {
std::string owner;
std::string colour;
int number;
public:
Car(const char* owner, const char* colour, int number) : owner{owner}, colour{colour}, number(number) {}
auto show() const -> void{
std::cout << "owner = " << owner
<< ", colour = " << colour
<< ", number = " << number << std::endl;
}
};
auto main() -> int {
auto a = Car{"山田", "blue", 1234};
auto b = Car{"伊藤", "red", 3355};
a.show();
b.show();
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
owner = 山田, colour = blue, number = 1234
owner = 伊藤, colour = red, number = 3355
</syntaxhighlight>
: public: の位置をコンストラクターの前に持ってきたので、データメンバーには、メンバー関数からしかアクセスできなくなしました。
:: メンバーへのアクセスを制限する目的は、内部の実装を詳らかにすると、それをクラスのユーザー(=プログラマー)が参照してしまい、結果的にクラスの実装を変更したときに、ユーザーが影響を被ってしまうことを避けることなどは目的です。このに内部構造へのアクセス制限を設けることを「カプセル化(内部構造の隠蔽)」と言います。
:::21世紀になってからの新興言語は、メンバーごとに private/protected/public (アクセス指定子といいます)を個別に指定する言語が多く、クラス中のメンバーのレイアウトを自由に変更しても無害ですが、C++は private/protected/public は「それ以降のメンバーに有効」なので、新興言語の感覚でカジュアルにクラスメンバーのレイアウトを変えると、アクセス指定子が意図せず変わってしまい混乱します。
:新しく定義したメンバー関数 show() は public なのでクラス外からもクラスのインスタンスを通して、 a.show() の様にドット記法で呼び出せます。
=== アクセサー ===
カプセル化の結果、クラスのデータメンバーへのアクセスが制限されましたが、様々な事情でデータメンバーを参照あるいは変更する必要が出てきます。
このような時のために、セッター・ゲッターあるいはアクセサーと呼ばれるメンバー関数セットを用意しておくことが多く行われます。
;アクセサー:<syntaxhighlight lang=c++ highlight="16−21,29-31">
#include <iostream>
#include <string>
class Car {
std::string owner;
std::string colour;
int number;
public:
Car(const char* owner, const char* colour, int number) : owner{owner}, colour{colour}, number{number} {}
auto show() const -> void{
std::cout << "owner = " << owner
<< ", colour = " << colour
<< ", number = " << number << std::endl;
}
std::string Owner() const { return owner; }
std::string Owner(std::string newOwner) { return owner = newOwner; }
std::string Colour() const { return colour; }
std::string Colour(const char* newColour) { return colour = newColour; }
int Number() const { return number; }
int Number(int newNumber) { return number = newNumber; }
};
auto main() -> int {
auto a = Car{"山田", "blue", 1234};
std::cout << "a.owner = " << a.Owner()
<< ", a.colour = " << a.Colour()
<< ", a.number = " << a.Number() << std::endl;
a.Owner("鈴木");
a.Colour("pink");
a.Number(4423);
std::cout << "a.owner = " << a.Owner()
<< ", a.colour = " << a.Colour()
<< ", a.number = " << a.Number() << std::endl;
a.show();
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
a.owner = 山田, a.colour = blue, a.number = 1234
a.owner = 鈴木, a.colour = pink, a.number = 4423
owner = 鈴木, colour = pink, number = 4423
</syntaxhighlight>
:クルマ a の所有者は山田さんから鈴木さんに、色はブルーからピンクに、ナンバーも1234から4423に変わりました。
:このようにデータメンバーの名前の先頭を大文字にしたメンバー関数を定義して、パラメーターがなかったらはGetter、あったらSerrerにする流儀はよく見られますが、必ずしもその必要はありません。
=== 仮想的なアクセサー ===
アクセサーが返す値・設定する値が必ずしもデータメンバーと対応している必要はありません。
;[https://paiza.io/projects/CfNp04q0H_qQ8TuTvPlogg?language=cpp 仮想的なアクセサー]:<syntaxhighlight lang=c++ line>
#include <cmath>
#include <iostream>
#include <string>
const double PI = acos(-1);
class Point {
double x, y;
public:
Point(double x, double y) : x{x}, y{y} {}
auto show() const -> void {
std::cout << "(" << x << ", " << y << ")" << std::endl;
}
double length() const { return hypot(x, y); }
double length(double len) {
auto t = angle();
x = len * sin(t);
y = len * cos(t);
return len;
}
double angle() const { return atan2(x, y); }
double angle(double t) {
auto len = length();
x = len * sin(t);
y = len * cos(t);
return t;
}
};
auto main() -> int {
auto pt = Point{3.0, 4.0};
pt.show();
std::cout << pt.length() << std::endl;
pt.length(10.0);
std::cout << pt.length() << std::endl;
pt.show();
std::cout << pt.angle() << std::endl;
pt.angle(PI / 4);
std::cout << pt.angle() << std::endl;
pt.show();
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
(3, 4)
5
10
(6, 8)
0.643501
0.785398
(7.07107, 7.07107)
</syntaxhighlight>
:内部表現は、x,y のペアの直交座標ですが、アクセサーは長さと角度の極座標になっています。
:このように、アクセサーは内部表現と外部表現のインターフェースを担うことが目的といえます。
{{コラム|Accessors and Mutators|
日本語圏では、データメンバーを参照するためのメンバー関数を'''ゲッター'''、データメンバーを変更するためのメンバー関数を'''セッター'''と呼び総称して'''アクセサー'''と呼びます。
これに対し、英語圏ではデータメンバーを参照するためのメンバー関数を'''Accessors'''、データメンバーの値を変更するためのメンバー関数を'''Mutators'''と呼びます。
特に、'''アクセサー'''と'''Accessors'''を混同する可能性があるので、意思の疎通に齟齬が生じないよう気をつけましょう。
{{See also|w:en:Mutator method}}
}}
[TODO:コピーコンストラクター・代入演算子のオーバーロード]
== オブジェクトと名前空間 ==
C++では、{{code|cout}}や{{code|cin}}などのオブジェクトも、名前空間で分類されています。
たとえばオブジェクト{{code|cout}}は、正式には{{code|std::cout}}というオブジェクトです。つまり、coutはstd名前空間に所属しています。
『[[C++/はじめに]]』では説明を省略していました。
<code>using namespace std;</code>
とは、「名前空間が省略された場合、グローバル名前空間に識別子がなかったら std 名前空間の中から識別子を探す」という意味の宣言だったのです。
{{code|std}}とは、標準ライブラリ(standard library)を意味する略語です。
{{code|cin}}も同様に、{{code|std::cin}}というオブジェクトです。つまり、cinはstd名前空間に所属しています。
スコープ演算子{{code|::}}をつかうことから分かるように、std名前空間に含まれるオブジェクトとして、{{code|cout}}や{{code|cin}}を扱っています。
書式は、
名前空間名::識別子
です。
プログラミング言語に用意されている 標準ライブラリのオブジェクトは、膨大にあるので、名前空間によって分類する必要があり、使用時には本来、その名前空間名をつける必要があるのです。
なぜなら、そうしないと、もし、自分で新しく関数を定義しようと思ったときに、名前につけようと思ってた識別子が、すでに標準ライブラリで使われている可能性があるからです。
このような工夫を、(使いたい名前が既に他の用途で使われてしまっているような事態をふせぐための工夫を)「名前の衝突をふせぐ」などと、言います。
{{コラム|using namespace std; の問題点|2=
多くのプログラムで
:<syntaxhighlight lang=c++>
using namespace std;
</syntaxhighlight>
のように、名前空間丸ごとスコープ限定演算子なしにアクセスできるようにするコードを見受けます。
これでは、std::には数多の識別子が定義されているので、無自覚に名前の衝突を招いてしまう可能性があります。
これを回避するためには、
:<syntaxhighlight lang=c++>
using std::cout, std::endl;
</syntaxhighlight>
:のように識別子を限定して using 宣言するよう心がけましょう。
:: この例では、 cout と endl の2つの識別子だけがスコープ演算子なしに参照出来るようになります。
: また using 宣言にもスコープがあり、関数スコープにすることも検討の価値があります。
}}
=== 名前空間の定義 ===
名前空間は、ユーザープログラムからも定義できます。
;名前空間の定義:<syntaxhighlight lang=c++>
namespace NS1 {
int i = 3;
int f() { return 42; }
}
int x = NS1::i; // ⇒ 3
int y = NS1::f(); // ⇒ 42
</syntaxhighlight>
名前空間は、入れ子に出来ます。
;入れ子名前空間の定義:<syntaxhighlight lang=c++>
namespace NS1 {
namespace NS2 {
int j = 9;
int g() { return 108; }
}
}
int u = NS1::NS2::j; // ⇒ 9
int v = NS1::NS2::g(); // ⇒ 108
</syntaxhighlight>
C++14 から、入れ子名前空間の簡略表記が使えるようになりました。
;入れ子名前空間の簡略表記による定義:<syntaxhighlight lang=c++>
namespace NS1::NS2 {
int j = 9;
int g() { return 108; }
}
int u = NS1::NS2::j; // ⇒ 9
int v = NS1::NS2::g(); // ⇒ 108
</syntaxhighlight>
== 継承 ==
既存のクラスをベースに新しいクラスを作成することをクラス継承( class inheritance )といいます。
;[https://paiza.io/projects/DR_SgGamin_036cNXkQYOg?language=cpp プライベート継承]:<syntaxhighlight lang=c++ line highlight=11>
#include <iostream>
using namespace std;
class MyBaseClass {
public: const char * name() {
return "MyBaseClass";
}
};
class MySubClass: MyBaseClass {
public: int ten() {
cout << "ten::" << this->name() << endl; // これはエラーにならない
return 10;
}
};
int main(void) {
auto base = new MyBaseClass();
auto sub = new MySubClass();
cout << base -> name() << endl;
// cout << sub->name() << endl; Main.cpp:22:16: error: 'name' is a private member of 'MyBaseClass'
cout << sub -> ten() << endl;
// cout << base->ten() << endl; Main.cpp:24:17: error: no member named 'ten' in 'MyBaseClass'
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
MyBaseClass
ten::MyBaseClass
10
</syntaxhighlight>
: この例では、派生クラスの定義でアクセス修飾子をしていしていないので、デフォルトの private が仮定され <syntaxhighlight lang=c++ inline>class MySubClass: private MyBaseClass</syntaxhighlight>と同義で「プライベート継承」と呼びます。
: プライベート継承でも、基底クラスのメンバーが public であれば、派生クラスメソッドから基底クラスのpublicメンバーにアクセスできません。
: プライベート継承では、基底クラスのメンバーが public でも、派生クラスのインスタンス経由では、publicメンバーにアクセスできません。
: また、基底クラスのインスタンスは、派生クラスメンバーを持たないのは当然ですが、念の為の例です。
;構文:<syntaxhighlight lang=c++>
class 派生クラス : アクセス修飾子 基底クラス {};
</syntaxhighlight>
;[https://paiza.io/projects/RAaNBoQNBGWcPRW6buJ6mg?language=cpp パブリック継承]:<syntaxhighlight lang=c++ line highlight=11>
#include <iostream>
using namespace std;
class MyBaseClass {
public: const char * name() {
return "MyBaseClass";
}
};
class MySubClass: public MyBaseClass {
public: int ten() {
cout << "ten::" << this->name() << endl;
return 10;
}
};
int main(void) {
auto base = new MyBaseClass();
auto sub = new MySubClass();
cout << base -> name() << endl;
cout << sub->name() << endl; // Ok
cout << sub -> ten() << endl;
// cout << base->ten() << endl; Main.cpp:24:17: error: no member named 'ten' in 'MyBaseClass'
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
MyBaseClass
MyBaseClass
ten::MyBaseClass
10
</syntaxhighlight>
: 先程の例との違いは、<syntaxhighlight lang=c++ inline>class MySubClass: public MyBaseClass</syntaxhighlight> です。
: この影響で、main() からも <syntaxhighlight lang=c++ inline>sub->name()</syntaxhighlight> にアクセス可能になりました。
組合せ的にプロテクテッド継承もありますが、派生クラスの定義での基底クラスのアクセス修飾子は「派生クラスのインスタンス経由でアクセスできるか?」の違いなのでプライベート継承との違いはありません<!--求む反例-->。
また、継承先の派生クラスで望ましくないアクセスやオーバーライドが行われないことを「期待」するのではなく、final でクラスかメンバーを保護する「防衛的」な実装が望まれます。
=== 多重継承 ===
C++の継承では、複数のクラスを基底クラスとし派生クラスは作成することが可能です。
:<syntaxhighlight lang=c++>
class D : public B, public class E {
};
</syntaxhighlight>
:クラスBとクラスEが、基底クラスです。クラスDは、派生クラスです。
複数のクラスからの継承を'''多重継承'''といいます。
多重継承は、多重継承でないと実現できない命題が想定しにくい上に、2つの継承元に同じ名前のメンバーがあった場合(衝突があった場合)の解消法方法に一般則がないこと、さらに継承元の2つのクラスが共通するクラスから派生していた場合の問題(ダイヤモンド継承問題)など、多くの問題が多重継承にはあるので、「多重継承が設計上の最適な選択か?」を自問してから使うようにしましょう。
{{See also|w:菱形継承問題}}
== 実装例 ==
C++に、「[[Go/メソッドとインターフェース]]」の「都市間の大圏距離を求めるメソッドを追加した例」を移植してみました。
; [https://paiza.io/projects/jya-Q9ldO8XoBQHnOibF5w?language=cpp 実装例]
: <syntaxhighlight lang=c++>
#include <cmath>
#include <iostream>
#include <string>
class GeoCoord {
double longitude, latitude;
public:
GeoCoord(double lng, double lat) : longitude(lng), latitude(lat) {}
std::string toString() {
const auto *ew = "東経";
const auto *ns = "北緯";
auto lng = this->longitude; // long はCでは予約語なので lng に
auto lat = this->latitude;
if (lng < 0.0) {
ew = "西経";
lng = -lng;
}
if (lat < 0.0) {
ns = "南緯";
lat = -lat;
}
return std::string("(") + ew + ": " + std::to_string(lng) + ", " + ns + ": " + std::to_string(lat) + ")";
}
double distance(GeoCoord &other) {
// C言語では円周率の値は標準では定義されていません。
const auto i = 3.1415926536 / 180;
const auto R = 6371.008;
return std::acos(
std::sin(this->latitude * i) * std::sin(other.latitude * i) +
std::cos(this->latitude * i) * std::cos(other.latitude * i) *
std::cos(this->longitude * i - other.longitude * i)) * R;
}
};
int main(void) {
struct {
const char *name;
GeoCoord gc;
} sites[] = {
{"東京駅", GeoCoord(139.7673068, 35.6809591)},
{"シドニー・オペラハウス", GeoCoord(151.215278, -33.856778)},
{"グリニッジ天文台", GeoCoord(-0.0014, 51.4778)},
};
for (auto x : sites) {
std::cout << x.name << ": " << x.gc.toString() << std::endl;
}
for (int i = 0, len = sizeof sites / sizeof *sites; i < len; i++) {
const auto j = (i + 1) % len;
std::cout << sites[i].name << " - " << sites[j].name << ": "
<< sites[i].gc.distance(sites[j].gc) << std::endl;
}
}</syntaxhighlight>
; 実行結果
: <syntaxhighlight lang=text>
東京駅: (東経: 139.767307, 北緯: 35.680959)
シドニー・オペラハウス: (東経: 151.215278, 南緯: 33.856778)
グリニッジ天文台: (西経: 0.001400, 北緯: 51.477800)
東京駅 - シドニー・オペラハウス: 7823.27
シドニー・オペラハウス - グリニッジ天文台: 16987.3
グリニッジ天文台 - 東京駅: 9560.55
</syntaxhighlight>
{{Nav}}
41zcbrzkutttvv0lvj9khjsca7t3gns
利用者・トーク:ダーフレ/Darfre
3
25136
263038
262727
2024-11-04T20:51:02Z
MediaWiki message delivery
14540
/* 技術ニュース: 2024-45 */ 新しい節
263038
wikitext
text/x-wiki
{{枠
|color=#bb2222
|2=[[Image:Replacement filing cabinet.svg|40px|Archive]]'''[[w:ja:Help:過去ログ|過去ログ]]'''
|1=
* [{{fullurl:{{NAMESPACE}}:{{BASEPAGENAME}}|oldid=160523}} 2020(令和2)年6月頃までの版] 2019
}}
{{Clear}}
= Tech News =
{{Notice|このページは会話ページから自分宛ての
Tech News を受け取り保存する場所です。新しい会話は節を新たに設ける必要があります。|お知らせ}}
== [[m:Special:MyLanguage/Tech/News/2020/02|Tech News: 2020-02]] ==
<section begin="technews-2020-W02"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/02|翻訳]]されています。
'''今週の更新'''
* ページを移動しようとするときに移動先のページ名が既に存在する場合、警告が表示されます。今後は警告にその既存のページへのリンクが含まれます。 [https://phabricator.wikimedia.org/T184357]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-01-07|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-01-08|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-01-09|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W02"/> 2020年1月6日 (月) 21:23 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19686133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/03|Tech News: 2020-03]] ==
<section begin="technews-2020-W03"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/03|翻訳]]されています。
'''最近の更新'''
* もしご使用のウェブブラウザが非常に古い[[:w:ja:Transport Layer Security|TLS]]を採用している場合、ウィキメディアのウィキ群を閲覧できなくなります。すべての利用者のセキュリティを守るための措置です。[[:w:en:Downgrade attack|ダウングレード攻撃]]を引き起こす可能性があります。2019年12月9日以降、該当する利用者にはページの代わりに警告のみ表示されるようになりました。間もなく、該当するブラウザからはウィキ群への接続もできなくなる見通しです。バージョン 4.4 以前のアンドロイド版利用者が影響を受けるとみられます。推奨されるブラウザについては[[:wikitech:HTTPS/Browser Recommendations|こちら]]をご参照ください。 [https://phabricator.wikimedia.org/T238038]
* [[Special:LinkSearch|特別ページ:外部リンクの検索]]の場所を[[Special:SpecialPages|特別ページ:特別ページ]] 配下の「{{int:specialpages-group-redirects}}」節から「{{int:specialpages-group-pages}}」節へ移動させました。 [https://phabricator.wikimedia.org/T242146]
'''今週の更新'''
*[[File:Octicons-tools.svg|15px|link=|高度]] ウィキでは特定の利用者にのみ編集を認めるため、ページを保護することができます。標準の保護レベルは {{int:protect-level-autoconfirmed}} および {{int:Protect-level-sysop}} に設定されています。ご利用のウィキでその他の保護レベルを適用している場合、標準化を目指した技術上のレベル名の改名が行われる可能性があります。利用者に対する表示に影響はありません。 [https://phabricator.wikimedia.org/T230103]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-01-14|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-01-15|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-01-16|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[:wikitech:Nova Resource:Catgraph/Deepcat|Deepcat]] と [[:wikitech:Nova Resource:Catgraph|Catgraph]] の運用を停止します。実施時期は1月末の予定です。現在では標準の検索機能が利用できるため、この処置が行われます。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-January/092936.html]
* 互いに前後に配置された脚注を統合するには、<code><nowiki><ref follow="…"></nowiki></code> が使用できます。本来、ウィキソースに掲載した電子ブック用に使用されていたコードです。もし脚注の順序が間違っていると、現状ではエラーとしては表示せず、脚注一覧タグ<nowiki><references /></nowiki> の周辺に不用な <nowiki><ref></nowiki> タグが表示されています。これは修正の予定で、エラーメッセージを表示するようになります。 [https://phabricator.wikimedia.org/T240858]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W03"/> [[利用者:MediaWiki message delivery|MediaWiki message delivery]] ([[利用者・トーク:MediaWiki message delivery|トーク]]) 2020年1月13日 (月) 18:41 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19686133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/04|Tech News: 2020-04]] ==
<section begin="technews-2020-W04"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2020/04|Translations]] are available.
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-01-21|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-01-22|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-01-23|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* アカウントを登録せずに編集した時に表示されるメッセージについて[[:m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|新たな提案]]があります。目標は匿名利用者のプライバシーを改善しつつ、不正行為対策の効率をあげることです。皆さんのご意見は[[:m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|こちら]]で受け付けます。
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキで作業を自動化する [[:mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]] という Python [[:w:ja:ライブラリ|ライブラリ]]についてお知らせです。[[:w:ja:Python|Python 2]]のサポートは終了しました。今後も Python 2 のスクリプトを走らせる必要がある人は、<code>python2</code> タグを使ってください。Pywikibot 担当チームでは Python 3 への移行を強く推奨します。[[:phab:T242120|補助の依頼]]も受け付けています。 [https://lists.wikimedia.org/pipermail/pywikibot/2020-January/009976.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] 毎週定例のMediaWiki 分岐切断は近々、自動化の予定です。また時間帯の変更を伴うかもしれません。影響が予測される場合は[[phab:T242446|Phabricator で]]ご相談ください。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-January/092939.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術系ならびにインターン生の指導について、今後のイベント情報を[[mw:Special:MyLanguage/Technical Community Newsletter/2020/January|購読]]できます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W04"/> 2020年1月20日 (月) 19:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19732098 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/05|Tech News: 2020-05]] ==
<section begin="technews-2020-W05"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/05|翻訳]]されています。
'''問題点'''
* モバイル版の差分表示に障害が出ています。複数のボタンが正しく表示されません。コモンズでは構造化データの差分が分かりにくい状態です。開発者が修正に取り組んでいます。 [https://phabricator.wikimedia.org/T242310][https://phabricator.wikimedia.org/T243235]
* [[mw:Special:MyLanguage/Structured Discussions|構造化した議論]](訳注:スレッド表示の導入)を採用したウィキの管理者は、議論のページを改名することができません。これはバグによるものです。開発者が修正を試みています。 [https://phabricator.wikimedia.org/T231783]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* Special:Undelete には管理者用の JavaScript コードがあります。「Shift」キーを推しながらクリックすることで、複数のチェックボックスを選択できるようにするものです。このコードが誤って他の特別ページと記事にも読み込まれていました。ページ処理の遅延の原因になります。他の特別ページで現在もこのコードが有効になっているものを見つけた場合は、[[phab:T232688]] で開発者にお知らせください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W05"/> 2020年1月27日 (月) 18:53 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19751689 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/06|Tech News: 2020-06]] ==
<section begin="technews-2020-W06"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/06|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-02-04|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-02-05|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-02-06|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W06"/> 2020年2月3日 (月) 20:05 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19771613 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/07|Tech News: 2020-07]] ==
<section begin="technews-2020-W07"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/07|翻訳]]されています。
'''最近の更新'''
* Android 端末向けの[[:commons:Special:MyLanguage/Commons:Mobile app|Wikimedia Commons app]] を更新しました。アップロードができない不具合を解決しました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-February/093042.html]
'''問題点'''
* 先週稼働したバージョンの MediaWiki に不具合が見つかりました。不具合により、複数のメッセージを誤って削除しています。不具合修正のために一旦展開を中止したため、新しいバージョンの展開は遅れました。 [https://phabricator.wikimedia.org/T233866]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/API:Main page|MediaWiki操作API]] はボットやガジェットなど、さまざまなツールに使用されています。このたび、一部のエラーコードを変更します。標準に準拠していない一部のパラメータは動作しなくなります。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-February/093048.html]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-02-11|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-02-12|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-02-13|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]'''''
</div></div> <section end="technews-2020-W07"/> 2020年2月10日 (月) 19:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19795497 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/08|Tech News: 2020-08]] ==
<section begin="technews-2020-W08"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/08|翻訳]]されています。
'''最近の更新'''
* ウィキデータとコモンズのページ読み込み速度が向上しました。詳細は[[mw:Special:MyLanguage/Wikimedia Performance Team/Page load performance|ページ読み込みパフォーマンス]]でご覧いただけます。 [https://lists.wikimedia.org/pipermail/wikidata/2020-February/013827.html][https://www.mediawiki.org/wiki/ResourceLoader/Developing_with_ResourceLoader]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-02-18|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-02-19|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-02-20|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W08"/> 2020年2月17日 (月) 16:18 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19816101 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/09|Tech News: 2020-09]] ==
<section begin="technews-2020-W09"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/09|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-02-25|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-02-26|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-02-27|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* トークページでは必要に応じて、それぞれの投稿の後に[[mw:Special:MyLanguage/Talk pages project/replying|返信ボタン]]を付けることができるようになります。アラビア語版、フランス語版、オランダ語版、ハンガリー語版ウィキペディアまもなくベータ機能として実装されます。使ってみたい場合は有効化が必要です。この機能は今後、ほかのウィキにも導入する予定です。[https://en.wikipedia.beta.wmflabs.org/wiki/Talk:Cats 返信ボタンの機能をテストすることができます]。なお、前述の4件のウィキペディアで先週、ベータ版の運用開始予定日時よりも前に、誤ってボタンが表示されたことがありました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W09"/> 2020年2月24日 (月) 21:00 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19816101 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/10|Tech News: 2020-10]] ==
<section begin="technews-2020-W10"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/10|翻訳]]されています。
'''問題点'''
* ログインしていない閲読者に対して、短い間ですがブラウザ設定の言語でUIを表示していました。通常はウィキの言語が使われます。先週、この現象が発生したのは短期間で、原因はバグでした。 [https://phabricator.wikimedia.org/T246071]
'''今週の更新'''
* パスワードを忘れた場合に新しいパスワードをメールで送信してもらうには、アカウントに登録した自分のメールアドレスか利用者名のどちらかを入力する必要があります。個人設定で、その両方を入力するよう選べるオプションができました。これは他人によるパスワード変更のメール申請を減らすための措置です。 [https://meta.wikimedia.org/wiki/Community_Tech/Password_Reset_Update]
* これまで[[Special:PasswordReset|特別:パスワードの再設定]]を開きパスワードの変更手続きをすると、利用者名が登録されていない場合はその場でわかる仕組みでした。現在はセキュリティ向上のため、入力された利用者名は表示するものの、登録されているかどうかシステムから届くメールを確認するように変更されています。 [https://meta.wikimedia.org/wiki/Community_Tech/Password_Reset_Update]
* [[Special:WhatLinksHere|特別:リンク元]]では、ご覧のページへリンクしている他のページを確認できます。リンクがリダイレクトかどうかに加えて、さらにどのセクションへのリダイレクトであるかも分かるようになりました。 [https://phabricator.wikimedia.org/T103281]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-03-03|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-03-04|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-03-05|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 開発者はトークページでの編集の競合を解消する[[:m:WMDE Technical Wishes/Edit Conflicts#Edit conflicts on talk pages|新しいインターフェイス]]を開発しています。[[mw:Help talk:Two Column Edit Conflict View|フィードバック]]をお願いします。 [https://phabricator.wikimedia.org/T230231]
* [[:m:Abuse filter manager|編集フィルター管理者]]と呼ばれる新しい利用者グループの作成について[[:m:Abuse filter manager/vote|投票]]を実施中です。投票はメタで受け付け、期間は3月1日から3月31日までです。
* [[File:Octicons-tools.svg|15px|link=|高度]] モバイル版サイトに使用された<code>wgMFSpecialCaseMainPage</code>は2017年から非推奨でしたが、4月に動作しなくなる予定です。影響を受けるウィキは183件あります。ご利用のウィキで使用していないか[[phab:T246401|一覧]]で確かめて、必ず修正してください。詳細と修正のお手伝いは[[phab:T246401|こちら]]をご参照ください。 [https://www.mediawiki.org/wiki/Mobile_Gateway/Mobile_homepage_formatting#MFSpecialCaseMainPage]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W10"/> 2020年3月3日 (火) 00:36 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19816101 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/11|Tech News: 2020-11]] ==
<section begin="technews-2020-W11"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/11|翻訳]]されています。
'''最近の更新'''
* <code>articletopic</code>と呼ばれる新しい検索ワードを使用して、特定のトピックの記事のみを検索できます。現在はアラビア語版、チェコ語版、英語版、ベトナム語版のウィキペディアで利用可能です。その他のウィキペディアでも、間もなく利用可能になる予定です。 [https://phabricator.wikimedia.org/T240559][https://www.mediawiki.org/wiki/ORES/Articletopic][https://wikitech.wikimedia.org/wiki/Search/articletopic]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-03-10|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-03-11|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-03-12|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Special:MyLanguage/New requirements for user signatures|新しい署名の要件]]を定める計画があります。[[mw:Talk:New requirements for user signatures|フィードバック]]を募集中です。
* [[mw:Special:MyLanguage/Wikimedia Apps|Android版ウィキペディアアプリ]]では、利用者の設定に応じて[[:mw:Wikimedia Apps/Team/Android/AppEditorTasks#Push Notifications for editors|プッシュ通知]]を受け取れるようになります。自分の会話ページに書き込みがあった時や、自分の編集が取り消された時の確認に役立ちます。今年の後半に利用できるようになる予定です。 [https://phabricator.wikimedia.org/T146032]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W11"/> 2020年3月9日 (月) 17:15 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19881740 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/12|Tech News: 2020-12]] ==
<section begin="technews-2020-W12"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/12|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 既存のページのコンテンツモデルを変更する、新しい[[:mw:Special:MyLanguage/API:Main page|API]]モジュールが提供されています。<code>action=changecontentmodel</code> を使用して新しく任意のコンテンツモデルを設定できます。[[:mw:Special:MyLanguage/API:ChangeContentModel|mediawiki.org のドキュメント]]をご覧ください。 [https://phabricator.wikimedia.org/T107174]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-03-17|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-03-18|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-03-19|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 他の人と同時に同じページを編集したとき、編集の競合が発生します。この競合を解消するための[[:m:WMDE Technical Wishes/Edit Conflicts#Solution: Two Column Edit Conflict View|新しいインターフェース]]が提供されます。まもなくドイツ語版、アラビア語版、ペルシア語版で運用を開始する予定です。来月には更に多くのウィキで利用できるようになります。新しいインターフェースの利用はオプトアウトすることもできます。 [https://phabricator.wikimedia.org/T139601][https://phabricator.wikimedia.org/T244863]
* 返信を簡単にする機能の、[[:mw:Talk pages project/Updates#12 March 2020|提案中のデザイン]]を確認できます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W12"/> 2020年3月16日 (月) 21:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19899639 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/13|Tech News: 2020-13]] ==
<section begin="technews-2020-W13"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/13|翻訳]]されています。
'''問題点'''
* 現在、[[:w:ja:新型コロナウイルス感染症の流行_(2019年-)|新型コロナウイルスのパンデミック]]が原因で、開発が計画よりも遅れています。[[:wikitech:Deployments/Covid-19|開発のガイドラインが更新]]されましたのでご参照ください。これは開発に参加できなくなった人が出た場合のリスクを回避するためです。
* ウィキ間リンクを追加しようとするとうまくいかない不具合が発生していました。ウィキ間リンクを追加するツールが、リンク先のプロジェクトを誤って提示することがありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T247712][https://phabricator.wikimedia.org/T247562]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-03-24|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-03-25|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-03-26|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 現在、初学者でも楽に編集できるようにする [[mw:Growth|プロジェクト]]が進行中です。それぞれのウィキペディア単位で新人編集者を受け入れる取り組みをどうしているのか、開発者は理解しようとしています。また、管理活動にどんなテンプレートがよく使われているかも調べています。ご利用のウィキでは、リンク先の[[mw:Growth/March 2020 inventory|一覧にある項目に対応している]]でしょうか。確認して、このプロジェクトにご協力ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W13"/> 2020年3月23日 (月) 17:08 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19899639 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/14|Tech News: 2020-14]] ==
<section begin="technews-2020-W14"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/14|翻訳]]されています。
'''最近の更新'''
* Android版[[:mw:Wikimedia Apps|ウィキペディア アプリ]]のベータ版を使うと、コモンズの素材に[[:mw:Wikimedia Apps/Team/Android/AppEditorTasks#Suggested Edits 4.0 - Tag Commons images to improve search|タグ付け]]ができるようになりました。タグは[[c:Commons:Depicts|題材]]と呼ばれます。 [https://phabricator.wikimedia.org/T239690]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-03-31|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-04-01|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-04-02|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ビデオ再生機能の単純化と現代化を行う予定です。現在ベータ版として提供されているものが標準機能として提供されます。旧式のプレイヤーは使えなくなる予定です。 [https://phabricator.wikimedia.org/T248418]
* テンプレートを使いやすくするプロジェクトが進行中です。今後の2、3週にわたり開発者の構想が[[:m:WMDE Technical Wishes/Templates|プロジェクトページ]]で提示される予定です。興味がある人はウォッチリストに入れて、フィードバックをお寄せください。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-March/093240.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W14"/> 2020年3月30日 (月) 17:26 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19939500 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/15|Tech News: 2020-15]] ==
<section begin="technews-2020-W15"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/15|翻訳]]されています。
'''問題点'''
* 空の利用者ページがデスクトップに正しく表示されない問題がありました。バグによるもので、まもなく修正される見込みです。 [https://phabricator.wikimedia.org/T248141]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-04-07|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-04-08|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-04-09|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* MediaWikiでは[[:w:ja:Unicode|Unicode]]の新版を導入する予定です。旧版で利用できなかった一部の文字の大文字が、新版で利用できるようになります。このため、従来ページ名の1文字目がやむを得ず小文字になっていたページは自動的に大文字から始まるページ名に改名(移動)されます。対象ページのリストは[[phab:P10817|Phablicator]]上で確認できます。ページの移動を実行するユーザーは<code>Maintenance script</code>で、作業は2020年4月13日に開始予定です。スクリプトが自動処理するページ名ではなく特定のページ名に変えたい場合は、左記の作業時間前に予め移動処理を行うようお願いします。 [https://phabricator.wikimedia.org/T219279]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W15"/> 2020年4月6日 (月) 19:03 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19961136 のリストを使用して送信したメッセージ -->
== Editing news 2020 #1 – Discussion tools ==
<div class="plainlinks mw-content-ltr" lang="ja" dir="ltr">
<em>[[m:VisualEditor/Newsletter/2020/April|他の言語で読む]] • [[m:VisualEditor/Newsletter|多言語ニュースレター配信に登録する]]</em>
[[File:TalkPages-Reply-v1.0.png|thumb|300px|alt=開発中の返信ツールの画面キャプチャ|現在、早期段階としてコメントの字下げ(インデント)および署名の付与の自動処理を開発中です。]]
[[mw:Editing|編集機能チーム]]は[[mw:Talk pages project|トークページのプロジェクト]]に取り組んできました。 このプロジェクトの目標はウィキ上で貢献者同士がかわす意思疎通を、もっと楽にすることです。コミュニティの皆さんとの[[mw:Talk pages consultation 2019|2019年のトークページに関する協議]]の成果のひとつです。
[[File:TalkPages-Reply-v2.0.png|thumb|300px|alt=Reply tool improved with edit tool buttons|今後の作業項目として、チームは他の利用者の名前にリンクを作ったり、リッチテキスト風の編集機能の選択肢などのツールを予定しています。]]
チームでは現在、コメントに使う[[mw:Talk pages project/replying|返信ツールを新しく]]開発中です。この早期版ではコメント部分の字下げ(インデント)と署名追加を自動処理します。 <strong>[[mw:Talk pages project/replying/prototype testing#Reply%20version%201.0|新しい返信ツールをお試し]]いただけます。</strong>
*2020年3月31日付で[[mw:Beta Feature|ベータ版]]として新しい{{Int:discussiontools-replylink}}(返信)ツールを、ウィキペディアの次の4言語版で公開しました。[[w:ar:Special:Preferences#mw-prefsection-betafeatures|アラビア語版]]、[[w:nl:Special:Preferences#mw-prefsection-betafeatures|ドイツ語版]]、[[w:fr:Special:Preferences#mw-prefsection-betafeatures|フランス語版]]、[[w:hu:Special:Preferences#mw-prefsection-betafeatures|ハンガリー語版]]。 新しいツールを早めに使いたいと希望されるコミュニティがありましたら、[[User:Whatamidoing (WMF)]]までご連絡をお願いします。
*チームには更新を行う直近の計画が複数あります。 <strong>ぜひ[[mw:Talk pages project/replying#Version%202.0|設計案を検討して]]、フィードバックをトークページに投稿してください。</strong> チームがテストを予定する機能は下記を含みます。
**他の利用者に言及する方法の改善 ("ピンもしくは通知"),
**ビジュアル編集機能にリッチテキスト風の選択肢を配備、
**その他の機能で利用者テストや編集者のお勧めで浮上したもの。
<span class="mw-translate-fuzzy">編集機能チームの進捗状況の更新情報をお届けしますので、プロジェクトページの[[mw:Talk pages project#Get involved|<strong>"Getting involved"</strong>]]節にご自分の利用者名を追加してください。</span> 次の各ページを[[File:MediaWiki Vector skin blue star watchlist icon.svg|frameless|16px]] ウォッチリストに入れると変更を追跡できます。[[mw:Talk pages project|プロジェクトのメインページ]]、[[mw:Talk pages project/Updates|更新情報]]、[[mw:Talk pages project/replying|返信ツール]]、[[mw:Talk pages project/replying/prototype testing|利用者テスト]]。
– [[user:PPelberg (WMF)|PPelberg (WMF)]] ([[mw:User talk:PPelberg (WMF)|talk]]) & [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[mw:User talk:Whatamidoing (WMF)|talk]])
</div> 2020年4月8日 (水) 19:05 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=19960602 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/16|Tech News: 2020-16]] ==
<section begin="technews-2020-W16"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/16|翻訳]]されています。
'''最近の更新'''
* 全てのウィキペディアで検索ワード <code>[[:mw:Help:CirrusSearch#Articletopic|articletopic]]</code> が使えるようになりました。主題ごとに記事を検索するワードです。 [https://phabricator.wikimedia.org/T240559]
* 新しい[https://tools.wmflabs.org/tools-gallery/ ツールギャラリー]でウィキの編集ツールを見られるようになりました。 [https://www.mediawiki.org/wiki/Technical_Community_Newsletter/2020/April]
* [[:wikitech:Help:Cloud Services Introduction|ウィキメディアクラウドサービス]]からの編集状況を新しい[https://wmcs-edits.wmflabs.org/#wmcs-edits ダッシュボード]で見られるようになりました。
* 履歴ページで絞り込み機能を使用した際、絞り込みの条件によってはいずれの編集にも一致しない場合があります。一致する編集がない場合、以前は何も表示されませんでしたが、このたび一致する編集が無いという説明文が表示されるようになりました。 [https://phabricator.wikimedia.org/T227578]
* 新しく[https://techblog.wikimedia.org/ ウィキメディア技術ブログ]を開設しました。 [https://www.mediawiki.org/wiki/Wikimedia_technical_blog_editorial_guidelines]
'''問題点'''
* 先週、ウィキデータのデータベースで問題が発生しました。一部のウィキは20分間停止してしまい、ウィキデータやその他プロジェクトではエラーメッセージを表示が表示されました。言語間リンクが表示されなくなり、一部のツールが稼働しなくなる等の問題が発生しました。これらの問題の一部は迅速に修正されました。残りの問題についても、開発者が引き続き修正を行っている所です。 [https://www.wikidata.org/w/index.php?title=Wikidata:Project_chat&oldid=1153486952#Update_about_the_database_breakage][https://wikitech.wikimedia.org/wiki/Incident_documentation/20200407-Wikidata%27s_wb_items_per_site_table_dropped][https://phabricator.wikimedia.org/T249565]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-04-14|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-04-15|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-04-16|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 一部のグラフがモバイル版では動作していません。間もなく修正予定です。 [https://phabricator.wikimedia.org/T133085]
* リダイレクトの会話ページの上部にあるタブのリンクはリダイレクト先のページに繋がっています。このリンク先を、リダイレクト元のページにするべきかどうかについて、[[phab:T5324|フィードバック]]をお願いします。
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]機能を使う際に、非推奨となっている<code><nowiki><source></nowiki></code>タグや非推奨の<code>enclose</code>パラメータが使われている場合、ページに追跡カテゴリを付与するようになります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W16"/> 2020年4月13日 (月) 15:31 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=19979862 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/17|Tech News: 2020-17]] ==
<section begin="technews-2020-W17"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/17|翻訳]]されています。
'''技術ニュース'''
* 技術ニュースは18週号(4月27日)を休刊、次号は2020年5月4日に発行予定です。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術的なスキルが必要な小規模ウィキを支援する[[m:Small wiki toolkits|small wiki toolkits]]があります。技術スキルの学習、共有にお役立てください。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-April/093296.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキメディアスキンから過剰なCSSセレクタを削除しました。<code>div#content</code>は<code>.mw-body</code>に、<code>div.portal</code>は<code>.portal</code>に、<code>div#footer</code>は<code>#footer</code>になりました。スキンで[[:w:ja:HTML5|HTML5]]を使用するための変更です。お使いのユーザーガジェットや ユーザースタイルでこれらを使用している場合は、更新する必要があります。 [https://phabricator.wikimedia.org/T248137]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* 将来的に、[[:w:ja:Internet Explorer 8|Internet Explorer 8]]でウィキを閲覧すると、一部が予期せぬ表示をするか、機能しなくなる可能性があります。 [https://phabricator.wikimedia.org/T248061]
* 差分ページのフォントが変更予定です。 [https://phabricator.wikimedia.org/T250393]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.30|新しいバージョン]]のMediaWikiソフトウェアは来週より稼働します。テストウィキとMediaWiki.orgは4月28日に、ウィキペディア以外のプロジェクトと一部のウィキペディアは4月29日に、その他のウィキには4月30日に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W17"/> 2020年4月20日 (月) 18:46 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20001327 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/19|Tech News: 2020-19]] ==
<section begin="technews-2020-W19"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/19|翻訳]]されています。
'''問題点'''
* [[phab:T251153|いくつかのウィキ]]では5月5日に数分の間、データベースのメンテナンスのため閲覧専用の状態になります。[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200505T05 05:00 (UTC)] 前後に行われる予定です。 [https://phabricator.wikimedia.org/T251153]
* [[phab:T251157|いくつかのウィキ]]では5月7日に数分の間、データベースのメンテナンスのため閲覧専用の状態になります。グローバルアカントの利用者名変更やパスワードの変更、Eメールアドレスの変更や確認、新しいウィキへのログインといった[[mw:Special:MyLanguage/Extension:CentralAuth|CentralAuth]]関連が影響を受ける可能性があります。[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200507T05 05:00 (UTC)] 前後に行われる予定です。 [https://phabricator.wikimedia.org/T251157]
'''今週の更新'''
* 自分が作成したページにリンクされた時に通知を受け取る機能があります。これからは、個別のページについての通知をオフにすることができるようになります。 [https://phabricator.wikimedia.org/T46787]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.31|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-05-05|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-05-06|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-05-07|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W19"/> 2020年5月4日 (月) 17:00 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20041699 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/20|Tech News: 2020-20]] ==
<section begin="technews-2020-W20"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/20|翻訳]]されています。
'''最近の更新'''
* [[w:ja:Flickr|Flickr]]の画像をコモンズに移入する制限が解け、[[c:Special:UploadWizard|UploadWizard]]を使うと誰でも投稿できるようになりました。以前はコモンズ自動巡回者の権限がないと、Flickrから移入できませんでした。. [https://phabricator.wikimedia.org/T90004]
'''問題点'''
* [[phab:T251502|コモンズ]]では5月12日に数分の間、データベースのメンテナンスのため閲覧専用の状態になります。日本時間14:00([https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200512T05 05:00 (UTC)])前後に行われる予定です。 [https://phabricator.wikimedia.org/T251502]
* [[phab:T251984|ウィキデータを含む複数のウィキ]]では5月19日に数分間、閲覧はできても編集の保存ができなくなる予定です。日本時間14:00([[:w:ja:世界協定時間|UTC]][https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。また英語版ウィキペディアはデータベースの保守管理のため、数分にわたり閲覧専用になります。 5月21日の日本時間14:00(UTC [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。 [https://phabricator.wikimedia.org/T251984][https://phabricator.wikimedia.org/T251985]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.32|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-05-12|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-05-13|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-05-14|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] JavaScript のユーザースクリプトとガジェットで、<code>mw.config.exists()</code>と<code>mw.user.tokens.exists()</code>を使って複数のキーをまとめてチェックできなくなります。今後は1件ずつ<code>exists()</code>または <code>get()</code>で検索してください。 [https://phabricator.wikimedia.org/T251855]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W20"/> 2020年5月11日 (月) 20:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20078394 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/21|Tech News: 2020-21]] ==
<section begin="technews-2020-W21"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/21|翻訳]]されています。
'''最近の更新'''
* パスワードを忘れた場合に新しいパスワードをメールで送信してもらうには、アカウントに登録した自分のメールアドレスか、利用者名のどちらかを入力する必要があります。個人設定で、その両方を入力するよう選べます。これは他人によるパスワード変更のメール申請を減らす措置で、すべてのウィキメディアのウィキで設定できるようになりました。 [https://meta.wikimedia.org/wiki/Community_Tech/Password_Reset_Update#May_11,_2020][https://lists.wikimedia.org/pipermail/wikimedia-l/2020-May/094804.html]
'''問題点'''
* [[w:ja:IOS 13|iOS 13]]で[[w:ja:Safari|Safari]]を使用している利用者に対してバグを引き起こす可能性があります。iPhoneを使用してウィキペディアのモバイル版サイトで閲覧または編集を行っているときにバグを見つけた場合は[[mw:Skin talk:Minerva Neue|報告してください]]。 [https://phabricator.wikimedia.org/T252223]
* [[phab:T251984|ウィキデータを含む複数のウィキ]]では5月19日に数分間、閲覧はできても編集の保存ができなくなる予定です。日本時間14:00([[:w:ja:世界協定時間|UTC]][https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。また英語版ウィキペディアはデータベースの保守管理のため、数分にわたり閲覧専用になります。 5月21日の日本時間14:00(UTC [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。 [https://phabricator.wikimedia.org/T251984][https://phabricator.wikimedia.org/T251985]
'''今週の更新'''
* Android版の[[:mw:Special:MyLanguage/Wikimedia Apps|Wikipediaアプリ]]を使用するとき、コモンズの[[c:Special:MyLanguage/Commons:Depicts|構造化データ]]を[[:mw:Special:MyLanguage/Wikimedia Apps/Team/Android/AppEditorTasks#Suggested Edits 4.0 - Tag Commons images to improve search (to be released May 2020)|追加]]することができます。アプリのベータ版には[[:c:Special:MyLanguage/Commons:Structured data/Computer-aided tagging|コンピュータ補助によるタグ付け]]機能がありましたが、構造化データの編集機能追加に伴い削除されました。 [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/AppEditorTasks#Suggested_Edits_4.0_-_Tag_Commons_images_to_improve_search_(to_be_released_May_2020)]
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:Graph|グラフ]]は閲覧者のブラウザで[[w:ja:レンダリング (コンピュータ)|レンダリング]]が行われます。この機能は[[w:ja:JavaScript|JavaScript]]を使用しています。グラフはJavaScriptを使用できる環境であれば正常に動作します。JavaScriptを使用できない環境では動作しません。 [https://phabricator.wikimedia.org/T236892]
* [[File:Octicons-tools.svg|15px|link=|高度]] スキンの CSS の一部が簡略化されました。<code>div#p-personal</code>、<code>div#p-navigation</code>、<code>div#p-interaction</code>、<code>div#p-tb</code>、<code>div#p-lang</code>、<code>div#p-namespaces</code>、<code>div#p-variants</code>、<code>div#footer</code> というコードが影響を受けます。これらのコードから <code>div</code> を除去する必要があります。ガジェットやスクリプト、ユーザースタイルシートを修正してください。これは、HTML5の機能を使用できるようにするための措置です。 [https://phabricator.wikimedia.org/T252467]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Skin:Vector|ベクタースキン]]の CSS が一部変更されました。<code>#p-variants</code>、<code>#p-namespaces</code>、<code>#p-personal</code>、<code>#p-views</code>、<code>#p-cactions</code> というコードが影響を受けます。<code>ul</code> が使われなくなります。ガジェットやスクリプト、ユーザースタイルシートを修正する必要があるかもしれません。[[phab:T252447|詳しくはこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W21"/> 2020年5月18日 (月) 17:20 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20078394 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/22|Tech News: 2020-22]] ==
<section begin="technews-2020-W22"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/22|翻訳]]されています。
'''今週の更新'''
* ビジュアルエディタが[[mw:Special:MyLanguage/Skin:Modern|モダンスキン]]でも利用できるようになります。導入に伴う変更により、スクリプトやガジェットの一部に不具合が発生する可能性があります。 [https://phabricator.wikimedia.org/T177243]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.34|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-05-26|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-05-27|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-05-28|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W22"/> 2020年5月25日 (月) 14:18 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20114992 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/23|Tech News: 2020-23]] ==
<section begin="technews-2020-W23"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/23|翻訳]]されています。
'''最近の更新'''
* Android 用の [[:c:Commons:Mobile app|Wikimedia Commons アプリ]]の新しいベータ版が利用できます。画像を閲覧するとき、ズーム機能が利用できるようになりました。また、ジオタグの付いた写真をアップロードするとき、撮影場所の候補を表示するようになりました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-May/093431.html]
'''問題点'''
* 5月28日にコモンズのデータベースに障害が発生しました。これが原因で、コモンズが8分ほど編集できなくなりました。データベースを移動したことが原因です。同様の原因により、29日にも一時的に編集ができなくなりました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200528-s4_(commonswiki)_on_read-only_for_8_minutes][https://phabricator.wikimedia.org/T253808][https://phabricator.wikimedia.org/T253825]
* [[mw:Special:MyLanguage/Skin:Vector|Vector スキン]]使用時に、他言語版へのリンクを追加できない不具合が発生しました。既存の言語間リンクがない場合、言語間リンクのセクション自体が表示されませんでした。[[mw:Special:MyLanguage/Content translation|コンテンツ翻訳]]のリンクや言語の設定を行うリンクも表示されませんでした。この問題はすでに修正済みです。 [https://phabricator.wikimedia.org/T252800]
'''今週の更新'''
* 作成したページに対するリンクを他の人が追加したとき、通知が届くようになりました。通知は個人設定から無効化することが出来ます。まもなく、受け取った通知からも無効化を設定できるようになる予定です。 [https://phabricator.wikimedia.org/T46787]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.35|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-02|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-03|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-04|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W23"/> 2020年6月1日 (月) 22:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20114992 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/24|Tech News: 2020-24]] ==
<section begin="technews-2020-W24"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/24|翻訳]]されています。
'''最近の更新'''
* 一部の記事では様々な方法で並べ替えができるテーブル(表組み)があります。たとえば国名一覧だと国名のABC順で並び替えたり、面積の列見出しをクリックして面積順に並び替えることができます。同じ見出し欄をもう一度クリックすると並び順は逆転します。3度目のクリックで、最初の並び順に戻ります。 [https://phabricator.wikimedia.org/T226697]
* [[mw:Special:MyLanguage/Help:Lint_errors/self-closed-tag|空要素タグ]]は[[:w:ja:HTML5|HTML5]]と同じ仕様になりました。このため、一部で使用を控える必要があります。例えば <code><nowiki><b/></nowiki></code> は正常に動作しない空要素タグの一例です。<code>area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbr</code> のタグは空要素タグとして使用できます。空要素として使用すべきでないタグが使用されているページは、2016年より[[:Category:無効な自己終了HTMLタグを使用しているページ]]として追跡されています。カテゴリの代わりに[[Special:LintErrors/self-closed-tag]]でも参照できます。なお、<code><nowiki><references /></nowiki></code> や <code><nowiki><ref /></nowiki></code> には影響しません。 [https://phabricator.wikimedia.org/T134423]
* <code>WikidataPageBanner</code> と呼ばれる通知バナーがあります。例えばウィキボヤージュやウィキメディアのロシア語版、またウィキペディアのカタロニア語版、バスク語版、ガリシア語版、トルコ語版が利用しています。以前はデスクトップ版のみの表示でしたが、今後はモバイル機器を使って訪問した利用者にも表示されるようになります。このバナーを利用するウィキでは <code>MediaWiki:Sitenotice</code> を更新して、編集者がモバイル版向けのスタイルをテストできるようにすることをお勧めします。 [https://phabricator.wikimedia.org/T254534][https://phabricator.wikimedia.org/T254295]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[m:Special:MyLanguage/MassMessage|メッセージ一斉送信]]の説明文を直接、[[:w:ja:アプリケーションプログラミングインタフェース|API]]から編集できるようになりました。これはツールやガジェットで役に立つ機能です。 [https://phabricator.wikimedia.org/T226929]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.36|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-09|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-10|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-11|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* かつて2012年に行われた暫定的な機能修正により、ウィキのメインページを携帯端末に適応できるようにしました。しかし2017年以降、暫定的に提供されていた機能は非推奨となっており、今年7月13日以降は無効になる予定です。今後は[[mw:Special:MyLanguage/Help:TemplateStyles|TemplateStyles]]を使用してください。現在、118のウィキでモバイル版メインページの修正が必要となっています。[[phab:T254287|詳細情報や利用中のウィキが該当するかどうか、ご確認ください]]。 [https://phabricator.wikimedia.org/T254287]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W24"/> 2020年6月8日 (月) 21:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20156271 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/25|Tech News: 2020-25]] ==
<section begin="technews-2020-W25"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/25|翻訳]]されています。
'''Recent changes'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[m:Toolforge|Toolforge]]では編集回数カウンターや拡張エディタなど、ウィキメディアのコミュニティにより提供された様々なツールを提供しています。このたび、ホスト先のドメインを'''tools.wmflabs.org'''から'''toolforge.org'''へ変更します。URLは'''tools.wmflabs.org/toolname'''から'''toolname.toolforge.org'''に変わります。[[:wikitech:News/Toolforge.org|詳細はこちら]]。OAuthを使用するツールは更新が必要です。[[:wikitech:Help:Cloud_ Services Introduction|支援が必要な人はこちらまでご連絡ください]]。
'''問題点'''
* サイドバーにウィキデータのリンクを表示するページがあります。[[mw:Special:MyLanguage/Skin:MonoBook|Monobook]]外装を指定していると、このリンクが消えるという現象が数日間発生しました。バグが原因でしたが、現在は修正済みです。 [https://phabricator.wikimedia.org/T254485]
* 先週、短い時間ながら編集とログイン、ログアウトが正常にできませんでしたが、すぐに復旧しました。 [https://phabricator.wikimedia.org/T255179]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.37|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-16|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-17|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-18|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]]はウィキの作業を自動化するPython [[:w:ja:ライブラリ|ライブラリ]]です。7月から提供される新規バージョン以降、[[:w:ja:Python#2.x|Python 2]] がサポートされなくなります。Python 3.4 および MediaWiki 1.19 以下のサポートも同時に終わるため、[[:w:ja:Python#3.x|Python 3]]に移行してください。[[:phab:T242120|助けが必要であればご相談ください]]。 [https://lists.wikimedia.org/pipermail/pywikibot-announce/2020-June/000015.html]
* [[mw:Special:MyLanguage/Skin:Vector|Vector]]スキンのメニューにある<code>.menu</code>ならびに<code>.vectorMenu</code>のセレクタは機能しなくなる予定です。影響はガジェットとユーザースクリプトに及ぶ可能性があります。<code>.menu</code>は<code>ul</code>、<code>.vectorMenu</code>は<code>.vector-menu</code>にそれぞれ置換してください。 [https://phabricator.wikimedia.org/T254797]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W25"/> 2020年6月15日 (月) 21:38 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20156271 のリストを使用して送信したメッセージ -->
== Editing news 2020 #2 ==
<div class="plainlinks mw-content-ltr" lang="ja" dir="ltr">
<em>[[m:Special:MyLanguage/VisualEditor/Newsletter/2020/June|他の言語で読む]] • [[m:Special:MyLanguage/VisualEditor/Newsletter|多言語ニュースレター配信に登録する]]</em>
[[File:TalkPages-Reply-v2.0.png|alt=新しい返信機能の見本。新しい編集ツールを組み込み|thumb|400x400px|新機能にはツールバーもあります。 [[mw:Talk:Talk pages project/replying|何かツールバーに入れたいものはありませんか?]]]]
[[mw:Special:MyLanguage/Editing|編集機能]]ニュースレターのこの号では、投稿者がウィキでもっと楽に意思疎通できることを目指す[[mw:Special:MyLanguage/Talk pages project|トークページのプロジェクト]]をご紹介します。
* [[mw:Special:MyLanguage/Talk pages project/replying|<strong>返信ツール</strong>]]: 現状では提携するウィキ4件(アラビア語、オランダ語、フランス語、ハンガリー語)にベータ機能として展開、通称は「{{int:discussiontools-preference-label}}」です。 ベータ機能にはまもなく[[mw:Special:MyLanguage/Talk pages project/replying#Version%202.0|新機能]]を盛り込む予定です。コメントを新しいビジュアルな編集モードで書いたり、<code>@</code>と入力するだけで、他の利用者に言及する(ピンする)機能が対象です。 [[mw:Special:MyLanguage/Talk pages project/replying/prototype testing#Reply%20tool%20version%202.0|新機能を試す]]には、[[mw:Special:MyLanguage/Beta Cluster|Beta Cluster]]をご利用ください。今後の2、3ヵ月のうちに、現在の4言語以外でもベータ機能を利用できるようにする予定です。
* [[mw:Special:MyLanguage/New requirements for user signatures|<strong>利用者の署名に新しい要件</strong>]]: まもなく利用者が作った変則的な署名を[[Special:Preferences/ja|個人設定]]に登録できなくなります。これには署名の偽造を減らし、ページの破壊防止するとともに、トークページ用の新しいツールの信頼性を高めようという主旨があります。影響を受ける編集者はごく限定的です。
* [[mw:Special:MyLanguage/Talk pages project/New discussion|<strong>議論用の新しいツール</strong>]]: 編集機能チームでは新規の議論を始める手順の簡略化に取り組み始めました。[[mw:Special:MyLanguage/Talk pages project/New discussion#Design|プロジェクトのページに初期の設計を載せましたのでご確認ください]]。
* [[m:Special:MyLanguage/Research:Usage of talk pages|<strong>トークページ利用調査</strong>]]: 編集機能チームでは[[mw:Special:MyLanguage/Wikimedia Research|ウィキメディア研究チーム]]と連携し、トークページの利用が編集者の記事の改良にどう役立つか調べてきました。編集初学者はトークページを利用するほど、利用しない人よりもメインの名前空間での編集活動が活発という傾向がわかりました。
– [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|トークページ]])
</div> 2020年6月17日 (水) 20:29 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=20127098 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/26|Tech News: 2020-26]] ==
<section begin="technews-2020-W26"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版 '''[[m:Special:MyLanguage/Tech/News|技術ニュース]]''' です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは[[m:Special:MyLanguage/Tech/News/2020/26|各言語に翻訳]]されています。
'''問題点'''
* 編集初学者の編集活動開始をサポートする[[mw:Special:MyLanguage/Growth|新しいツール]]が複数あります。入手は[https://noc.wikimedia.org/conf/highlight.php?file=dblists/growthexperiments.dblist いくつかのウィキ]で可能です。それらのウィキでは先週、ごく限られた時間帯でビジュアル編集機能に問題がありました。これはネットツールのバグが原因でしたが直後に解決しました。 [https://phabricator.wikimedia.org/T255607]
* [[File:Octicons-tools.svg|15px|link=|高度]] ユーザスクリプトとガジェットの一部は[[:w:ja:Cascading Style Sheets|CSS]]セレクタの変更の影響を受けて機能しなくなりました。問題の解消には<code>.vectorTabs</code>を<code>.vector-menu-tabs</code>に置換してください。 [https://phabricator.wikimedia.org/T255718]
'''今週の更新'''
* 開発者はトークページでの編集の競合を解消する[[:m:WMDE Technical Wishes/Edit Conflicts#Edit conflicts on talk pages|新しいインターフェイス]]を開発しています。リリースは6月24日の予定です。[[mw:mw:Help talk:Paragraph-based Edit Conflict Interface|フィードバック]]をお願いします。 [https://phabricator.wikimedia.org/T230231]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.38|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-23|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-24|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-25|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* かつて2012年に行われた暫定的な機能修正により、ウィキのメインページを携帯端末に適応できるようにしました。しかし2017年以降、暫定的に提供されていた機能は非推奨となっており、今年7月13日以降は無効になる予定です。今後は[[mw:Special:MyLanguage/Help:TemplateStyles|TemplateStyles]]を使用してください。現在、91のウィキでモバイル版メインページの修正が必要となっています。[[phab:T254287|詳細情報や利用中のウィキが該当するかどうか、ご確認ください]]。 [https://phabricator.wikimedia.org/T254287]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W26"/> 2020年6月22日 (月) 18:49 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20156271 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/27|Tech News: 2020-27]] ==
<section begin="technews-2020-W27"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版 '''[[m:Special:MyLanguage/Tech/News|技術ニュース]]''' です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは[[m:Special:MyLanguage/Tech/News/2020/27|各言語に翻訳]]されています。
'''問題点'''
* すべての利用者が強制的にログアウトされました。一部の利用者が他人名義でログインしているように表示されたためです。現在、不具合の修正対応中です。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-June/093543.html]
* 一部の閲覧者に対してページの最新版が表示されませんでした。ページが更新されたとき、古い版が表示されていました。これはログアウトしている利用者のみが影響を受けました。10日ほど続きましたが、現在は修正済みです。 [https://phabricator.wikimedia.org/T256444]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.39|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-30|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-01|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-01|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|]] [[mw:Special:MyLanguage/Skin:Modern|モダン]]スキンと [[mw:Special:MyLanguage/Skin:Monobook|モノブック]]スキンでは「表示」ボタンに <code>searchGoButton</code> のIDを使用しています。[[mw:Special:MyLanguage/Skin:Vector|ベクター]]スキンはこのボタンに <code>searchButton</code> というIDを使用しています。すべての外装で同じIDを割り当てるため、モノブックとモダンで使用するIDを <code>searchButton</code> に変更します。これにより、ガジェットやユーザースクリプトに影響が生じます。7月23日に変更を行う予定なので、これ以降は <code>searchButton</code> を使うようにしてください。[[phab:T255953|詳細や影響を受けるスクリプトについてはこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W27"/> 2020年6月29日 (月) 16:31 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/28|Tech News: 2020-28]] ==
<section begin="technews-2020-W28"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/28|翻訳]]されています。
'''Problems'''
* The [[mw:Special:MyLanguageExtension:Score|Score]] extension has been disabled for now. This is because of a security issue. It will work again as soon as the security issue has been fixed. [https://phabricator.wikimedia.org/T257066]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.40|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-07|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-08|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-09|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* Abstract Wikipediaはウィキメディアの新規プロジェクトです。ウィキデータに基づき、言語に依拠せず読むことができる情報を収集します。なお、名称は仮のものです。[[m:Special:MyLanguage/Abstract Wikipedia|詳細はリンク先]]をご参照ください。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093571.html]
* [[mw:Wikimedia Apps/Team/iOS|iOS版ウィキペディア・アプリ]]の開発者は実験的な新しいツールを考案中です。iPhoneの利用者の皆さんは[[mw:Wikimedia Apps/Team/iOS/2020 survey|アンケート調査に答えて]]ご協力ください。
* 近々、[[mw:New requirements for user signatures#Outcome|署名についてのルール]]が一部施行される予定です。利用者の署名に[[Special:LintErrors|Lintエラー]]や無効なHTML構文の使用は認められなくなります。subst展開の入れ子も認められません。また、利用者ページ、利用者トークページ、投稿記録いずれかへのリンクが必須となります。ご使用の [https://signatures.toolforge.org/check 署名が新しいルールに適応しているかどうか、ご確認ください]。署名は構文次第でページ内のツールもしくは他のテキスト部分に問題を起こす原因になるため、署名のルールが施行されることになりました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W28"/> 2020年7月6日 (月) 20:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== Editing news 2020 #3 ==
<div class="plainlinks mw-content-ltr" lang="ja" dir="ltr">
== 編集中ニュース 2020 #3 ==
<em>[[m:VisualEditor/Newsletter/2020/July|これを別の言語で読む]] • [[m:VisualEditor/Newsletter|この多言語ニュースレター配信に登録する]]</em>
[[File:50M@2x.png|thumb|alt=金色の星に青いリボン、そして50mのテキスト|<strong>5000万件</strong>以上の編集にデスクトップ上のビジュアルエディタが使われてきました。|400px]]
7年前の今月、[[mw:Editing team|編集チーム]]は大半のウィキペディア編集者にビジュアルエディタを提供しました。 それから、編集者は多くの偉業を成し遂げてきました。
* <strong>5000万件</strong>以上の編集にデスクトップ上のビジュアルエディタが使われてきました。
* <strong>新たに2000万件</strong>以上の記事がビジュアルエディタでつくられました。このうち60万件以上の新記事は2019年中につくられたものです。
* ビジュアルエディタは<strong>ますます人気が増しています</strong>。ビジュアルエディタを使って行われたすべての編集の割合は導入以来年々増加しています。
* 2019年、<strong>新たな参加者</strong>(ログインし編集数が99以下の編集者)<strong>による編集の35%</strong>がビジュアルエディタによって行われました。この割合は<strong>年々増えています</strong>。
* <strong>モバイルサイトで行われた編集のうち500万件</strong>近い編集にビジュアルエディタが使われました。これら編集のほとんどは2018年、編集チームが[[mw:Mobile visual editor|モバイルビジュアルエディタ]]を改良し始めてから行われました。
* 2019年11月17日に[https://discuss-space.wmflabs.org/t/first-edit-made-to-wikipedia-from-outer-space/2254 <strong>宇宙空間から行われた最初の編集</strong>]は、モバイルビジュアルエディタを使って行われました。 🚀 👩🚀
* 2017年度版ウィキテキストエディタを使って700万件以上の編集が行われました。この編集の中には<strong>60万件の新規記事作成</strong>も含まれます。 [[mw:2017 wikitext editor|2017年度版ウィキテキストエディタ]]はVisualEditorに組み込まれたウィキテキストモードです。[[Special:Preferences#mw-prefsection-betafeatures|個人設定でこれを有効に]]することができます。
[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|会話ページ]])
</div> 2020年7月9日 (木) 12:48 (UTC)
<!-- User:Elitre (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=20254527 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/29|Tech News: 2020-29]] ==
<section begin="technews-2020-W29"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/29|翻訳]]されています。
'''最近の更新'''
* 他者の編集に[[mw:Extension:Thanks|感謝]]を示す機能があります。この機能を使った操作について、[[mw:Extension:CheckUser|チェックユーザー係]]が利用者情報を取得できるようになりました。これにより、感謝機能を使って嫌がらせを働く[[m:Special:MyLanguage/Sock puppetry|ソックパペット]]を調べることができます。 [https://phabricator.wikimedia.org/T252226]
'''問題点'''
* 2週間ほど前、セキュリティ問題対策のために利用者全員を強制的にログアウトさせました。しかし、問題が完全に解決しなかったため、先週、再び利用者全員のログアウト処理が行われました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-June/093543.html][https://lists.wikimedia.org/pipermail/wikitech-ambassadors/2020-July/002327.html]
'''今週の更新'''
* 単一言語に限定しないウィキではページの[[mw:Special:MyLanguage/Help:Extension:Translate|翻訳設定]]ができます。しかし、最新の情報を反映していなかったり、未翻訳部分が出てくることがあります。更新が必要な部分は<span style="background-color:#fdd">背景色がピンク色</span>になります。未翻訳部分も将来的に見た目で判別できるようにする予定です。また、背景色変更のマークアップが問題を引き起こす場合があるため、翻訳元のページで <code><translate nowrap></translate></code> を使うことで問題を回避できるようにする予定です。 [https://phabricator.wikimedia.org/T256625]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.41|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-14|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-15|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-16|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキメディアのコードレビューに [[:w:ja:GitLab|GitLab]]を採用する予定です。ホストサーバーはウィキメディアのサーバーになりそうです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093577.html][https://www.mediawiki.org/wiki/Technical_Community_Newsletter/2020/July][https://www.mediawiki.org/wiki/Topic:Vpbt50rwxgb2r6qn][https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093607.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W29"/> 2020年7月13日 (月) 16:30 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/30|Tech News: 2020-30]] ==
<section begin="technews-2020-W30"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/30|翻訳]]されています。
'''最近の更新'''
* かつて2012年に行われた暫定的な機能修正により、ウィキのメインページを携帯端末に適応できるようにしました。モバイルビューのメインページ向けに特殊なケーシングを設定する方法でしたが、2017年以降、暫定的に提供されていた機能は非推奨となっており、今年7月14日から無効になりました。現在、60のウィキでモバイル版メインページの修正が必要となっています。該当するウィキのリストと、修正や支援申請の方法は[[phab:T254287|Phabricator]]をご参照ください。なお、この問題は技術ニュースの過去号[[m:Special:MyLanguage/Tech/News/2020/24|2020年24週]]と[[m:Special:MyLanguage/Tech/News/2020/26|2020年26週]]に掲載しました。
'''問題点'''
* 言語間リンクに不具合が発生しています。言語間リンクは同じページの他言語版にリンクする機能ですが、ソートの不具合が発生しています。開発者が修正対応を行っています。 [https://phabricator.wikimedia.org/T257625]
* 複数の利用者に対して同じ通知が繰り返し表示されています。過去の通知が届く場合もあるようです。 [https://phabricator.wikimedia.org/T257714]
* 一部のユーザーのログインに障害が起きています。おそらく、[[:w:ja:HTTP cookie|ブラウザのcookie]]が原因です。開発者が不具合の修正対応を行っています。ログインに問題が起きたときには[[phab:T258121|Phabricator]]の詳細をご覧ください。 [https://phabricator.wikimedia.org/T258121]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-21|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-22|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-23|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* <code>{{int:printableversion}}</code>というリンクは今後、非表示になる予定です。ウェブブラウザ側に印刷用バージョンを作成したり、印刷時の見た目を表示する機能が備わっているからです。 [https://phabricator.wikimedia.org/T167956]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W30"/> 2020年7月20日 (月) 19:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/31|Tech News: 2020-31]] ==
<section begin="technews-2020-W31"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/31|翻訳]]されています。
'''最近の更新'''
* ウィキコミュニティのための[[m:Small wiki toolkits/Starter kit|スターターキット]]が利用できるようになりました。技術リソース、ツール、推奨事項などの一覧で、ウィキプロジェクトを運用するのに必要な事柄をまとめています。コミュニティとしての経験が浅い小規模なウィキで役に立つでしょう。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093633.html]
* ログインユーザーは[[mw:Reading/Web/Desktop Improvements|デスクトップ改善]]プロジェクトによる最初の機能を全てのウィキで利用できるようなります。機能を利用するときは[[Special:Preferences#mw-prefsection-rendering|個人設定]]または[[Special:GlobalPreferences#mw-prefsection-rendering|グローバル個人設定]]の ''{{int:prefs-skin-prefs}}'' セクションで ''{{int:prefs-vector-enable-vector-1-label}}'' のチェックを外してください。今後更なる改良も予定しています。[[mw:Talk:Reading/Web/Desktop Improvements|フィードバックをお待ちしています]]。
* [[File:Octicons-tools.svg|15px|link=|高度]] UTCLiveClockは複数のウィキで使用されているガジェットです。[[:mw:MediaWiki:Gadget-UTCLiveClock.js|Mediawiki.orgから直接ガジェットをインポート]]するウィキでは、[[mw:MediaWiki_talk:Gadget-UTCLiveClock.js#Time_zones|UTC以外のタイムゾーンを選択]]できるようになりました。
'''問題点'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 今週のMediaWikiの展開は中止されました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093640.html][https://phabricator.wikimedia.org/T257969]
* 翻訳通知ボットが全ての翻訳者に対して同じメッセージを重複して送信していました。この問題は既に修正済みです。 [https://phabricator.wikimedia.org/T144780]
* 一部の利用者が同じ通知を複数回受信してしまうという不具合が発生していましたが、既に修正済みです。 [https://phabricator.wikimedia.org/T257766]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-28|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-29|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-30|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W31"/> 2020年7月27日 (月) 13:53 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/32|Tech News: 2020-32]] ==
<section begin="technews-2020-W32"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/32|翻訳]]されています。
'''問題点'''
* [[mw:Wikidata Query Service|ウィキデータのクエリサービス]]は7月23日木曜日17:50 から 17:59(UTC)の間、すべてのクエリが受け付け不能でした。中にはさらに長い時間、検索に支障の出たクエリもありました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200723-wdqs-outage]
* 過去数週間にわたり、言語間リンクの順序が正しくない状態が続いていました。[[m:Special:MyLanguage/Tech/News/2020/30|2週間前の技術ニュース]]でお知らせした件です。このたび、この不具合に対する修正対応が完了しました。 [https://phabricator.wikimedia.org/T257625]
* 「{{int:prefs-vector-enable-vector-1-label}}」を選択している利用者の[[Special:GlobalPreferences#mw-prefsection-rendering|グローバル個人設定]]に支障が出ています。開発者が問題解決に取り組んでいます。 [https://phabricator.wikimedia.org/T258493]
* ウィキベース拡張機能のバグにより、ウィキメディア・コモンズの標準名前空間(ギャラリー)における "移動保護" と "アップロード保護" が無効になっていました。新しく保護を設定した場合も、既に保護が設定されていた場合も効果がなく、通常は許可されないページの移動や作成が可能な状態でした。この問題は既に修正済です。 [https://phabricator.wikimedia.org/T258323]
'''今週の更新'''
* [[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS Player|ビデオプレイヤー]]がシンプルかつモダンなものに変わる予定です。現在、ベータ版として提供されているものは、今週からウィキペディア以外のプロジェクト群で標準機能として提供され、旧式のプレイヤーは使えなくなる予定です。 [https://phabricator.wikimedia.org/T248418]
* 利用者の設定した<code>global.js</code> および<code>global.css</code> ページがモバイルサイトでも読み込めるようになりました。モバイル版外装に書式を適用したくない場合は、[[mw:Help:Extension:GlobalCssJs#Per-skin_customization|説明文書]]をご参照ください。 [https://phabricator.wikimedia.org/T138727]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Skin:MonoBook|モノブック]]外装では <code>searchGoButton</code> IDが<code>searchButton</code> に変更されました。CSS と JS ガジェットに影響が出る見込みです。移行の手順は[[phab:T255953|T255953]]をご参照ください。これはすでに[[m:Special:MyLanguage/Tech/News/2020/27|第27週]]号でお知らせした件です。
* [[File:Octicons-tools.svg|15px|link=|高度]] ボット運用者はPywikibotを使用して定期的に議論をアーカイブすることができます。ボットが<code>counter</code>を使用して大規模なアーカイブを行わないようにした場合の動作が変更されました。 [https://phabricator.wikimedia.org/T215247]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-04|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-05|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-06|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W32"/> 2020年8月3日 (月) 15:43 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20336426 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/33|Tech News: 2020-33]] ==
<section begin="technews-2020-W33"/><div class="plainlinks mw-content-ltr" lang="en" dir="ltr"><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2020/33|Translations]] are available.
'''Recent changes'''
* [[m:WMDE_Technical_Wishes/Move_files_to_Commons|FileImporter and FileExporter]] became standard features on all Wikis during the first week of August. They help you transfer files from local wikis to Wikimedia Commons with the original file information and history intact. [https://phabricator.wikimedia.org/T140462]
'''Problems'''
* The mobile skin displays a message at the bottom of the page about who edited last. This message showed raw wikitext. This has now been fixed. Some messages in [[mw:Structured Discussions|Structured Discussions]] and [[mw:Content translation|content translation]] may still appear as raw wikitext. Developers are working on it. [https://phabricator.wikimedia.org/T259565]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|Recurrent item]] The [[mw:MediaWiki 1.36/wmf.4|new version]] of MediaWiki will be on test wikis and MediaWiki.org from August 11. It will be on non-Wikipedia wikis and some Wikipedias from August 12. It will be on all wikis from August 13 ([[mw:MediaWiki 1.36/Roadmap|calendar]]).
'''Future changes'''
* All wikis will be read-only for a few minutes on September 1. This is planned between 13:30 and 15:30 UTC. More information will be published in Tech News and will also be posted on individual wikis in the coming weeks. [https://phabricator.wikimedia.org/T243314][https://phabricator.wikimedia.org/T244808]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2020/33|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div></div> <section end="technews-2020-W33"/> 2020年8月10日 (月) 16:06 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20353642 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/34|Tech News: 2020-34]] ==
<section begin="technews-2020-W34"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/34|翻訳]]されています。
'''最近の更新'''
* 「取り消し」リンクから編集を差し戻した場合、その編集には <code>取り消し</code> タグが付けられます。これは編集画面で一切の変更を行わずに取り消しをした場合にのみ発生します。取り消しのついでに別の編集を行なったとき、取り消しとして扱わないようにするためです。 [https://phabricator.wikimedia.org/T259014]
* [[mw:Special:MyLanguage/OOUI|OOUIの最新版]]は[[:w:ja: Internet Explorer 8| Internet Explorer 8]]の動作保証を行いません。今後Internet Explorer 8では表示が崩れたり、一部の機能が正常に動作しなくなります。[[m:Special:MyLanguage/Tech/News/2020/17|2020年17週の技術ニュース]]で既にお伝えした通りです。非常に古いブラウザにまで動作保証を行なった場合、別の問題が発生するためです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-August/093718.html]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-18|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-19|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-20|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 9月1日に全てのウィキが最大で1時間、読み取り専用の状態になります。時間はUTCで13:30から15:30の間を予定しています。詳報は来週の技術ニュースでお伝えします。これは備忘のための通知です。[[m:Tech/Server switch 2020|告知メッセージの翻訳]]にご協力ください。 [https://phabricator.wikimedia.org/T243314][https://phabricator.wikimedia.org/T244808]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W34"/> 2020年8月17日 (月) 20:41 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20366028 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/35|Tech News: 2020-35]] ==
<section begin="technews-2020-W35"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/35|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-25|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-26|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-27|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W35"/> 2020年8月24日 (月) 17:59 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20389773 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/35|Tech News: 2020-35]] ==
<section begin="technews-2020-W35"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/35|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-25|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-26|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-27|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W35"/> 2020年8月26日 (水) 11:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20389773 のリストを使用して送信したメッセージ -->
== Editing news 2020 #4 ==
<div class="plainlinks mw-content-ltr" lang="ja" dir="ltr">
<em>[[m:Special:MyLanguage/VisualEditor/Newsletter/2020/August|他の言語で読む]] • [[m:Special:MyLanguage/VisualEditor/Newsletter|多言語ニュースレター配信に登録する]]</em>
=== Reply tool ===
[[File:Reply Tool weekly edits- March - June, 2020.png|thumb|333x333px|The number of comments posted with the Reply Tool from March through June 2020. People used the Reply Tool to post over <strong>7,400 comments</strong> with the tool.]]
The [[mw:Special:MyLanguage/Talk pages project/replying|<strong>Reply tool</strong>]] has been available as a [[mw:Beta Feature|Beta Feature]] at the Arabic, Dutch, French and Hungarian Wikipedias since 31 March 2020. The [[mw:Talk pages project/replying#Metrics|first analysis showed positive results]].
* More than <strong>300 editors</strong> used the Reply tool at these four Wikipedias. They posted more than <strong>7,400 replies</strong> during the study period.
* Of the people who posted a comment with the Reply tool, about 70% of them used the tool multiple times. About 60% of them used it on multiple days.
* Comments from Wikipedia editors are positive. One said, <span lang="ar" dir="rtl">أعتقد أن الأداة تقدم فائدة ملحوظة؛ فهي تختصر الوقت لتقديم رد بدلًا من التنقل بالفأرة إلى وصلة تعديل القسم أو الصفحة، التي تكون بعيدة عن التعليق الأخير في الغالب، ويصل المساهم لصندوق التعديل بسرعة باستخدام الأداة.</span> ("I think the tool has a significant impact; it saves time to reply while the classic way is to move with a mouse to the Edit link to edit the section or the page which is generally far away from the comment. And the user reaches to the edit box so quickly to use the Reply tool.")[https://ar.wikipedia.org/w/index.php?diff=49242252&oldid=49242144]
The Editing team released the Reply tool as a Beta Feature at eight other Wikipedias in early August. Those Wikipedias are in the Chinese, Czech, Georgian, Serbian, Sorani Kurdish, Swedish, Catalan, and Korean languages. If you would like to use the Reply tool at your wiki, please tell [[User talk:Whatamidoing (WMF)]].
The Reply tool is still in active development. Per request from the Dutch Wikipedia and other editors, you will be able to [[phab:T249391|customize the edit summary]]. (The default edit summary is "Reply".) A "ping" feature is available in the Reply tool's visual editing mode. This feature searches for usernames. Per request from the Arabic Wikipedia, each wiki will be able to [[phab:T258743|set its own preferred symbol]] for pinging editors. Per request from editors at the Japanese and Hungarian Wikipedias, each wiki can [[phab:T249861|define a preferred signature prefix]] in the page [[MediaWiki:Discussiontools-signature-prefix]]. For example, some languages omit spaces before signatures. Other communities want to add a dash or a non-breaking space.
=== New requirements for user signatures ===
* The [[mw:Special:MyLanguage/New requirements for user signatures|new requirements for custom user signatures]] began on 6 July 2020. If you try to create a custom signature that does not meet the requirements, you will get an error message.
* Existing custom signatures that do not meet the new requirements will be unaffected <em>temporarily</em>. Eventually, all custom signatures will need to meet the new requirements. You can [https://signatures.toolforge.org check your signature and see lists of active editors] whose custom signatures need to be corrected. Volunteers have been contacting editors who need to change their custom signatures. If you need to change your custom signature, then please [[mw:Special:MyLanguage/New requirements for user signatures/Help|read the help page]].
=== Next: New discussion tool ===
Next, the team will be working on a tool for quickly and easily starting a new discussion section to a talk page. To follow the development of this new tool, please put the [[mw:Special:MyLanguage/Talk pages project/New discussion|New Discussion Tool]] project page on your watchlist.
[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]])
</div> 2020年8月31日 (月) 15:11 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=20394826 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/36|Tech News: 2020-36]] ==
<section begin="technews-2020-W36"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/36|翻訳]]されています。
'''問題点'''
* 念のためお知らせします。9月1日に全てのウィキにおいて数分間、閲覧専用になります。時間帯は14:00-15:00(UTC=日本時間同日23:00-24:00)の予定です。詳細は[[m:Tech/Server switch 2020|通知の内容]]をご確認ください。 [https://phabricator.wikimedia.org/T243314][https://phabricator.wikimedia.org/T244808]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W36"/> 2020年8月31日 (月) 20:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20411995 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/37|Tech News: 2020-37]] ==
<section begin="technews-2020-W37"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/37|翻訳]]されています。
'''今週の更新'''
* 通常、存在しないページか対象ページへのリダイレクト1版のみのページにのみページを移動させることができます。近日新しい利用者権限が追加され、編集者はどのような記事へのリダイレクトであってもリダイレクト1版だけのページに移動を行えるようになります。 [https://phabricator.wikimedia.org/T239277]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-08|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-09|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-09-10|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] 全てのMediaWiki [[:w:ja:アプリケーションプログラミングインタフェース|API]]モジュールは<code>watch</code>ではなく<code>watchlist</code>を使うようになります。これまでは統一されていませんでした。 [https://phabricator.wikimedia.org/T247915]
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/Android|アンドロイド版ウィキペディアアプリ]]の開発チームは巡回ツールの開発に取り組もうとしています。あなたや経験の浅い巡回者達にとってどのようなツールが使いやすいのかを開発チームに伝えてください。詳しくは[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Patrolling conversation|mediawiki.org のページ]]をご参照ください。
* [[m:Special:MyLanguage/OTRS|OTRS]]が新しいバージョンに更新されます。更新には2日ほどかかる予定です。この間、OTRSボランティアはシステムにアクセスできません。更新期間に届いたメールは更新完了後に配信されます。9月14日の08:00 (UTC) ごろに開始する予定ですが、今後、変更になるかもしれません。 [https://phabricator.wikimedia.org/T187984]
* アンドロイド版ウィキペディアアプリでは[[:mw:Wikimedia Apps/Team/Android/AppEditorTasks#Push Notifications for editors|プッシュ通知]]を受け取ることができます。誰かがあなたの会話ページに書き込みをしたり、編集が差し戻されたことを確認することができます。利用するには[[:w:en:Google Play Services|Google Play開発者サービス]]が必要です。Google Play開発者サービスを使わずにアプリを入手することも可能ですが、プッシュ通知は利用できません。Google Play開発者サービスは[[:w:en:Android KitKat|アンドロイド 4.4]]ユーザーがアプリを利用するためにも使われます。 [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android#Updates][https://phabricator.wikimedia.org/T146032]
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキメディアのコードレビューは今後、[[:w:ja:GitLab|GitLab]]に移行する方向です。ホストサーバーはウィキメディアサーバーの予定です。[[mw:GitLab consultation|協議]]にご参加ください。
* [[File:Octicons-tools.svg|15px|link=|高度]] [[phab:T262092|ベクタースキン]]のドロップダウンメニューは<code>.menu</code>クラスを使っていますが、将来的に機能しなくなります。代わりに<code>nav ul</code>を使用します。<code>.vectorTabs</code>と<code>.vectorMenu</code>も同様に機能しなくなります。一部のスクリプトは将来的に更新が必要になります。詳細を[[phab:T262092|Phabricatorで確認]]してください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W37"/> 2020年9月7日 (月) 16:00 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20427670 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/38|Tech News: 2020-38]] ==
<section begin="technews-2020-W38"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/38|翻訳]]されています。
'''問題点'''
* 先週、[[mw:Wikimedia Apps|ウィキペディアのアプリ]]は一時的に[[w:ja:Cascading Style Sheets|CSS]] が機能しなくなり、ページの表示が崩れていました。不具合自体はすぐに修正されましたが、CSSが無効の状態でキャッシュされたページが数時間にわたってアプリに表示されました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200909-mobileapps_config_change][https://phabricator.wikimedia.org/T262437]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-15|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-16|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-09-17|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W38"/> 2020年9月14日 (月) 16:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20446737 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/38|Tech News: 2020-38]] ==
<section begin="technews-2020-W38"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/38|翻訳]]されています。
'''問題点'''
* 先週、[[mw:Wikimedia Apps|ウィキペディアのアプリ]]は一時的に[[w:ja:Cascading Style Sheets|CSS]] が機能しなくなり、ページの表示が崩れていました。不具合自体はすぐに修正されましたが、CSSが無効の状態でキャッシュされたページが数時間にわたってアプリに表示されました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200909-mobileapps_config_change][https://phabricator.wikimedia.org/T262437]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-15|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-16|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-09-17|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W38"/> 2020年9月15日 (火) 00:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20446737 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/39|Tech News: 2020-39]] ==
<section begin="technews-2020-W39"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/39|翻訳]]されています。
'''最近の更新'''
* 差し戻された編集を示すためのタグが新しく実装されました。このタグは取り消し、巻き戻しあるいは手動差し戻しが行われた過去の編集に対して付けられます。 [https://phabricator.wikimedia.org/T254074][https://phabricator.wikimedia.org/T164307]
'''今週の更新'''
* 一定の時間内にウィキで実行できる操作の回数には制限があります。これは1分間の編集の回数や、1日当たり何人までメールを送信できるかなどといったものです。ただし、一部の権限を持つ利用者はどの制限の影響を受けません。まもなく、権限による影響を受けなかった場合の制限値を確認できるようになります。 [https://phabricator.wikimedia.org/T258888]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-23|ja}}に、その他のウィキには{{#time:n月j日|2020-09-24|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W39"/> 2020年9月21日 (月) 21:28 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20461072 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/40|Tech News: 2020-40]] ==
<section begin="technews-2020-W40"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/40|翻訳]]されています。
'''最近の更新'''
* 管理者は削除された特定版の差分を [[Special:AbuseLog|Special:AbuseLog]]で参照できるようになりました。これには[[Special:Undelete|Special:Undelete]]のインターフェースを利用します。 [https://phabricator.wikimedia.org/T261630]
* 編集者は自動的に利用者グループに分類されます。 たとえば閾値を超える回数と期間に達すると[[mw:Special:MyLanguage/Manual:Autoconfirmed users|自動承認された利用者]]に追加されます。[[mw:Special:MyLanguage/Extension:AbuseFilter|不正行為のフィルター]]には利用者に自動的に付与されるはずの利用者権限を、一定期間、遅らせる働きがあります。あるいはまた、既得の権限を除去することもできます。ウィキではそれぞれこの期間の変更を依頼できるようになりました。現状の既定は5日間です。 [https://phabricator.wikimedia.org/T231756]
'''問題点'''
* [[m:Tech/News/2019/34|昨年]]、新規の変更により不正行為フィルタの一部が実行されなくなりました。特定の処理について該当しない変数を入力した場合に、フィルタが実行不能になっていました。現在では修正済みです。 [https://phabricator.wikimedia.org/T230256]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-30|ja}}に、その他のウィキには{{#time:n月j日|2020-10-01|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* トークページもしくは変更履歴ページでは、他言語版への言語リンクが表示されません。あるいはまた記事ページの編集中にも、表示できません。その対策として、たとえば変更履歴ページのリンク先を他言語の同種のページにするかそれとも記事ページか未定です。[[phab:T262472|Phabricatorで討議]]に参加してください。
* リンクの色が変わる予定です。これは記事の部分とリンク部分の違いを、もっと明確に示すためです。詳細は[[phab:T213778|Phabricator に記述してあります]]。
* 利用者は個人設定で、通知の種類別にウェブ上もしくはメールで受け取るように指定ができます。今週末には<code>Apps</code>という新規項目が選択肢に追加される予定です。これは[[mw:Wikimedia Apps|Android および iOS のウィキペディア・アプリ]]でプッシュ通知の受信を採用する選択肢ができたことを反映するためです。テストウィキで[https://test.wikipedia.org/wiki/Special:Preferences#mw-prefsection-echo 個人設定]を表示できます。目標として、プッシュ通知の採用は Android 版アプリで10月、 iOS 版は来年2021年初頭を見込んでいます。 [https://phabricator.wikimedia.org/T262936]
* まもなくウォッチリストに期限付きでページを追加できるようになります。たとえば特定のページをごく短期的にウォッチしたいけれど、ずっとウォッチリストに載せたくない場合に役立ちます。現状では[[mw:MediaWiki|mediawiki.org]] で有効で、他のウィキにも追って展開の予定です。[[m:Special:MyLanguage/Community Tech/Watchlist Expiry|詳細の閲読]]と[[m:Community Tech/Watchlist Expiry/Release Schedule|他のウィキへの展開の時期]]をそれぞれご確認ください。
* ウィキメディアンの皆さんが選んだ[[m:Special:MyLanguage/Coolest Tool Award|今年のもっともクールな技術のツール]]を公開しました。推薦も受付中です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W40"/> 2020年9月28日 (月) 21:24 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20483264 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/41|Tech News: 2020-41]] ==
<section begin="technews-2020-W41"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/41|翻訳]]されています。
'''最近の更新'''
* [https://consultation-stats.toolforge.org/ 新ツール]の導入により、どのウィキをホームとして活動する利用者が Meta の議論に参加しているか分かるようになりました。多くのウィキに影響を与える議論で、どのコミュニティが未参加なのか分かるようになります。
* ファイルをアップロードした利用者やページの言語を変更した利用者に対して感謝を示せるようになりました。 [https://phabricator.wikimedia.org/T254992]
'''問題点'''
* 先週展開した MediaWiki に不具合が多かったため、更新を差し戻しました。これに伴い先週、行われるはずだった更新の適用が遅れています。 [https://phabricator.wikimedia.org/T263177]
* すべての利用者が強制的にログアウトされました。ある利用者が他人名義でログインしていると報告したためです。現在は修正済みです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-October/093922.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] 多くのページで[[:w:ja:JavaScript|JavaScript]]のエラーが発生しています。このエラーに関する[https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/ 詳細]と、エラーが発生している[[:w:en:User:Jdlrobson/User scripts with client errors|ユーザースクリプトの一覧]]をそれぞれ参照できます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-07|ja}}に、その他のウィキには{{#time:n月j日|2020-10-08|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* リンクの直後にある文字列はリンクの一部として表示されます。例えば<code><nowiki>[[Child]]ren</nowiki></code>というリンクは単語全体をリンクの文字列として扱います。アラビア語版ウィキペディアの場合は単語の前後にある文字列をリンクとして扱うようになります。従来は単語の語頭にある数字と非英字のUnicode文字のみがリンクとして扱われていました。現在はラテン文字とアラビア文字をリンクの一部として扱っています。 [https://phabricator.wikimedia.org/T263266]
'''今後の予定'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)]から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W41"/> 2020年10月5日 (月) 16:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20515061 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/41|Tech News: 2020-41]] ==
<section begin="technews-2020-W41"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/41|翻訳]]されています。
'''最近の更新'''
* [https://consultation-stats.toolforge.org/ 新ツール]の導入により、どのウィキをホームとして活動する利用者が Meta の議論に参加しているか分かるようになりました。多くのウィキに影響を与える議論で、どのコミュニティが未参加なのか分かるようになります。
* ファイルをアップロードした利用者やページの言語を変更した利用者に対して感謝を示せるようになりました。 [https://phabricator.wikimedia.org/T254992]
'''問題点'''
* 先週展開した MediaWiki に不具合が多かったため、更新を差し戻しました。これに伴い先週、行われるはずだった更新の適用が遅れています。 [https://phabricator.wikimedia.org/T263177]
* すべての利用者が強制的にログアウトされました。ある利用者が他人名義でログインしていると報告したためです。現在は修正済みです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-October/093922.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] 多くのページで[[:w:ja:JavaScript|JavaScript]]のエラーが発生しています。このエラーに関する[https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/ 詳細]と、エラーが発生している[[:w:en:User:Jdlrobson/User scripts with client errors|ユーザースクリプトの一覧]]をそれぞれ参照できます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-07|ja}}に、その他のウィキには{{#time:n月j日|2020-10-08|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* リンクの直後にある文字列はリンクの一部として表示されます。例えば<code><nowiki>[[Child]]ren</nowiki></code>というリンクは単語全体をリンクの文字列として扱います。アラビア語版ウィキペディアの場合は単語の前後にある文字列をリンクとして扱うようになります。従来は単語の語頭にある数字と非英字のUnicode文字のみがリンクとして扱われていました。現在はラテン文字とアラビア文字をリンクの一部として扱っています。 [https://phabricator.wikimedia.org/T263266]
'''今後の予定'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)]から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W41"/> 2020年10月5日 (月) 17:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20515061 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/42|Tech News: 2020-42]] ==
<section begin="technews-2020-W42"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/42|翻訳]]されています。
'''問題点'''
* 先々週に展開されたMediaWikiに問題が発生した影響で、先週予定されていたアップデートの反映も遅れています。 [https://phabricator.wikimedia.org/T263177][https://phabricator.wikimedia.org/T263178][https://lists.wikimedia.org/pipermail/wikitech-l/2020-October/093944.html]
'''今週の更新'''
* 節の編集を行った際、[[mw:Special:MyLanguage/Manual:Live preview|ライブプレビュー]]でテンプレートが表示されませんでした。この問題は修正済です。ライブプレビューを有効にすると、[[w:ja:Cascading Style Sheets|CSS]]および[[w:ja:JavaScript|JavaScript]]ページもテストすることができます。こちらの機能にも不具合が発生していましたが、修正されました。 [https://phabricator.wikimedia.org/T102286][https://phabricator.wikimedia.org/T186390]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-14|ja}}に、その他のウィキには{{#time:n月j日|2020-10-15|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 近日中に[[mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]]の新しい安定版を公開する予定です。 [https://lists.wikimedia.org/pipermail/pywikibot/2020-October/010056.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W42"/> 2020年10月12日 (月) 15:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20528295 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/43|Tech News: 2020-43]] ==
<section begin="technews-2020-W43"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/43|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-20|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-21|ja}}に、その他のウィキには{{#time:n月j日|2020-10-22|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)] 頃から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]拡張機能の<code dir=ltr>rmspecials()</code> 機能が近日中に更新され、 "半角スペース" を除去しなくなります。どのウィキでもフィルターが正常に機能するよう、<code dir=ltr>rmspecials()</code> を使用する必要があるときには <code dir=ltr>rmwhitespace()</code> で挟むように推奨されます。既存の使用箇所を検出するには、[[Special:AbuseFilter/ja|不正利用フィルター管理]]の検索機能を使ってください。 [https://phabricator.wikimedia.org/T263024]
* 一部のガジェットとユーザースクリプトではHTMLの <code dir=ltr style="white-space:nowrap;">#jump-to-nav</code> のIDが指定されたdiv要素を使用しています。このdiv要素がまもなく除去されます。メンテナはこれを <code dir=ltr>#siteSub</code> または <code dir=ltr style="white-space:nowrap;">#mw-content-text</code> に置き換える必要があります。影響を受けるスクリプトについては[[phab:T265373]]をご確認ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W43"/> 2020年10月19日 (月) 16:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20550811 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/44|Tech News: 2020-44]] ==
<section begin="technews-2020-W44"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/44|翻訳]]されています。
'''問題点'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)] 頃から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
* 先週、モバイル版ウォッチリストや最近の更新から差分を表示しようとしたとき、差分ではなく本文を表示してしまう不具合がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T265654]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[m:Special:MyLanguage/Interface administrators|インターフェース管理者]]の利用者グループが2018年に導入されてから、管理者権限のみを持つ利用者は削除されたCSS/JSの履歴を表示できないようになっていました。このたび機能が修正され、インターフェース管理者権限がなくてもこの履歴を閲覧できるようになりました。 [https://phabricator.wikimedia.org/T202989]
* [[Special:Tags|タグ付け]]機能に不具合が発生していました。差し戻しを行った直後に保護などの操作を行うと、ソフトウェアによって「{{int:Tag-mw-reverted}}」のタグが付けられてしまうようになっていました。この不具合は修正されており、今後行われる編集には誤ったタグが付かなくなります。 [https://phabricator.wikimedia.org/T265312]
* [[mw:Special:MyLanguage/Talk pages project/replying|返信ツール]]は11月から殆どのウィキペディアでオプトインの[[mw:Special:MyLanguage/Beta Feature|ベータ版機能]]として使えるようになります。日付が最終決定した際に改めてお知らせします。 [https://phabricator.wikimedia.org/T266303]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W44"/> 2020年10月26日 (月) 17:39 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20574890 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/44|Tech News: 2020-44]] ==
<section begin="technews-2020-W44"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/44|翻訳]]されています。
'''問題点'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)] 頃から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
* 先週、モバイル版ウォッチリストや最近の更新から差分を表示しようとしたとき、差分ではなく本文を表示してしまう不具合がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T265654]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[m:Special:MyLanguage/Interface administrators|インターフェース管理者]]の利用者グループが2018年に導入されてから、管理者権限のみを持つ利用者は削除されたCSS/JSの履歴を表示できないようになっていました。このたび機能が修正され、インターフェース管理者権限がなくてもこの履歴を閲覧できるようになりました。 [https://phabricator.wikimedia.org/T202989]
* [[Special:Tags|タグ付け]]機能に不具合が発生していました。差し戻しを行った直後に保護などの操作を行うと、ソフトウェアによって「{{int:Tag-mw-reverted}}」のタグが付けられてしまうようになっていました。この不具合は修正されており、今後行われる編集には誤ったタグが付かなくなります。 [https://phabricator.wikimedia.org/T265312]
* [[mw:Special:MyLanguage/Talk pages project/replying|返信ツール]]は11月から殆どのウィキペディアでオプトインの[[mw:Special:MyLanguage/Beta Feature|ベータ版機能]]として使えるようになります。日付が最終決定した際に改めてお知らせします。 [https://phabricator.wikimedia.org/T266303]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W44"/> 2020年10月26日 (月) 19:23 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20574890 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/45|Tech News: 2020-45]] ==
<section begin="technews-2020-W45"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/45|翻訳]]されています。
'''最近の更新'''
* お使いのブラウザが非常に古い[[:w:ja:Transport Layer Security|TLS]]を採用している場合、ウィキメディアのウィキを閲覧できなくなりました。これはダウングレード攻撃([[:w:en:Downgrade attack|downgrade attack]])を招きかねず、全員のセキュリティに関わる問題だからです。2020年10月29日より、旧版の TLS を使用する利用者はウィキメディア・プロジェクトに接続できなくなります。[[:wikitech:HTTPS/Browser Recommendations|推奨されるブラウザ]]の一覧をご用意しました。最新の OS とブラウザはこれまでどおりウィキメディアのプロジェクト群につながります。 [https://phabricator.wikimedia.org/T258405]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[{{ns:14}}:{{MediaWiki:nonnumeric-formatnum}}|formatnumの引数に数値以外を設定したページ]]を対象とした新しい[[mw:Special:MyLanguage/Help:Tracking categories|自動追跡カテゴリ]]が利用できるようになりました。<code><nowiki>{{formatnum:TECHNEWS}}</nowiki></code> のように無効な(数値以外に対する) <code><nowiki>{{formatnum}}</nowiki></code> パーサー関数を指定したページを収集します。なお、<code><nowiki>{{formatnum:123,456}}</nowiki></code> のようなものも無効であることに注意してください。[[mw:Special:MyLanguage/Help:Magic_words#formatnum|ドキュメント]]でで説明しているように、確実かつ正確にローカライズできるよう、引数は<u>整形されていないもの</u>でなければなりません。追跡カテゴリは問題のある使用方法や二重フォーマットを探すのに役立ちます。新しい追跡カテゴリの名前は[https://translatewiki.net/w/i.php?title=Special:Translate&showMessage=nonnumeric-formatnum&group=core&optional=1&action=translate translatewikで翻訳することができます]。 [https://phabricator.wikimedia.org/T237467]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-11-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-11-04|ja}}に、その他のウィキには{{#time:n月j日|2020-11-05|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* 管理者とスチュワードの皆さんは新しい特別ページ(Special:CreateLocalAccount)を使い、グローバルアカウントに紐付けられたローカルアカウントを強制的に作成することができるようになる予定です。アカウント作成が阻止されてしまったときに役立ちます(ブロックもしくはフィルタが要因の場合。) [https://phabricator.wikimedia.org/T259721]
* [[mw:Special:MyLanguage/Talk pages project/replying|返信ツール]]は11月4日水曜日(UTC)より大部分のウィキペディアで選択制の[[mw:Special:MyLanguage/Beta Feature|ベータ機能]]として導入します。この変更の対象外は英語版、ロシア語版、ドイツ語版のウィキペディアと、小規模で特殊な状況のウィキペディア数件です。詳細は[[mw:Special:MyLanguage/Help:DiscussionTools|ヘルプページ]]ならびに[[mw:Help:DiscussionTools/Why can't I reply to this comment?|トラブルシューティングのガイド]]「ご参照ください。 [https://phabricator.wikimedia.org/T266303]
'''今後の予定'''
* 負の独立変数が与えられたとき、<code><nowiki>{{formatnum}}</nowiki></code>の出力に対してユニコードのマイナス記号 (− U+2212) を使うかどうか、議論が進行中です。 [https://phabricator.wikimedia.org/T10327]
* 将来的に[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation|アカウントを登録していない利用者の IP アドレスは誰にも表示されなくなります]]。代わりにエリアスが発行されます。荒らし対策の新しい利用者権限もしくはオプトイン機能をより多くの人にご用意し、非登録利用者の IP を開示します。今回の利用者権限もしくはオプトイン機能の付与には特定の要件を設けます。また荒らし対策の新しいツールも提供する予定です。まだ過程の初期のため、開発者はコミュニティから情報を集めている段階で、開発の提言に備えています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W45"/> 2020年11月2日 (月) 16:10 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20604769 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/46|Tech News: 2020-46]] ==
<section begin="technews-2020-W46"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/46|翻訳]]されています。
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[m:WMDE Technical Wishes/ReferencePreviews|出典のプレビュー]]を見ることができるようになりました。カーソルを当てると脚注のプレビューを表示する機能で、これまで[[mw:Beta Features|ベータ版機能]]として運用されていましたが、このたび正式化され、既定で有効となります。設定から無効にすることも可能です。開発者はまず中小規模のウィキで実装する計画です。ご利用のウィキで早期の導入を検討する場合は[[m:User talk:Michael Schönitzer (WMDE)|ご連絡]]をお待ちしています。 [https://lists.wikimedia.org/pipermail/wikitech-ambassadors/2020-November/002373.html]
* 11月16日以降、短期間ですがカテゴリのソートが機能しなくなります。開発者が[[:w:en:International Components for Unicode|ユニコードの国際化コンポーネント]]を新バージョンへ移行する作業を行うためです。移行後にスクリプトを使用して既存のカテゴリのソートを修正します。対象ウィキの規模にもよりますが、作業時間は数時間から数日かかる見込みです。詳細は[[mw:Special:MyLanguage/Wikimedia Technical Operations/ICU announcement|こちらをご参照ください]]。 [https://phabricator.wikimedia.org/T264991][https://phabricator.wikimedia.org/T267145]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W46"/> 2020年11月9日 (月) 15:50 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20634159 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/47|Tech News: 2020-47]] ==
<section begin="technews-2020-W47"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/47|翻訳]]されています。
'''最近の更新'''
* カテゴリ内のページ一覧は[[:w:en:International Components for Unicode|ライブラリ]]を使用して、各ウィキの言語に応じた並べ替えが行われています。11月16日、殆どの言語版で一時的に正しい並べ替えが行われなくなります。開発者が新しいバージョンのライブラリへのアップグレードを行うためです。作業完了後にスクリプトを使用して既存のカテゴリ内の並べ直しが行われます。ウィキの規模によって、並べ直しには数時間から数日程度かかる見込みです。[[mw:Special:MyLanguage/Wikimedia Technical Operations/ICU announcement|詳細はこちらで]]ご覧いただけます。 [https://phabricator.wikimedia.org/T264991][https://phabricator.wikimedia.org/T267145]
'''今週の更新'''
* リダイレクトが使用できない[[mw:Special:MyLanguage/Help:Namespaces|名前空間]]にある2つのページの履歴を統合したとき、統合元の履歴を壊してしまう不具合がありました。まもなく修正される見込みです。 [https://phabricator.wikimedia.org/T93469]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-11-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-11-18|ja}}に、その他のウィキには{{#time:n月j日|2020-11-19|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2021|コミュニティ要望アンケート]]の提案を受付中です。来季以降に[[m:Community Tech|コミュニティ技術チーム]]が取り組む課題を決めるためのアンケート調査です。提案の受付期間は11月16日から30日まで、提案への投票期間は12月8日から同月21日までです。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W47"/> 2020年11月16日 (月) 15:37 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20669023 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/48|Tech News: 2020-48]] ==
<section begin="technews-2020-W48"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/48|翻訳]]されています。
'''最近の更新'''
* [[Special:Log|Special:Log]]のタイムスタンプがリンクになりました。リンクを辿ると Special:Log でその項目のみを単独で表示します。編集履歴のページでタイムスタンプのリンクを辿るのと似たような機能です。 [https://phabricator.wikimedia.org/T207562]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] Wikimedia [[wikitech:Portal:Cloud VPS|Cloud VPS]] はウィキメディア・ムーブメントの技術プロジェクトをホストしています。年1回、古くて使われていないプロジェクトを削除する時期になりましたので、開発者の皆さんは使用中の[[wikitech:News/Cloud VPS 2020 Purge|プロジェクトの継続使用を申請]]してください。申請のなかったプロジェクトは12月1日以降は閉鎖され、1月1日以降に順次削除される可能性があります。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-November/094054.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W48"/> 2020年11月23日 (月) 17:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20698111 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/49|Tech News: 2020-49]] ==
<section begin="technews-2020-W49"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/49|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-12-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-12-02|ja}}に、その他のウィキには{{#time:n月j日|2020-12-03|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/iOS|iOS 版ウィキペディア・アプリ]]で表示する編集履歴の件数が増えます。最近の更新について、試行段階としてそれぞれの記事がたどった編集履歴を見やすくします。まず[[:w:ja:A/Bテスト|テスト]]として iOS アプリの特定の利用者にのみ表示されます。 [https://phabricator.wikimedia.org/T241253][https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/iOS/Breaking_Down_the_Wall]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:SQL|SQL]]クエリに使える[[wikitech:Wiki replicas|Wiki Replicas]]というものがあります。[https://quarry.wmflabs.org/ Quarry]、[https://wikitech.wikimedia.org/wiki/PAWS PAWS]その他の方法を使って利用します。Wiki Replicas を安定させる変更を2件行う予定です。クロス・データベース<code>JOINS</code> は廃止の予定です。また直接開いた場合は、クエリを実行できるデータベースは1件のみになります。実施時期は2021年2月の計画です。もし皆さんに影響がありそうで助けが必要な場合は、[[phab:T268498|Phabricatに投稿する]]もしくは[[wikitech:Talk:News/Wiki Replicas 2020 Redesign|Wikitech]]にてご相談ください。 [https://wikitech.wikimedia.org/wiki/News/Wiki_Replicas_2020_Redesign]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W49"/> 2020年11月30日 (月) 17:45 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20728523 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/50|Tech News: 2020-50]] ==
<section begin="technews-2020-W50"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/50|翻訳]]されています。
'''最近の更新'''
* ウォッチリストにページを追加するとき、ウォッチリストから自動で削除される期限を指定できるようになりました。この機能はいくつかのウィキではすでに導入済みです。 [https://meta.wikimedia.org/wiki/Community_Tech/Watchlist_Expiry][https://www.mediawiki.org/wiki/Help:Watchlist_expiry]
'''今週の更新'''
* ウィキページで使われたウィキデータの情報を、最近の更新に表示したりウォッチリストに追加できます。有効にするには個人設定→ウォッチリスト→「ウィキデータの編集をウォッチリストに表示」をオンにします。するとウィキメディアのウィキで最近の更新とウォッチリストでウィキデータの説明の変更を見ることができるようになります。ご利用のウィキの言語に限定され、他言語版の編集は反映されません。 [https://lists.wikimedia.org/pipermail/wikidata/2020-November/014402.html][https://phabricator.wikimedia.org/T191831]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-12-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-12-09|ja}}に、その他のウィキには{{#time:n月j日|2020-12-10|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 12月8日から同21日まで、[[m:Special:MyLanguage/Community Wishlist Survey 2021|コミュニティ要望アンケート]]では提案に対する投票を受け付けています。これにより[[m:Community Tech|コミュニティ技術チーム]]の作業課題が決まります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W50"/> 2020年12月7日 (月) 16:15 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20754641 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/51|Tech News: 2020-51]] ==
<section begin="technews-2020-W51"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/51|翻訳]]されています。
'''最近の更新'''
* [[mw:Wikipedia for KaiOS|Wikipedia アプリ]]にはフィーチャーフォンの[[:w:ja:KaiOS|KaiOS]]用があります。2020年9月にインドで発表され、他の国でもダウンロードができるようになりました。 [https://diff.wikimedia.org/2020/12/10/growing-wikipedias-reach-with-an-app-for-kaios-feature-phones/]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-12-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-12-16|ja}}に、その他のウィキには{{#time:n月j日|2020-12-17|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W51"/> 2020年12月14日 (月) 21:34 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20803489 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/52|Tech News: 2020-52]] ==
<section begin="technews-2020-W52"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/52|翻訳]]されています。
'''技術ニュース'''
* [[w:ja:年末年始|年末年始]]に当たるため、技術ニュースの次号は2021年1月11日の発行になります。
'''最近の更新'''
* <code><nowiki>{{citation needed}}</nowiki></code>テンプレートはウィキペディアの記事中の特定の文に、情報源を加えるように促すため表示します。ビジュアルエディタを使用中にこのテンプレートをクリックすると、左記を説明するポップアップが現れますが、理由とそのテンプレートが追加された日時を示すようになりました。 [https://phabricator.wikimedia.org/T270107]
'''今週の更新'''
* 今週と来週は、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 地理情報に関して、今後、改善が必要な点の[[m:WMDE Technical Wishes/Geoinformation/Ideas|提案と協議]]を受け付けます。具体的には緯度経度、地図などが対象になります。
* ウィキによって、記法や地方語との切り替えに[[mw:Writing systems/LanguageConverter|LanguageConverter]]を使っている場合があります。これを利用する場合、ページ全体しか対象になりません。ページ内の一部分を対象にする<code><nowiki><langconvert></nowiki></code>タグが使えるようになる予定です。 [https://phabricator.wikimedia.org/T263082]
* オーバーサイトとスチュワードは[[Special:AbuseLog|特別:不正利用フィルター記録]]を1件ずつ非表示する機能があります。まもなく、チェックボックスを使って複数の項目を一括で非表示にできるようにする予定です。通常の編集を非表示にするときと同じ要領で項目を非表示にすることができます。実装は1月初旬の予定です。 [https://phabricator.wikimedia.org/T260904]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/52|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W52"/> 2020年12月21日 (月) 20:54 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20833836 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/02|Tech News: 2021-02]] ==
<section begin="technews-2021-W02"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/02|翻訳]]されています。
'''最近の更新'''
* 編集要約欄が未記入の場合、警告メッセージを表示する選択肢があります。個人設定で指定してください。これまでは [[:w:ja:CAPTCHA|CAPTCHA]]と衝突することがありましたが、現在では解決しています。 [https://phabricator.wikimedia.org/T12729]
* 任意のログ記録にリンクすることができます。その方法は、たとえばログのタイムスタンプを押すとリンクを取得できます。以前は、非公開のログ記録を閲覧する権限がある利用者にも、何も表示しませんでした。現在は、リンクが記録を表示するようになりました。 [https://phabricator.wikimedia.org/T269761]
* 管理者が使える [[:mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]は自動的に質の悪い編集を防止します。先週、変更箇所が3点ありました。
** フィルターの編集 UI に文字入力すると、シンタックスエラーを表示するようになりました。JavaScript で記述したページと似た機能です。正規表現に対して検出する文字列が空の場合、警告メッセージを表示します。さらに警告メッセージを追加する予定です。 [https://phabricator.wikimedia.org/T187686]
** [[m:Special:MyLanguage/Meta:Oversighters|オーバーサイト]]向けの[[Special:AbuseLog]] でチェックボックスを使い、フィルターの複数のログ記録をまとめて非表示にするようになりました。これにより通常の更新削除と同じ使い方ができます。 [https://phabricator.wikimedia.org/T260904]
** <span lang="en" dir="ltr" class="mw-content-ltr">When a filter matches too many actions after it has been changed it is "throttled". The most powerful actions are disabled. This is to avoid many editors getting blocked when an administrator made a mistake. The administrator will now get a notification about this "throttle".</span>
* [[File:Octicons-tools.svg|15px|link=|高度]] [https://skins.wmflabs.org/?#/add 新しい外装を作成]するツールが追加されました。また既存の[[mw:Special:MyLanguage/Manual:Skins|外装]]を[https://skins.wmflabs.org/?#/ 表示する]こともできます。[[mw:User talk:Jdlrobson|フィードバックを募集中]]です。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-December/094130.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] API を利用するボットは、ページの監視に自動的にアカウントの個人設定を反映しなくなりました。現在も<code>watchlist</code>を<code>watch</code> に設定することはできます。データベース上のウォッチリストのデータ量を減らす方策です。 [https://phabricator.wikimedia.org/T258108]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] の[[:mw:Extension:Scribunto/Lua reference manual#File metadata|ファイルのメタデータ]]の要素に長さを追加しました。 [https://phabricator.wikimedia.org/T209679]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:CSS|CSS]] と [[:w:ja:JavaScript|JavaScript]] コードページにはそれぞれ、行番号にリンクアンカーを設けました。 [https://phabricator.wikimedia.org/T29531]
* [[File:Octicons-sync.svg|12px|link=|定例]] 先週、MediaWikiの[[mw:MediaWiki 1.36/wmf.25|バージョン更新]]を実施しました。変更点は763 あり、[[mw:MediaWiki 1.36/wmf.25/Changelog|詳細なログ]]をご参照ください。大部分はとても細かな変更であり、皆さんに影響はないと見られます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-13|ja}}に、その他のウィキには{{#time:n月j日|2021-01-14|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W02"/> 2021年1月11日 (月) 15:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20950047 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/03|Tech News: 2021-03]] ==
<section begin="technews-2021-W03"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/03|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-20|ja}}に、その他のウィキには{{#time:n月j日|2021-01-21|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Special:MyLanguage/Growth|Growth チーム]]では機能を追加し、さらに多くのウィキペディアで[[mw:Special:MyLanguage/Growth/Personalized first day/Newcomer tasks/Experiment analysis, November 2020|訪問者がもっと編集に参加するように働きかける]]計画です。[https://translatewiki.net/w/i.php?title=Special:Translate&group=ext-growthexperiments&language=&filter=&action=translate インターフェースの翻訳]を手伝ってください。
* Wikimedia コモンズは [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210126T07 {{#time:n月j日|2021-01-26|ja}} 07:00 (UTC)] から数分ほど、読み込み専用になります。 [https://phabricator.wikimedia.org/T271791]
* [[m:Special:MyLanguage/MassMessage|MassMessage]] の投稿は今後、自動的にタイムスタンプを付ける計画です。これは MassMessage を使って送信者がページを送れるようになり、ページには署名しにくい点の対策です。もし MassMessage の投稿にタイムスタンプをつけてはいけない場合をご存知でしたら、[[phab:T270435|開発者に連絡をお願いします]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W03"/> 2021年1月18日 (月) 16:10 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20974628 のリストを使用して送信したメッセージ -->
== Editing news 2021 #1 ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr">
<i>[[metawiki:VisualEditor/Newsletter/2021/January|Read this in another language]] • [[m:VisualEditor/Newsletter|Subscription list for this multilingual newsletter]]</i>
=== Reply tool ===
[[File:Junior Contributor Reply Tool and full page edit completion rate.png|alt=Graph of Reply tool and full-page wikitext edit completion rates|thumb|300px|Completion rates for comments made with the Reply tool and full-page wikitext editing. Details and limitations are in this [https://nbviewer.jupyter.org/github/wikimedia-research/Discussion-tools-analysis-2020/blob/master/Engagement-Metrics/Reply-Tool-Workflow-Engagement-Metrics.ipynb#Reply-Tool-(Wikitext-and-VE)-vs-Full-Page-Wikitext report].]]
The [[mw:Special:MyLanguage/Talk pages project/replying|<strong>Reply tool</strong>]] is available at most Wikipedias.
* The Reply tool has been deployed as an opt-out [[Special:Preferences#mw-prefsection-editing|preference]] to all editors at the Arabic, Czech, and Hungarian Wikipedias.
* It is also available as a [[mw:Special:MyLanguage/Beta Feature|Beta Feature]] at almost all Wikipedias except for the English, Russian, and German-language Wikipedias. If it is not available at your wiki, you can request it by following [[mw:Topic:W1crei3lyn3mvewc|these simple instructions]].
<strong>Research notes:</strong>
* As of January 2021, <strong>more than 3,500 editors</strong> have used the Reply tool to post about <strong>70,000 comments</strong>.
* We have preliminary data from the Arabic, Czech, and Hungarian Wikipedia on the Reply tool. [[mw:Special:MyLanguage/Talk pages project/Glossary|Junior Contributors]] who use the Reply tool are more likely to publish the comments they start writing than those who use full-page wikitext editing.[https://nbviewer.jupyter.org/github/wikimedia-research/Discussion-tools-analysis-2020/blob/master/Engagement-Metrics/Reply-Tool-Workflow-Engagement-Metrics.ipynb#Reply-Tool-(Wikitext-and-VE)-vs-Full-Page-Wikitext]
* The Editing and Parsing teams have significantly reduced the number of edits that affect other parts of the page. About 0.3% of edits did this during the last month.[https://dtcheck.toolforge.org/] Some of the remaining changes are automatic corrections for [[Special:LintErrors]].
* [[File:Венов_дијаграм.svg|30px]] <strong>A large [[w:en:A/B test|A/B test]] will start soon.</strong>[https://phabricator.wikimedia.org/T252057] This is part of [[mw:Talk pages project/replying#Step%204:%20A/B%20test|the process]] to offer the Reply tool to everyone. During this test, half of all editors at [[phab:T267382|24 Wikipedias]] will have the Reply tool automatically enabled, and half will not. You can still turn it on or off for your own account in [[Special:Preferences]].
=== New discussion tool ===
[[File:New Discussion Tool v1.0.png|thumb|380px|Screenshot of version 1.0 of the [[mw:Talk_pages_project/New_discussion|New Discussion Tool]] prototype.]]
The new tool for [[mw:Talk pages project/New discussion|starting new discussions]] (new sections) will join the Discussion tools in [[Special:Preferences#mw-prefsection-betafeatures]] at the end of January. You can try the tool for yourself.[https://patchdemo.wmflabs.org/wikis/3e14959a196db0f7b0c32a35c99dc0fc/w/index.php/Project:Teahouse] You can leave feedback [[mw:Topic:Vzswfe2hn2zuuwtc|in this thread]] or on the talk page.
=== Next: Notifications ===
[[File:White square with question mark.png|left|frameless|60px]]
During [[mw:Special:MyLanguage/Talk pages consultation 2019|Talk pages consultation 2019]], editors [[mw:Special:MyLanguage/Talk pages consultation 2019/Phase 1 report#Notifications|said]] that it should be easier to know about new activity in conversations they are interested in. The [[mw:Talk pages project/Notifications|Notifications]] project is just beginning. What would help you become aware of new comments? What's working with the current system? Which pages at your wiki should the team look at? Please post your advice at [[mw:Talk:Talk pages project/Notifications|notifications-talk]].
–[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|talk]])
</div> 2021年1月21日 (木) 18:39 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=20974627 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/04|Tech News: 2021-04]] ==
<section begin="technews-2021-W04"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/04|翻訳]]されています。
'''問題点'''
* Wikimedia コモンズでは[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210126T07 {{#time:n月j日|2021-01-26|ja}}7:00 (UTC)] から、[[:wikitech:Main Page|Wikitech]] では[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210128T09 {{#time:n月j日|2021-01-28|ja}} 09:00 (UTC)] から、それぞれ短い時間、閲覧はできても編集はできない状態になります。 [https://phabricator.wikimedia.org/T271791][https://phabricator.wikimedia.org/T272388]
'''今週の更新'''
* 第1陣のウィキで[[m:WMDE Technical Wishes/Bracket Matching|カッコ記号の整合]]を[[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] 構文強調機能に導入します。第1陣とはウィキペディアのドイツ語版とカタロニア語版とし、またその他のウィキメディア ウィキ群も対象にする可能性があります。実施は1月27日です。 [https://phabricator.wikimedia.org/T270238]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-27|ja}}に、その他のウィキには{{#time:n月j日|2021-01-28|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W04"/> 2021年1月25日 (月) 18:31 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21007423 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/04|Tech News: 2021-04]] ==
<section begin="technews-2021-W04"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/04|翻訳]]されています。
'''問題点'''
* Wikimedia コモンズでは[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210126T07 {{#time:n月j日|2021-01-26|ja}}7:00 (UTC)] から、[[:wikitech:Main Page|Wikitech]] では[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210128T09 {{#time:n月j日|2021-01-28|ja}} 09:00 (UTC)] から、それぞれ短い時間、閲覧はできても編集はできない状態になります。 [https://phabricator.wikimedia.org/T271791][https://phabricator.wikimedia.org/T272388]
'''今週の更新'''
* 第1陣のウィキで[[m:WMDE Technical Wishes/Bracket Matching|カッコ記号の整合]]を[[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] 構文強調機能に導入します。第1陣とはウィキペディアのドイツ語版とカタロニア語版とし、またその他のウィキメディア ウィキ群も対象にする可能性があります。実施は1月27日です。 [https://phabricator.wikimedia.org/T270238]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-27|ja}}に、その他のウィキには{{#time:n月j日|2021-01-28|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W04"/> 2021年1月25日 (月) 20:48 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21007423 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/05|Tech News: 2021-05]] ==
<section begin="technews-2021-W05"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/05|翻訳]]されています。
'''問題点'''
* 差分表示のとき、[[:w:ja:IPv6アドレス|IPv6 アドレス]]はすべて小文字で表示されます。しかし[[Special:Contributions|特別:投稿記録]]はIPアドレスを大文字限定で認識していたため、リンク切れの原因になっていました。現在は修正されています。 [https://phabricator.wikimedia.org/T272225]
'''今週の更新'''
* ウィキデータでは近々、多言語版ウィキソースにリンクできるようになります。 [https://phabricator.wikimedia.org/T138332]
* 単語と数字など、2要素の間にスペースを挟み、それでいて無用な改行を発生させないため、編集者はしばしば「[[w:ja: ノーブレークスペース |ノーブレークスペース]]」を使うことがあります。この特殊な文字列を手打ちではなくメニューの記号から選んで入力できるようになりました。対象はウィキ文エディタの2010年版と2017年版と、ビジュアルエディタです。ビジュアルエディタでは、ノーブレークスペースはグレーで表示します。 [https://phabricator.wikimedia.org/T70429][https://phabricator.wikimedia.org/T96666]
* [[File:Octicons-tools.svg|15px|link=| 高度]] ウィキでは[[mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]を使い、質の悪い編集を防止しています。フィルターの管理でIP範囲に使える構文に<code>1.2.3.4 - 1.2.3.55</code>や<code>1.2.3.4/27</code>が加わりました。 [https://phabricator.wikimedia.org/T218074]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.29|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-03|ja}}に、その他のウィキには{{#time:n月j日|2021-02-04|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Skin:Minerva Neue|ミネルバ]]外装はウィキメディアのウィキ群が携帯機器向けに採用しています。ページが保護されていて編集できない場合、通常はウィキコードのソースを閲覧することができます。しかし、携帯機器ではこの機能が使用できません。現在、問題の修正に取り組んでいます。また、文字の一部が折り重なって表示されることがあります。その場合は皆さんのコミュニティで[[MediaWiki:Protectedpagetext|MediaWiki:Protectedpagetext]] を更新し、携帯機器で機能するようにしてください。[[phab:T208827|詳細はこちら]]をご参照ください。 [https://www.mediawiki.org/wiki/Recommendations_for_mobile_friendly_articles_on_Wikimedia_wikis#Inline_styles_should_not_use_properties_that_impact_sizing_and_positioning][https://www.mediawiki.org/wiki/Recommendations_for_mobile_friendly_articles_on_Wikimedia_wikis#Avoid_tables_for_anything_except_data]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:wikitech:Portal:Cloud VPS|Cloud VPS]] ならびに [[:wikitech:Portal:Toolforge|Toolforge]] はウィキ群に接増するときに使用するIPアドレスを変更する予定です。新しい IP アドレスは、<code>185.15.56.1</code>です。変更実施は2月8日を計画しています。[[:wikitech:News/CloudVPS NAT wikis|詳細はこちら]]をご参照ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W05"/> 2021年2月1日 (月) 22:39 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21033195 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/06|Tech News: 2021-06]] ==
<section begin="technews-2021-W06"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/06|翻訳]]されています。
'''最近の更新'''
* Android版[[mw:Special:MyLanguage/Wikimedia Apps|Wikipedia アプリ]]にウォッチリストとトークページが導入されました。 [https://play.google.com/store/apps/details?id=org.wikipedia]
'''今週の更新'''
* [[Special:Watchlist|特別:ウォッチリスト]]に登録すると、そのページが変更されたときに通知が届きます。どのウィキでもウォッチリストにページを追加できます。2月11日 (UTC)、Meta に[[:mw:Special:MyLanguage/Extension:GlobalWatchlist|グローバルウォッチリスト]]拡張機能を導入する予定です。この機能を使うと各ウィキでウォッチしているページの更新をひとつのページにまとめて表示することができます。この新しいウォッチリストは Meta の[[m:Special:GlobalWatchlist|Special:GlobalWatchlist]] をご参照ください。[[m:Special:GlobalWatchlistSettings|Special:GlobalWatchlistSettings]]では監視するウィキ群ほかの設定ができます。対象とするウィキは合計5件までです。 [https://phabricator.wikimedia.org/T260862]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.30|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-10|ja}}に、その他のウィキには{{#time:n月j日|2021-02-11|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 管理者が[[mw:Special:MyLanguage/Help:Protecting and unprotecting pages|保護操作を行う]]ページに対して[[mw:UX standardization|OOUI look]]を採用する予定です。[[Special:Import|特別:インポート]]も同様に外見を刷新します。これにより携帯端末での操作が容易になります。 [https://phabricator.wikimedia.org/T235424][https://phabricator.wikimedia.org/T108792]
* 2月17日 07:00 (UTC) より短い時間ですが一部のサービスが利用できくなり見込みです。新規の[[m:Special:MyLanguage/Wikimedia URL Shortener|短縮リンク生成]]、翻訳、通知、[[mw:Reading/Reading Lists|リーディングリスト]]への追加、[[:w:ja:バウンスメール|バウンスメール]]の記録などが正常に行われない可能性があります。原因はデータベースの管理作業を実施するためです。 [https://phabricator.wikimedia.org/T273758]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術ニュースの[[m:Tech/News/2021/05|先週号]]で [[:wikitech:Portal:Cloud VPS|Cloud VPS]] と [[:wikitech:Portal:Toolforge|Toolforge]] からウィキに接続する IP アドレスを2月8日に変更するとお知らせしましたが、実施が遅れています。後日改めて実施する予定です。 [https://wikitech.wikimedia.org/wiki/News/CloudVPS_NAT_wikis]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W06"/> 2021年2月8日 (月) 17:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21082948 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/07|Tech News: 2021-07]] ==
<section begin="technews-2021-W07"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/07|翻訳]]されています。
'''問題点'''
* MediaWiki の新しいバージョンに不具合がありました。アップデートによって問題が発生したため開発者は旧版への巻き戻しを行いました。予定された新機能の導入は延期される予定です。 [https://lists.wikimedia.org/pipermail/wikitech-l/2021-February/094255.html][https://lists.wikimedia.org/pipermail/wikitech-l/2021-February/094271.html]
* 2月17日 07:00 (UTC) より短い時間ですが一部のサービスが利用できない見込みです。新規の[[m:Special:MyLanguage/Wikimedia URL Shortener|短縮URLの生成]]、翻訳、通知、[[mw:Reading/Reading Lists|リーディングリスト]]への追加、[[:w:ja:バウンスメール|バウンスメール]]の記録などが正常に行われない可能性があります。データベースのメンテナンスを実施するためです。 [https://phabricator.wikimedia.org/T273758]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.31|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-17|ja}}に、その他のウィキには{{#time:n月j日|2021-02-18|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W07"/> 2021年2月15日 (月) 17:56 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21105437 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/08|Tech News: 2021-08]] ==
<div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/08|翻訳]]されています。
'''最近の更新'''
* ビジュアルエディターに画像を検索する[[:c:Commons:Structured data/Media search|MediaSearch]](メディアサーチ)を導入しました。挿絵がほしいと思った時、ビジュアルエディターを使いながらコモンズから画像を選べます。目標は編集者がよりよい画像を探せるようにすることです。 [https://phabricator.wikimedia.org/T259896]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]が新しく[[:w:en:Futhark (programming language)|Futhark]]、[[:w:ja:Graphviz|Graphviz]]、[[:w:ja:DOT言語|DOT]]、CDDL、AMDGPUに対応しました。 [https://phabricator.wikimedia.org/T274741]
'''問題点'''
* [[mw:Special:MyLanguage/Extension:EasyTimeline|タイムライン]]を編集するとテキストが全て除去されてしまうことがありました。これはバグによるもので、現在は修正済みです。タイムラインを正常な表示に戻すには、タイムラインを再度編集する必要があるかもしれません。 [https://phabricator.wikimedia.org/T274822]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.32|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-24|ja}}に、その他のウィキには{{#time:n月j日|2021-02-25|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:Rust (プログラミング言語)|Rust言語]]を使ったウィキメディアウィキでの作業に興味がある開発者と利用者向けの[[:m:Wikimedia Rust developers user group|利用者グループ]]があります。ウィキの機能を改良したい人の参加や勧誘をお待ちしています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div>
----
2021年2月23日 (火) 00:18 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21134058 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/09|Tech News: 2021-09]] ==
<div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/09|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Growth チーム用ツール]]を使用しているウィキでは各新規参加者を担当するメンターの名前を[[mw:Special:MyLanguage/Help:Growth/Mentorship/Integrating_mentorship|マジックワード]]で表示できるようになりました。ウェルカムメッセージやユーザーボックスで使用することができます。
* 新しいバージョンの[[c:Special:MyLanguage/Commons:VideoCutTool|ビデオカットツール]]が利用できます。クロップ、トリミング、オーディオの無効化、映像の回転などを行うことができます。この機能は開発者アウトリーチプログラムの一環として作成されています。
'''問題点'''
* [[mw:Special:MyLanguage/Manual:Job queue|ジョブキュー]]に問題が発生していました。一部の機能が変更を保存せず、メッセージ一斉送信に遅延が生じました。ウィキの編集には影響ありませんでした。 [https://phabricator.wikimedia.org/T275437]
* Firefox または Safari の最新版を使用している一部の編集者は、統一アカウントで自動的なログインを行えないことがあります。 [https://phabricator.wikimedia.org/T226797]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.33|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-03|ja}}に、その他のウィキには{{#time:n月j日|2021-03-04|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div>
----
2021年3月1日 (月) 19:08 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21161722 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/10|Tech News: 2021-10]] ==
<section begin="technews-2021-W10"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/10|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Content translation/Section translation|節単位の翻訳]]がベンガリ語ウィキペディアに導入されました。モバイルビューを使う編集者が記事を節単位で翻訳できるようにする機能です。今後、利用できるウィキが増える予定です。まず、記事が少なく編集活動が多いウィキを対象にしていきます。[https://sx.wmflabs.org/index.php/Main_Page 使用したら][[mw:Talk:Content translation/Section translation|フィードバックをお寄せください]]。
* [[mw:Special:MyLanguage/Help:Extension:FlaggedRevs|フラグ付き査読機能]]で管理者に査読権限が与えられるようになりました。 [https://phabricator.wikimedia.org/T275293]
* Twitter 上でウィキペディアの記事にリンクすると、その記事のプレビューが表示されます。 [https://phabricator.wikimedia.org/T276185]
'''問題点'''
* 多くのグラフで [[:w:ja:JavaScript|JavaScript]] のエラーが発生しています。グラフの編集を行った後、ブラウザの開発者コンソールでグラフの確認をしてください。 [https://phabricator.wikimedia.org/T275833]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.34|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-10|ja}}に、その他のウィキには{{#time:n月j日|2021-03-11|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* [[mw:Talk pages project/New discussion|新しい協議]]用のツールは近日中に、ほとんどのウィキペディアで既定の[[mw:Special:MyLanguage/Extension:DiscussionTools|協議ツール]]としてベータ展開されます。新規の協議をより簡単に始めることが目標です。 [https://phabricator.wikimedia.org/T275257]
'''今後の予定'''
* テンプレートに関して、使いこなしやすくするためいくつかの変更を行います。最初の変更は第1群のウィキ群に3月中に導入します。他の変更は同様に6月導入の予定です。これはテンプレートのさくせいしゃもしくは管理者と、利用者のどちらにも役立つはずです。[[:m:WMDE Technical Wishes/Templates|詳細はこちら]]。
* [[m:WMDE Technical Wishes/ReferencePreviews|出典のプレビュー]]機能を複数のウィキで3月17日から既定の機能として実装します。設定は[[mw:Page Previews|ページのプレビュー]]と共通です。Reference Tooltipsあるいはナビゲーション・ポップアップを使いたい場合は、今後も引き続き使えます。このとき、出典のプレビューが重複して表示されることはありません。 [https://phabricator.wikimedia.org/T271206][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/ReferencePreviews]
* 新しい JavaScript ベースの関数は[[:w:ja:Internet Explorer 11|Internet Explorer 11]] で動作しません。Internet Explorer は古いブラウザであり、今日使用される JavaScript の記述では動作しないためです。ただし、既に現時点で Internet Explorer 11 で動作する機能は引き続き Internet Explorer 11 でも動作します。[[mw:Compatibility/IE11|詳細はこちら]]を御覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W10"/> 2021年3月8日 (月) 17:51 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21175593 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/11|Tech News: 2021-11]] ==
<section begin="technews-2021-W11"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/11|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ改善]]プロジェクトに参加するウィキでは、新規の[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Search|検索機能]]が使えるようになりました。より多くのウィキでも後日、デスクトップ改善と新しい検索機能が利用できるようになる予定です。また[[mw:Reading/Web/Desktop Improvements#Deployment plan and timeline|先行して試用する]]こともできます。
* [[File:Octicons-tools.svg|15px|link=|高度]] バナー通知の掲載あるいはサイト全体に関与する [[:w:ja:JavaScript|JavaScript]] コードを変更する編集者は [https://grafana.wikimedia.org/d/000000566/overview?viewPanel=16&orgId=1 クライアント・エラー表示]を使い、変更によって問題が発生していないかどうか必ず確認しなければなりません。[https://diff.wikimedia.org/2021/03/08/sailing-steady%e2%80%8a-%e2%80%8ahow-you-can-help-keep-wikimedia-sites-error-free 詳細はこちら]をご参照ください。 [https://phabricator.wikimedia.org/T276296]
'''問題点'''
* [[phab:T276968|データベースの問題]]が原因で[https://meta.wikimedia.beta.wmflabs.org Wikimedia ベータクラスタ] が1日以上、読み取り専用でした。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.34|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-17|ja}}に、その他のウィキには{{#time:n月j日|2021-03-18|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* カスタム署名は現在、テンプレートを使って[[:w:ja:改行コード|改行]]または[[:w:ja:キャリッジ・リターン|キャリッジ・リターン]]記号を含めることができます。将来的にこれを禁止する提案があがっています。理由は書式エラーを発生させるからです。 [https://www.mediawiki.org/wiki/New_requirements_for_user_signatures#Additional_proposal_(2021)][https://phabricator.wikimedia.org/T272322]
* [[phab:T276899|12 件のウィキ]]では、閲覧はできても編集ができない時間帯が[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210323T06 {{#time:j xg|2021-03-23|en}} の 06:00 (UTC)] 以降に短時間、発生する見込みです。最長で30分、もっと早く終わるかもしれません。
* [[File:Octicons-tools.svg|15px|link=|高度]] [[wikitech:Wiki replicas|Wiki Replicas]] に対して[[:w:ja:SQL|SQL]] クエリに[https://quarry.wmflabs.org/ Quarry] が使えます。3月23日以降、データベース横断型の<code>JOINS</code> は作動しなくなります。どのデータベースに接続するか指定する欄が追加される予定です。もし皆さんがこれに影響を受けると考えられ、支援が必要な場合は [[phab:T268498|Phabricator]] もしくは [[wikitech:Talk:News/Wiki Replicas 2020 Redesign|Wikitech]] で申し出てください。[https://wikitech.wikimedia.org/wiki/PAWS PAWS] その他、Wiki Replica に [[:w:ja:SQL|SQL]] クエリを実行するものは後日、影響を受ける見込みです。 [https://wikitech.wikimedia.org/wiki/News/Wiki_Replicas_2020_Redesign]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W11"/> 2021年3月15日 (月) 23:23 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21226057 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/12|Tech News: 2021-12]] ==
<section begin="technews-2021-W12"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/12|翻訳]]されています。
'''最近の更新'''
* [[:w:ja:KaiOS|KaiOS]] 用の [[mw:Wikipedia for KaiOS|Wikipedia アプリ]]が利用できます。この OS を使う端末にはタッチスクリーンがないため、使用する際はキーパッドを使ってナビゲートを行います。[https://wikimedia.github.io/wikipedia-kaios/sim.html シミュレータ]により、実際にどのように動作するかを確認することができます。
* [[mw:Special:MyLanguage/Talk pages project/Replying|返信ツール]]と[[mw:Special:MyLanguage/Talk pages project/New discussion|新しい議論ツール]]は[[Special:Preferences#mw-prefsection-betafeatures|ベータ版]]機能「{{int:discussiontools-preference-label}}」としてドイツ語版ウィキペディアを除く殆どのウィキで利用できるようになりますた。
'''問題点'''
* [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210323T06 3月23日 6:00(UTC)]に [[phab:T276899|12 のウィキ]]が閲覧はできても編集ができない状態になります。パスワードの変更、ウィキへの新規ログイン、グローバル利用者名変更、電子メールアドレスの確認や変更にも影響を与える可能性があります。編集できない時間は 30 分の予定ですが、予定よりも早く終了するかもしれません。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.36|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-24|ja}}に、その他のウィキには{{#time:n月j日|2021-03-25|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* [[:w:ja:シンタックスハイライト|構文の強調表示]]を行う色が変更され、見やすくなります。まもなく[[phab:T276346|最初の対象となるウィキ]]で変更が実施されます。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Improved_Color_Scheme_of_Syntax_Highlighting]
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:FlaggedRevs|フラグ付き査読機能]]で「トーン」または「階層」のように複数のタグを付けることができなくなり、付けられるタグが 1 つになります。複数のタグを同時に付けているウィキが極めて少数である上、メンテナンスも難しくなることから今回の変更が実施されることになりました。 [https://phabricator.wikimedia.org/T185664][https://phabricator.wikimedia.org/T277883]
* [[File:Octicons-tools.svg|15px|link=|高度]] ガジェットやユーザースクリプトで JavaScript でページの変数に直接アクセスできなくなります。2015年に <code dir=ltr>wg*</code> から <code dir=ltr>mw.config</code> への移行が行われています。まもなく <code dir=ltr>wg*</code> は使用できなくなります。 [https://phabricator.wikimedia.org/T72470]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W12"/> 2021年3月22日 (月) 16:53 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21244806 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/13|Tech News: 2021-13]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/13|翻訳]]されています。
'''最近の更新'''
* 非常に古い[[:w:ja:ウェブブラウザ|ウェブブラウザ]]はウィキメディアのウィキで[[:mw:Special:MyLanguage/Compatibility|動作しなくなりました]]。従来サポートされていた、古いブラウザ用のコードが除去されたためです。対象となるブラウザで閲覧すると不具合が発生する可能性があります。 [https://phabricator.wikimedia.org/T277803]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:m:IRC/Channels#Raw_feeds|「最近の更新」の IRC フィード]]を新しいサーバに移転しました。すべてのツールがサーバーを指定せず自動で <code>irc.wikimedia.org</code> に再接続するかどうか確認してください。また、最新の[[:wikitech:Event Platform/EventStreams|イベントストリーム]]への移行も推奨されています。 [https://phabricator.wikimedia.org/T224579]
'''問題点'''
* 多数の編集者がウォッチリストに登録したページの場合、移動(改名)によって履歴が分断される可能性があります。また、いったん移動するとしばらくの間、再移動ができなくなる可能性があります。[[:w:ja:キュー (コンピュータ) |ジョブキュー]]に発生した問題が原因です。 [https://phabricator.wikimedia.org/T278350]
* メタの翻訳対象ページが編集できなくなっていました。原因は翻訳ツールのバグによるものです。この問題のため、MediaWiki のバージョン更新が遅れました。 [https://phabricator.wikimedia.org/T278429][https://phabricator.wikimedia.org/T274940]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.37|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-31|ja}}に、その他のウィキには{{#time:n月j日|2021-04-01|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年3月29日 (月) 17:31 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21267131 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/13|Tech News: 2021-13]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/13|翻訳]]されています。
'''最近の更新'''
* 非常に古い[[:w:ja:ウェブブラウザ|ウェブブラウザ]]はウィキメディアのウィキで[[:mw:Special:MyLanguage/Compatibility|動作しなくなりました]]。従来サポートされていた、古いブラウザ用のコードが除去されたためです。対象となるブラウザで閲覧すると不具合が発生する可能性があります。 [https://phabricator.wikimedia.org/T277803]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:m:IRC/Channels#Raw_feeds|「最近の更新」の IRC フィード]]を新しいサーバに移転しました。すべてのツールがサーバーを指定せず自動で <code>irc.wikimedia.org</code> に再接続するかどうか確認してください。また、最新の[[:wikitech:Event Platform/EventStreams|イベントストリーム]]への移行も推奨されています。 [https://phabricator.wikimedia.org/T224579]
'''問題点'''
* 多数の編集者がウォッチリストに登録したページの場合、移動(改名)によって履歴が分断される可能性があります。また、いったん移動するとしばらくの間、再移動ができなくなる可能性があります。[[:w:ja:キュー (コンピュータ) |ジョブキュー]]に発生した問題が原因です。 [https://phabricator.wikimedia.org/T278350]
* メタの翻訳対象ページが編集できなくなっていました。原因は翻訳ツールのバグによるものです。この問題のため、MediaWiki のバージョン更新が遅れました。 [https://phabricator.wikimedia.org/T278429][https://phabricator.wikimedia.org/T274940]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.37|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-31|ja}}に、その他のウィキには{{#time:n月j日|2021-04-01|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年3月29日 (月) 20:39 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21267131 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/14|Tech News: 2021-14]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/14|翻訳]]されています。
'''最近の更新'''
* 記事の一部を折りたたみ、クリックして表示する機能があります。リンク先が折りたたんだ部分の中にある節見出しだった場合、リンクを押すと飛んだ先の節が自動的に表示されるようになりました。ブラウザ画面はリンク先の節までスクロールダウンします。以前はこのようなリンクがうまく作動せず、あらかじめ手動で節見出しを開いておく必要がありました。 [https://phabricator.wikimedia.org/T276741]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Citoid|citoid]] [[:w:ja:API|API]]は年と月のみで日がない日付を指定した場合、たとえば <code>2010-12</code>の代わりに<code>2010-12-XX</code>を適用するようになる予定です。<code>2010-12</code>を本来の意味である<code>December 2010</code> (2010年12月) ではなく<code>2010-2012</code> (期間) と取り違える可能性があるからです。これを [https://www.loc.gov/standards/datetime/ Extended Date/Time Format] (アメリカ議会図書館が策定した日付書式の規格) でレベル0ではなくレベル1と呼びます。 [https://phabricator.wikimedia.org/T132308]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.38|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-04-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-04-07|ja}}に、その他のウィキには{{#time:n月j日|2021-04-08|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:wikitech:PAWS|PAWS]] から [[:wikitech:Wiki Replicas|Wiki Replicas]] に接続することができます。データベース横断型クエリの <code>JOINS</code> は4月28日以降動作しなくなります。この変更による影響を受ける可能性があり、手助けが必要な場合には [[phab:T268498|Phabricator]] または [[wikitech:Talk:News/Wiki Replicas 2020 Redesign|Wikitech]] でご相談ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年4月5日 (月) 19:41 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21287348 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/16|Tech News: 2021-16]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/16|翻訳]]されています。
'''最近の更新'''
* ウィキメディアのウィキ群に対して送られる問い合わせなどのメールは、ウィキメディアの編集者がボランティアで担当しています。ボランティアが使用するツールを従来の [[m:Special:MyLanguage/OTRS|OTRS]] から [https://github.com/znuny/Znuny Znuny] に変更しました。機能とインターフェースに変更はありません。ボランティアの管理者から、今後の予定について、後日説明が行われる予定です。 [https://phabricator.wikimedia.org/T279303][https://phabricator.wikimedia.org/T275294]
* [[Mw:Special:MyLanguage/Extension:CodeMirror|構文の強調表示機能]]を使用している場合、2017年版と2020年版の編集エディタでテンプレートを編集したときに行番号が表示されるようになりました。改行を確認しやすくしたり、特定の行について議論するときに役立ちます。行番号の表示は近日中に全ての名前空間で利用できるようになる予定です。 [https://phabricator.wikimedia.org/T267911][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Line_Numbering][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/Line_Numbering]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術的な変更に伴い、[https://phab.wmfusercontent.org/file/data/llvdqqnb5zpsfzylbqcg/PHID-FILE-25vs4qowibmtysl7cbml/Screen_Shot_2021-04-06_at_2.34.04_PM.png これと同じような]編集の要約欄を持つガジェットやスクリプトで問題が起こる可能性があります。もし問題が発見された場合には、<code>mw.loader.using('mediawiki.action.edit.styles')</code> を使用して従来の状態に差し戻してください。 [https://phabricator.wikimedia.org/T278898]
* MediaWikiの[[mw:MediaWiki 1.37/wmf.1|最新版]]は先週、ウィキメディアのウィキ群に展開されています。先週は技術週報を休刊しました。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 利用者グループ <code>oversight</code> は <code>suppress</code> へと改称されます。これは[[phab:T109327|技術的な理由によるものです]]。変更されるのはシステム上の名称です。ウィキ上におけるグループの名称に影響を与えるものではありません。変更作業は2週間以内に実施予定です。意義を申し立てる場合は[[phab:T112147|Phabricator]]にコメントをお願いします。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年4月19日 (月) 16:49 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21356080 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/17|Tech News: 2021-17]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/17|翻訳]]されています。
'''最近の更新'''
* テンプレートには特定の値をとるパラメータがあります。編集者に[[mw:Special:MyLanguage/Extension:TemplateData|テンプレート・データ]]を使って値を推奨することができます。まもなくビジュアルエディタはこれらの値をドロップダウン・リストに表示するようになります。テンプレート利用者が正しい値をより早く見つけられるように支援するためです。 [https://phabricator.wikimedia.org/T273857][https://meta.wikimedia.org/wiki/Special:MyLanguage/WMDE_Technical_Wishes/Suggested_values_for_template_parameters][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/Suggested_values_for_template_parameters]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-04-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-04-28|ja}}に、その他のウィキには{{#time:n月j日|2021-04-29|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年4月26日 (月) 21:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21391118 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/18|Tech News: 2021-18]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/18|翻訳]]されています。
'''最近の更新'''
* [[w:en:Wikipedia:Twinkle|Twinkle]] というガジェットがウィキペディア英語版で利用されています。メンテナンスと巡回に役立つガジェットです。このたび、[[m:Grants:Project/Rapid/SD0001/Twinkle localisation/Report|他のウィキでも利用できるようになりました]]。ご利用のウィキに Twinkle を導入するときは、GitHub リポジトリの[https://github.com/wikimedia-gadgets/twinkle-starter twinkle-starter] をご利用ください。
'''問題点'''
* [[mw:Special:MyLanguage/Content translation|コンテンツ翻訳ツール]]が一時的に多くの記事で動作しませんでした。バグが原因によるものです。 [https://phabricator.wikimedia.org/T281346]
* 5月5日におよそ1分間、特定の操作ができなくなる見込みです。予定時間は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210505T0600 06:00 UTC前後]です。コンテンツ翻訳ツールや通知機能をはじめとする幾つかの機能が影響を受けます。クラッシュを予防するためのアップグレードを行うためです。 [https://phabricator.wikimedia.org/T281212]
'''今週の更新'''
* [[mw:Special:MyLanguage/Help:Reference Previews|参考資料プレビュー]] は5月5日より、多くのウィキで既定の機能になる予定です。いくつかの変更があったため、実装が当初の予定より遅れました。この機能は[[mw:Special:MyLanguage/Page Previews|ページのプレビュー]]機能を使わずに利用することも可能です。当初の計画では、個人設定で両方の機能をまとめて有効または無効に切り替える予定でした。 [https://phabricator.wikimedia.org/T271206][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/ReferencePreviews]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-05|ja}}に、その他のウィキには{{#time:n月j日|2021-05-06|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:Cascading Style Sheets|CSS]] のクラス <code dir=ltr>.error</code> <code dir=ltr>.warning</code> <code dir=ltr>.success</code> は特に定義を行っていなければモバイル版閲覧環境で動作しません。6月以降はデスクトップ版の閲覧環境でも動作しなくなります。これにより、ガジェットやテンプレートに影響が出る可能性があります。クラスに対するスタイルを[[MediaWiki:Common.css]] やテンプレートスタイルで定義することは可能です。 [https://phabricator.wikimedia.org/T280766]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月3日 (月) 15:44 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21418010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/18|Tech News: 2021-18]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/18|翻訳]]されています。
'''最近の更新'''
* [[w:en:Wikipedia:Twinkle|Twinkle]] というガジェットがウィキペディア英語版で利用されています。メンテナンスと巡回に役立つガジェットです。このたび、[[m:Grants:Project/Rapid/SD0001/Twinkle localisation/Report|他のウィキでも利用できるようになりました]]。ご利用のウィキに Twinkle を導入するときは、GitHub リポジトリの[https://github.com/wikimedia-gadgets/twinkle-starter twinkle-starter] をご利用ください。
'''問題点'''
* [[mw:Special:MyLanguage/Content translation|コンテンツ翻訳ツール]]が一時的に多くの記事で動作しませんでした。バグによるものです。 [https://phabricator.wikimedia.org/T281346]
* 5月5日におよそ1分間、特定の操作ができなくなる見込みです。予定時間は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210505T0600 06:00 UTC前後]です。コンテンツ翻訳ツールや通知機能をはじめとする幾つかの機能が影響を受けます。クラッシュを予防するためのアップグレードを行うためです。 [https://phabricator.wikimedia.org/T281212]
'''今週の更新'''
* [[mw:Special:MyLanguage/Help:Reference Previews|参考資料プレビュー]] は5月5日より、多くのウィキで既定の機能になる予定です。いくつかの変更があったため、実装が当初の予定より遅れました。この機能は[[mw:Special:MyLanguage/Page Previews|ページのプレビュー]]機能を使わずに利用することも可能です。当初の計画では、個人設定で両方の機能をまとめて有効または無効に切り替える予定でした。 [https://phabricator.wikimedia.org/T271206][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/ReferencePreviews]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-05|ja}}に、その他のウィキには{{#time:n月j日|2021-05-06|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:Cascading Style Sheets|CSS]] のクラス <code dir=ltr>.error</code> <code dir=ltr>.warning</code> <code dir=ltr>.success</code> は特に定義を行っていなければモバイル版閲覧環境で動作しません。6月以降はデスクトップ版の閲覧環境でも動作しなくなります。これにより、ガジェットやテンプレートに影響が出る可能性があります。クラスに対するスタイルを[[MediaWiki:Common.css]] やテンプレートスタイルで定義することは可能です。 [https://phabricator.wikimedia.org/T280766]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月4日 (火) 12:57 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21418010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/19|Tech News: 2021-19]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/19|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-12|ja}}に、その他のウィキには{{#time:n月j日|2021-05-13|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 5月22日–23日にオンライン開催の[[mw:Wikimedia Hackathon 2021| ウィキメディア・ハッカソン]]のリンクでは、参加者の企画の予告が始まりました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月10日 (月) 15:10 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21428676 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/19|Tech News: 2021-19]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/19|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-12|ja}}に、その他のウィキには{{#time:n月j日|2021-05-13|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 5月22日–23日にオンライン開催の[[mw:Wikimedia Hackathon 2021| ウィキメディア・ハッカソン]]のリンクでは、参加者の企画の予告が始まりました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月10日 (月) 16:26 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21428676 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/20|Tech News: 2021-20]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/20|翻訳]]されています。
'''最近の更新'''
* [[mw:Talk pages project/Replying|返信ツール]]で新しいツールバーが利用できるようにできました。ソースモード編集で動作します。[[Special:Preferences#mw-htmlform-discussion|個人設定]]で有効化することで利用できるようになります。 [https://phabricator.wikimedia.org/T276608] [https://www.mediawiki.org/wiki/Talk_pages_project/Replying#13_May_2021] [https://www.mediawiki.org/wiki/Talk_pages_project/New_discussion#13_May_2021]
* ウィキメディアの[https://lists.wikimedia.org/mailman/listinfo メーリングリスト]が新しいバージョンの[[:w:ja:GNU Mailman|Mailman 3]]に移行します。[[:w:ja:文字コード|文字コード]]の動作のために、<code>[[:w:ja:UTF-8|UTF-8]]</code>から <code>utf8mb3</code> への変更が行われます。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IEYQ2HS3LZF2P3DAYMNZYQDGHWPVMTPY/][https://phabricator.wikimedia.org/T282621]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術ニュースの[[m:Special:MyLanguage/Tech/News/2021/14|以前の号]]で、[[mw:Special:MyLanguage/Citoid|citoid]] [[:w:ja:API|API]]は日付を指定する際に年と月のみ指定して日を省略した場合、新しい方式で処理が行われるとお知らせしていました。しかし、現在この変更は差し戻されています。様々なwikiへの影響について更なる議論を行う必要があるためです。 [https://phabricator.wikimedia.org/T132308]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] <code>MediaWiki:Pageimages-blacklist</code> は <code>MediaWiki:Pageimages-denylist</code> に改名されます。リストを予め新しい名前に変更することも検討してください。一部のウィキで5月19日に、他の一部のウィキでは5月20日に変更が実施されます。このメッセージは殆どのウィキでは使用されていません。記事でサムネイルとして使用してはいけない画像のリストです。 [https://phabricator.wikimedia.org/T282626]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-19|ja}}に、その他のウィキには{{#time:n月j日|2021-05-20|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月17日 (月) 13:50 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21464279 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/21|Tech News: 2021-21]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/21|翻訳]]されています。
'''最近の更新'''
* これまでウィキメディア運動で利用する [[:m:Special:MyLanguage/IRC|IRC]] は [[:w:Special:MyLanguage/ja:Freenode|Freenode]](フリーノード)のネットワークを使用していました。このたび、ネットワーク管理者が大幅に入れ替わりました。[[m:Special:MyLanguage/IRC/Group_Contacts |ウィキメディア IRC グループの連絡先]] は [[:w:en:Libera Chat|Libera チャット]]ネットワークへの乗り換えが[[m:Special:Diff/21476411|決定しました]]。すべてのチャンネルを移動させると正式に決まったわけではありませんが、ウィキメディアの IRC チャンネル群は殆どがフリーノードから撤退することになる見込みです。 [[:m:IRC/Migrating_to_Libera_Chat|移設の手引き]]を設けているほか、ウィキメディア全体を対象とした[[m:Wikimedia Forum#Freenode (IRC)|関連議論]]が行われています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-26|ja}}に、その他のウィキには{{#time:n月j日|2021-05-27|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月24日 (月) 17:08 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21477606 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/22|Tech News: 2021-22]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/22|翻訳]]されています。
'''問題点'''
* ベクター外装でページの題名直下の通知文、ページ最下部のカテゴリ欄の文字の大きさが正しく表示されないという不具合が発生しました。先週の月曜日に修正済みです。 [https://phabricator.wikimedia.org/T283206]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月31日 (月) 17:06 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21516076 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/23|Tech News: 2021-23]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/23|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-09|ja}}に、その他のウィキには{{#time:n月j日|2021-06-10|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ウィキメディア運動では技術的なタスク管理に [[:mw:Special:MyLanguage/Phabricator|Phabricator]] を採用しています。技術関連の提案やバグ報告を受け付けたり、開発者の作業項目を集約しています。このたび Phabricator の運営会社が開発の中止を発表しました。ただちに影響が出るわけではありませんが、将来的に別の管理ツールに移行する可能性があります。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/YAXOD46INJLAODYYIJUVQWOZFIV54VUI/][https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/][https://phabricator.wikimedia.org/T283980]
* ウィキペディア内で検索を行ったとき、一部の言語で検索結果の増える場合があります。これの現象は主に、検索を行った利用者が[[:w:ja:ダイアクリティカルマーク|ダイアクリティカルマーク]]を適切に使用しなかった場合に発生します。その言語では必要ないと考えられており、記号の表記揺れを検索対象に含めていないことが原因です。例えばドイツ語版ウィキペディアでは、<code>Bedusz</code> を検索しても検索結果に <code>Będusz</code> は出てきません。ドイツ語で <code>ę</code> という文字は使われず、もっぱら <code>e</code> が代わりに使われるためです。この挙動は将来的に一部の言語版で改善される予定です。 [https://phabricator.wikimedia.org/T219550]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:MyLanguage/API:Main page|action API]]の[[:w:ja:クロスサイトリクエストフォージェリ |CSRF トークン パラメータ]]は2014年に変更されました。2014年より古い変数はまもなく機能しなくなります。ボット、ガジェットやユーザースクリプトのうち旧来の変数を使用しているものには影響が出るかもしれません。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IMP43BNCI32C524O5YCUWMQYP4WVBQ2B/][https://phabricator.wikimedia.org/T280806]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月7日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21551759 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/23|Tech News: 2021-23]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/23|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-09|ja}}に、その他のウィキには{{#time:n月j日|2021-06-10|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ウィキメディア運動では技術的なタスク管理に [[:mw:Special:MyLanguage/Phabricator|Phabricator]] を採用しています。技術関連の提案やバグ報告を受け付けたり、開発者の作業項目を集約しています。このたび Phabricator の運営会社が開発の中止を発表しました。ただちに影響が出るわけではありませんが、将来的に別の管理ツールに移行する可能性があります。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/YAXOD46INJLAODYYIJUVQWOZFIV54VUI/][https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/][https://phabricator.wikimedia.org/T283980]
* ウィキペディア内で検索を行ったとき、一部の言語で検索結果の増える場合があります。これの現象は主に、検索を行った利用者が[[:w:ja:ダイアクリティカルマーク|ダイアクリティカルマーク]]を適切に使用しなかった場合に発生します。その言語では必要ないと考えられており、記号の表記揺れを検索対象に含めていないことが原因です。例えばドイツ語版ウィキペディアでは、<code>Bedusz</code> を検索しても検索結果に <code>Będusz</code> は出てきません。ドイツ語で <code>ę</code> という文字は使われず、もっぱら <code>e</code> が代わりに使われるためです。この挙動は将来的に一部の言語版で改善される予定です。 [https://phabricator.wikimedia.org/T219550]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:MyLanguage/API:Main page|action API]]の[[:w:ja:クロスサイトリクエストフォージェリ |CSRF トークン パラメータ]]は2014年に変更されました。2014年より古い変数はまもなく機能しなくなります。ボット、ガジェットやユーザースクリプトのうち旧来の変数を使用しているものには影響が出るかもしれません。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IMP43BNCI32C524O5YCUWMQYP4WVBQ2B/][https://phabricator.wikimedia.org/T280806]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月7日 (月) 22:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21551759 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/24|Tech News: 2021-24]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/24|翻訳]]されています。
'''最近の更新'''
* ログイン利用はモバイルのウェブ版で[[:mw:Special:MyLanguage/Reading/Web/Advanced mobile contributions|改良版モード]]を利用できるようになりました。カテゴリはデスクトップ版の利用者と同様の表示になります。これにより、従来はデスクトップ版限定のガジェットのうち、いくつかはモバイル版サイト利用者も使える可能性があります。皆さんのウィキにそのようなガジェットがある場合は、モバイル版サイトでも有効にするかどうかを設定できます。ガジェットによっては表示をモバイル向けに調整する必要があるかもしれません。 [https://phabricator.wikimedia.org/T284763]
* ウィキデータの言語間リンクが[[:oldwikisource:Main Page|多言語ウィキソース]]でも動作するようになりました。 [https://phabricator.wikimedia.org/T275958]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 将来的に未登録利用者のIPを不特定多数の利用者が[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation|見られないようになります]]。これは法的な理由によるものです。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation#Updates|IPを確認する必要がある利用者]]を決めるための大まかなドラフトがあります。
* 6月22日に数分間、ウィキペディア・ドイツ語版、ウィキボヤージュ英語版に加え小規模ウィキ29件が閲覧専用になり編集ができない状態となります。予定時間は5:00から5:30 (UTC) の見込みです。 [https://phabricator.wikimedia.org/T284530]
* 6月28日の週に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T281515][https://phabricator.wikimedia.org/T281209]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月14日 (月) 20:26 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21587625 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/25|Tech News: 2021-25]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/25|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 問い合わせ対応ボランティアチームのグローバルグループ名 <code>otrs-member</code> は現在、<code>vrt-permissions</code> (<sup>※</sup>)に変更されています。不正利用フィルターに影響を与える可能性があります。 [https://phabricator.wikimedia.org/T280615]
'''問題点'''
* 6月22日にドイツ語版ウィキペディア、英語版ウィキボヤージュと、その他29の小規模ウィキで、数分にわたり閲覧はできても編集ができない状態になります。予定の時間帯は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210623T0500 5:00 から 5:30 (UTC)] の間と見込まれます。 [https://phabricator.wikimedia.org/T284530]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-23|ja}}に、その他のウィキには{{#time:n月j日|2021-06-24|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月21日 (月) 15:50 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21593987 のリストを使用して送信したメッセージ -->
== Editing news 2021 #2 ==
<div class="plainlinks mw-content-ltr" lang="ja" dir="ltr">
<em>[[m:Special:MyLanguage/VisualEditor/Newsletter/2021/June|他の言語で読む]] • [[m:VisualEditor/Newsletter|多言語ニュースレター配信に登録する]]</em>
[[File:Reply Tool A-B test comment completion.png|alt=導入されている全ウィキペディアにおける編集初心者のコメント完了率|thumb|296x296px|初心者が返信ツールを使用してトークページに投稿しようとした際、コメント投稿に成功した割合。([https://wikimedia-research.github.io/Reply-tools-analysis-2021/ 出典])]]
今年の年初め、編集チームは[[mw:Talk pages project/Replying|返信ツール]]の大規模研究を行いました。 主な目的としては、返信ツールが[[mw:Talk pages project/Glossary|編集初心者]]のウィキにおけるコミュニケーションに役立っているかどうかを調べることが挙げられます。2つ目の目的は、新人編集者がこのツールを使って投稿したコメントが既存のwikitextエディタによるコメントよりも不適切なものが多いか調べることでした。
主な結果 :
* <span lang="en" dir="ltr" class="mw-content-ltr">Newer editors who had automatic ("default on") access to the Reply tool were [https://wikimedia-research.github.io/Reply-tools-analysis-2021/ more likely] to post a comment on a talk page.</span>
* また、編集初心者が返信ツールで行ったコメントは、ページ編集でのコメントよりも取り消し・巻き戻しされる可能性が[https://wikimedia-research.github.io/Reply-tools-analysis-2021/ 低い]という結果が出ました。
この結果により、Editingチームはこのツールが役立っていると確信しました。
<strong>今後の予定</strong>
チームは今後数ヶ月で、返信ツールをオプトアウトで全員が利用できるように計画しています。この機能はアラビア語・チェコ語・ハンガリー語版ウィキペディアで先行的に実装されています。
<span lang="en" dir="ltr" class="mw-content-ltr">The next step is to [[phab:T280599|resolve a technical challenge]]. Then, they will deploy the Reply tool first to the [[phab:T267379|Wikipedias that participated in the study]]. After that, they will deploy it, in stages, to the other Wikipedias and all WMF-hosted wikis.</span>
現在、ベータ機能として「{{int:discussiontools-preference-label}}」を有効にできます。返信ツールを導入した後は、[[Special:Preferences#mw-prefsection-editing-discussion]]でいつでも設定を変更することができます。
–[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|トーク]])
</div> 2021年6月24日 (木) 14:12 (UTC)
<!-- User:Elitre (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=21602894 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/26|Tech News: 2021-26]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/26|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth|Growth 機能]]があるウィキでは [[mw:Special:MyLanguage/Growth/Community configuration|Growth 機能の設定をウィキで直接行う]]ことができるようになりました。<code>Special:EditGrowthConfig</code> のページで操作できます。 [https://phabricator.wikimedia.org/T285423]
* ウィキソースに新しい [[m:Special:MyLanguage/Community Tech/OCR Improvements|OCR ツール]]が導入されます。「テキストの抽出」ボタンを表示したくない場合は [[Special:MyPage/common.css|common.css]] に <code>.ext-wikisource-ExtractTextWidget { display: none; }</code> を追加してください。 [https://phabricator.wikimedia.org/T285311]
'''問題点'''
*6月29日にウィキメディア ウィキでは、数分にわたり閲覧はできても編集ができない状態になります。時間は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210629T1400 14:00 (UTC)] の予定です。 [https://phabricator.wikimedia.org/T281515][https://phabricator.wikimedia.org/T281209]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-30|ja}}に、その他のウィキには{{#time:n月j日|2021-07-01|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* <code>スタブリンク形式として表示する閾値</code>、<code>サムネイルの大きさ</code>、<code>見出しに番号を自動的に振る</code> という項目が個人設定にあります。これらの機能を維持するのには費用が掛かる一方、機能を使用する編集者は殆どいません。このため、開発者は機能の削除を検討しています。機能を取り除くことにより、ページの読み込み速度が若干早くなります。[[mw:Special:MyLanguage/User:SKim (WMF)/Performance Dependent User Preferences|詳細とフィードバックについてはこちらをご覧ください]]。
* [[mw:Talk pages project/Replying|返信ツール]]のウィキテキストのソースモードにツールバーが追加される予定です。これを使うとページにリンクしたり他の利用者へ通知を送る操作が簡単になります。 [https://phabricator.wikimedia.org/T276609][https://www.mediawiki.org/wiki/Talk_pages_project/Replying#Status_updates]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月28日 (月) 16:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21653312 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/27|Tech News: 2021-27]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/27|翻訳]]されています。
'''技術ニュース'''
* 技術ニュースの次号は2021年7月19日に発行予定です。
'''最近の更新'''
* [[:wikidata:Q4063270|AutoWikiBrowser]] は同じ作業の繰り返しを簡単に行えるツールです。このたび[[:w:ja:JSON|JSON]] を採用しました。<code>Wikipedia:AutoWikiBrowser/CheckPage</code> は<code>Wikipedia:AutoWikiBrowser/CheckPageJSON</code> と <code>Wikipedia:AutoWikiBrowser/Config</code> に移動しました。<code>Wikipedia:AutoWikiBrowser/CheckPage/Version</code> は <code>Wikipedia:AutoWikiBrowser/CheckPage/VersionJSON</code> に移りました。ツール自体はウィキ上で設定を行なっているため、新しいバージョンでテンプレートが追加されたり正規表現が修正されるのを待つ必要がありません。 [https://phabricator.wikimedia.org/T241196]
'''問題点'''
* [[m:Special:MyLanguage/InternetArchiveBot|InternetArchiveBot]] はいくつかのウィキにおいて、オンラインの情報源を保存するために役立ちます。情報源となるページを[[:w:ja:ウェイバックマシン|ウェイバックマシン]]に保存し、リンクを張ります。これは外部リンクのページが削除されても、引き続きリンク先を読めるようにするための措置です。現在、ページを<code>archive.is</code> から <code>web.archive.org</code> に移動したとき、誤った日付にリンクされる不具合が発生しています。 [https://phabricator.wikimedia.org/T283432]
'''今週の更新'''
* [[m:WMDE Technical Wishes/Finding and inserting templates|テンプレートの検索、追加と削除]]を行うツールを更新する予定です。これは適切なテンプレートを簡単に探して使えるようにするためです。7月7日に最初のウィキ群に導入されます。さらにほかのウィキにも今年中に導入する予定です。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Removing_a_template_from_a_page_using_the_VisualEditor][https://phabricator.wikimedia.org/T284553]
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* ウィキメディアのウィキには [[m:Special:MyLanguage/Flagged Revisions|フラグ付き査読機能]]あるいは変更の保留機能を採用するところがあります。新規登録のアカウントや未登録の閲覧者には、巡回されるまでその編集は非表示にされます。フラグ付き査読に伴う自動査読の処理は今後、ログを取らなくなります。自動査読の過去ログもすべて削除される予定です。不要なログを大量に作成することへの対処です。 [https://phabricator.wikimedia.org/T285608]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年7月5日 (月) 17:33 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21694636 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/29|Tech News: 2021-29]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/29|翻訳]]されています。
'''最近の更新'''
* [[m:WMDE Technical Wishes/Finding and inserting templates|テンプレートの検索、除去]]に使うツールが更新されました。適切なテンプレートを探したり使ったりするのを楽にすることを目指しました。当初、7月7日には第1弾のウィキに実装する予定でした。代わりに7月12日に延期されました。その他のウィキには今年中に導入の見込みです。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Removing_a_template_from_a_page_using_the_VisualEditor][https://phabricator.wikimedia.org/T284553]
* [[Special:UnconnectedPages|特別:項目に接続されていないページ]]の一覧にあるページはウィキデータに登録されていません。これはウィキデータに連携する必要のあるページを探す助けになります。特定のページはウィキデータに登録すべきではありません。特別ページに収集させないページには、マジックワードの<code><nowiki>__EXPECTED_UNCONNECTED_PAGE__</nowiki></code>を使うことができます。 [https://phabricator.wikimedia.org/T97577]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-07-20|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-07-21|ja}}に、その他のウィキには{{#time:n月j日|2021-07-22|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">How media is structured in the [[:w:en:Parsing|parser's]] HTML output will soon change. This can affect bots, gadgets, user scripts and extensions. You can [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/L2UQJRHTFK5YG3IOZEC7JSLH2ZQNZRVU/ read more]. You can test it on [[:testwiki:Main Page|Testwiki]] or [[:test2wiki:Main Page|Testwiki 2]].</span>
* [[File:Octicons-tools.svg|15px|link=|<span lang="en" dir="ltr" class="mw-content-ltr">Advanced item</span>]] <span lang="en" dir="ltr" class="mw-content-ltr">The parameters for how you obtain [[mw:API:Tokens|tokens]] in the MediaWiki API were changed in 2014. The old way will no longer work from 1 September. Scripts, bots and tools that use the parameters from before the 2014 change need to be updated. You can [[phab:T280806#7215377|read more]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年7月19日 (月) 15:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21755027 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/30|Tech News: 2021-30]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/30|翻訳]]されています。
'''最近の更新'''
* [[mw:MediaWiki 1.37/wmf.14|新しいバージョン]]のMediaWikiソフトウェアは先々週、 ウィキメディアのウィキ群で展開されました。当該の週は休刊したため、 技術ニュースへの掲載はありませんでした。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-07-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-07-28|ja}}に、その他のウィキには{{#time:n月j日|2021-07-29|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Special:MyLanguage/Skin:MonoBook|Monobook 外装]]を使っている場合は、モバイル版で[[:w:ja:レスポンシブウェブデザイン|レスポンシブデザイン]]を無効にできます。この機能が他の外装でも利用できるようになります。もし<code>{{int:monobook-responsive-label}}</code>のチェックを外している場合は、新しい[[Special:Preferences#mw-prefsection-rendering|個人設定の項目]] <code>{{int:prefs-skin-responsive}}</code>にもチェックを付けないでください。さもないと設定が無効になります。インターフェース管理者はウィキでこの処理を自動化できます。詳細は[[phab:T285991|こちら]]をご参照ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年7月26日 (月) 21:11 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21771634 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/31|Tech News: 2021-31]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/31|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキでマークアップに <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-ltr"></nowiki></code></bdi> あるいは <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-rtl"></nowiki></code></bdi> を使いながら必須の <bdi lang="zxx" dir="ltr"><code>dir</code></bdi>属性を指定していない場合、今後2週間で機能しなくなります。短期的な回避策として、ローカルウィキの Common.css ページに加筆する方法が[[phab:T287701|T287701]]で説明されています。今後は <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-ltr" dir="ltr" lang="en"></nowiki></code></bdi> または <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-rtl" dir="rtl" lang="he"></nowiki></code></bdi> のように完全な属性を指定する必要があります。これはその他のHTMLタグ、たとえば<code>span</code> や <code>code</code> も該当します。更新が必要なページを探すときは、[[phab:T287701|T287701]]にある手順の解説を参考にしてください。
* 再掲:ウィキメディアではチャットルームのネットワークを旧来のFreenodeから[[m:Special:MyLanguage/IRC/Migrating to Libera Chat| Libera Chat IRC]]へ移設しました。ローカルの解説文書の更新をお願いします。
'''問題点'''
* 先週、すべてのウィキでアクセスが遅延したり不可能になる障害が30分程度発生しました。ロシア語版ウィキニュースにおいて記事の動的一覧の生成に問題が起こり、3日間に20万件超の新規記事を一括してインポートしたため、データベースに障害が出たためです。問題を起こした機能は当該ウィキで無効にされており、開発者が適切に修正できるかどうか議論しています。 [https://phabricator.wikimedia.org/T287380][https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-07-26_ruwikinews_DynamicPageList]
'''今週の更新'''
* [[mw:VisualEditor|VisualEditor]]または[[mw:Special:MyLanguage/2017 wikitext editor|2017年ウィキテキスト編集機能]]を使ってページにリンクを追加するとき、[[mw:Special:MyLanguage/Extension:Disambiguator|曖昧さ回避ページ]]は検索結果の一覧で最下部にのみ表示されるようになりました。意図的に曖昧さ回避ページへ向けてリンクすることがごく稀であるためです。 [https://phabricator.wikimedia.org/T285510]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-04|ja}}に、その他のウィキには{{#time:n月j日|2021-08-05|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/Android|Android版ウィキペディア・アプリのチーム]]ではアプリ内のコミュニケーション機能を開発中です。他の編集者と会話したり通知を受信する方法について取り組んでいます。[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication|詳細はこちら]]をご参照ください。[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication/UsertestingJuly2021|計画のテスト]]に参加してくれる希望者を募集中です。Android スマホを持っていてアプリのダウンロードをしてもよいという編集者の皆さん、参加してください。
* {{int:discussiontools-preference-label}}の[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]が数週間以内に更新される予定です。トークページで[[mw:Talk pages project/Notifications|節ごとに購読]]できるウィキを増やします。トークページのURL ([https://meta.wikimedia.org/wiki/Meta_talk:Sandbox?dtenable=1 例]) の末尾に <code>?dtenable=1</code> と追加することでこの機能を試用することができます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月2日 (月) 20:48 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21818289 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/32|Tech News: 2021-32]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/32|翻訳]]されています。
'''問題点'''
* 8月10日にウィキ17件では、数分にわたり閲覧はできても編集ができない状態になります。時間は15:00 (UTC) の予定です。データベースの作業を行うためです。 [https://phabricator.wikimedia.org/T287449]
'''今週の更新'''
* [[wmania:Special:MyLanguage/2021:Hackathon|ウィキマニア ハッカソン]]はリモート開催で8月13日 5:00 UTC から 24時間にわたり行います。色々な参加方法が用意されています。プロジェクトやセッションの申し込みは引き続き受付中です。
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-10|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-11|ja}}に、その他のウィキには{{#time:n月j日|2021-08-12|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] 旧来のCSS <bdi lang="zxx" dir="ltr"><code><nowiki><div class="visualClear"></div></nowiki></code></bdi> は8月12日以降、サポートされなくなります。代わりに、テンプレートやページには <bdi lang="zxx" dir="ltr"><code><nowiki><div style="clear:both;"></div></nowiki></code></bdi> を使用してください。ウィキで旧来のCSSを使っている場合は、置換の作業を手伝ってください。[[phab:T287962|T287962]]でグローバル検索のリンクが提供されています。
'''今後の予定'''
* [[m:Special:MyLanguage/The Wikipedia Library|ウィキペディア図書館]]とは、ウィキペディア編集者の皆さんが典拠情報へアクセスできるようにするための空間です。いつ参加できるようになるか、ユーザーに知らせるための新しい[[mw:Special:MyLanguage/Extension:TheWikipediaLibrary|拡張機能]]があります。お知らせは通知機能を利用します。最初に参加出来るようになった利用者に対して9月に通知を行う予定です。その後、対象を拡大して順次通知を行います。 [https://phabricator.wikimedia.org/T288070]
* [[File:Octicons-tools.svg|15px|link=|高度]] MediaWikiでは将来的に[[w:ja:JavaScript|JavaScript]]のフレームワークとして[[w:ja:Vue.js|Vue.js]]を採用する予定です。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/SOZREBYR36PUNFZXMIUBVAIOQI4N7PDU/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月9日 (月) 16:21 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21856726 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/33|Tech News: 2021-33]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/33|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|改良型ベクタースキン]]でサイドバーから言語間リンクを編集するための項目が再度追加されました。当該のページからウィキデータの項目に移動してリンクを編集することができます。改良型ベクタースキンでは言語間リンクの配置を変えましたが、この新しい言語選択機能からは言語リンクを追加することができないためです。 [https://phabricator.wikimedia.org/T287206]
'''問題点'''
* 翻訳拡張機能を使用するウィキで不具合が発生していました。翻訳が反映されない、或いは英文に置き換えられるという問題が発生しました。不具合は既に修正済みです。 [https://phabricator.wikimedia.org/T288700][https://phabricator.wikimedia.org/T288683][https://phabricator.wikimedia.org/T288719]
'''今週の更新'''
* [[mw:Special:MyLanguage/Extension:Disambiguator|曖昧さ回避ページ]]へのリンクを追加した版に対して、[[mw:Help:Tags|タグ]]が付与されるようになります。意図せず曖昧さ回避ページへのリンクを追加してしまうケースがあるためです。このタグを活用することで、誤って追加されたリンクを見つけて修正することが容易になります。この機能が不要である場合、ウィキの設定で[[mw:Help:Tags#Deleting a tag added by the software|非表示]]にすることができます。 [https://phabricator.wikimedia.org/T287549]
*ツールに関する情報改善に協力してみませんか?あなたのコミュニティがツールリストについて話し合うための小規模な仮想ミートアップに出席、或いはミートアップを主催しませんか?[[m:Toolhub/The Quality Signal Sessions|Toolhub Quality Signal Sessions]]のトークページに連絡してください。[[m:Talk:Toolhub/The Quality Signal Sessions#Discussion topic for "Quality Signal Sessions: The Tool Maintainers edition"|ツールのメンテナ]]からの特定の質問に対するフィードバックを求めています。
* 利用者の会話ページへの書き込みが行われた場合、サブページを編集した場合でも[[mw:Special:MyLanguage/Help:Notifications#mute|ミュートした利用者のリスト]]に関係なく通知が行われるようになっていました。今週から会話ページ本体を編集した場合のみ通知が行われるようになります。 [https://phabricator.wikimedia.org/T288112]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-18|ja}}に、その他のウィキには{{#time:n月j日|2021-08-19|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/33|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月16日 (月) 19:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21889213 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/34|Tech News: 2021-34]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/34|翻訳]]されています。
'''最近の更新'''
* 記譜用の拡張機能 [[mw:Special:MyLanguage/Extension:Score|Score]] (<bdi lang="zxx" dir="ltr"><code><nowiki><score></nowiki></code></bdi> notation) は公開ウィキで再び使えるようになり、新しいバージョンにアップグレードされました。一部の機能は「セーフモード」でのみ機能するようになったため、使用できない場合があります。セキュリティの問題点が解決され、[[mw:Special:MyLanguage/Extension:Score/2021 security advisory|セキュリティ アドバイザリ]]が公開されました。
'''問題点'''
* {{#time:n月j日|2021-08-25|ja}}に[[phab:T289130|複数のウィキ]]で閲覧はできても編集ができない時間が数分、発生する見込みです。時間は[https://zonestamp.toolforge.org/1629871217 06:00 UTC] 頃を予定しています。データベースの管理を行うためです。 この時間はグローバルアカウントの管理操作もできなくなります
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-25|ja}}に、その他のウィキには{{#time:n月j日|2021-08-26|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月23日 (月) 21:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21923254 のリストを使用して送信したメッセージ -->
== Read-only reminder ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="MassMessage"/>
A maintenance operation will be performed on [https://zonestamp.toolforge.org/1629871231 {{#time: l F d H:i e|2021-08-25T06:00|en}}]. It should only last for a few minutes.
This will affect your wiki as well as 11 other wikis. During this time, publishing edits will not be possible.
Also during this time, operations on the CentralAuth will not be possible (GlobalRenames, changing/confirming e-mail addresses, logging into new wikis, password changes).
For more details about the operation and on all impacted services, please check [[phab:T289130|on Phabricator]].
A banner will be displayed 30 minutes before the operation.
Please help your community to be aware of this maintenance operation. {{Int:Feedback-thanks-title}}<section end="MassMessage"/>
</div>
2021年8月24日 (火) 20:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21927201 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/35|Tech News: 2021-35]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/35|翻訳]]されています。
'''最近の更新'''
* 一部の楽譜は構文が動作しなくなっており、修正を行う必要があります。[[:Category:{{MediaWiki:score-error-category}}]] を確認して修正が必要なページを確認してください。
'''問題点'''
* フォントがないため楽譜に歌詞を表示できないという不具合がありました。現在は修正済みです。別のフォントを使用したい場合、Phabricator で申請を行ってください。 [https://phabricator.wikimedia.org/T289554]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] MediaWiki API で[[mw:API:Tokens|トークン]]を取得する際に使用するパラメータは2014年に変更されました。古いパラメータは9月1日から使用できなくなります。2014年に変更される前のパラメータを使用しているスクリプト、ボット、ツールは修正が必要です。本件に関する詳細は[[phab:T280806#7215377|こちらをご覧ください]]。
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-01|ja}}に、その他のウィキには{{#time:n月j日|2021-09-02|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* {{#time:n月j日|2021-09-06|ja}}に[[phab:T289660|コモンズ]]で閲覧はできても編集ができない時間が数分、発生する見込みです。時間は[https://zonestamp.toolforge.org/1630818058 05:00 UTC] 頃を予定しています。データベースの管理を行うためです。
* 9月13日の週に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T287539]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月30日 (月) 16:02 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21954810 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/36|Tech News: 2021-36]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/36|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth/Feature_summary|Growth 機能]]が展開されたウィキではA/Bテストが行われている間、一部の新規利用者が新しい機能を使えませんでした。このたび、対象のウィキで最も規模が小さな21件において、新規利用者全員が新しい機能を利用できるようにしました。 [https://phabricator.wikimedia.org/T289786]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 2017年に jQuery ライブラリが 1 から 3 へとアップグレードされたため、互換レイヤーが提供されていました。移行期間はまもなく終了するため、サイトの読み込みが高速化します。ガジェットやユーザースクリプトを管理している利用者は JQMIGRATE エラーが出ていないかどうか確認して、コードを修正してください。放置するとエラーの原因になります。 [https://phabricator.wikimedia.org/T280944][https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/6Z2BVLOBBEC2QP4VV4KOOVQVE52P3HOP/]
* ポルトガル語版ウィキメディアでは昨年、編集するとき強制的にログインを行わせる実験を行いました。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Impact report for Login Required Experiment on Portuguese Wikipedia|この実験の影響調査報告書]] が公開されました。嫌がらせ行為対策ツールチームでは次の段階として、匿名利用者の編集を制限する短期的な実験に参加してくれるプロジェクトを募集しています。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Login Required Experiment|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年9月6日 (月) 15:20 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21981010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/37|Tech News: 2021-37]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/37|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Growth 機能]]を利用できるウィキペディアが45件になりました。 [https://phabricator.wikimedia.org/T289680]
* [[mw:Special:MyLanguage/Growth/Deployment table|大部分のウィキペディア]]では現在、Growth 機能にアクセスできます。Growth チームでは機能に関する[[mw:Special:MyLanguage/Growth/FAQ|よくある質問のページを公開]]しています。この翻訳可能なページでは機能の説明、使い方、設定の変更方法その他を扱っています。
'''問題点'''
* 9月14日には数分にわたり、[[m:Special:MyLanguage/Tech/Server switch|すべてのウイキで閲覧はできても保存ができなくなります]]。時間は [https://zonestamp.toolforge.org/1631628002 14:00 UTC]の予定です。 [https://phabricator.wikimedia.org/T287539]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-09-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-15|ja}}に、その他のウィキには{{#time:n月j日|2021-09-16|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
* 今週からイタリア語版ウィキペディアでは、毎週水曜日にソフトウェアの定期更新を行います。従来の実施日は木曜日でした。この変更により、バグの通知と修正が早まる見込みです。 [https://phabricator.wikimedia.org/T286664]
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|改良型ベクタースキン]]ではサイドバーから言語間リンクを編集するための項目が再度、追加されました。当該のページからウィキデータの項目に移動してリンクを編集することができます。改良型ベクタースキンでは言語間リンクの配置を変えましたが、この新しい言語選択機能からは言語リンクを追加することができないためです。 [https://phabricator.wikimedia.org/T287206]
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調]]ツールはコードごとに色分けして表示します。現在では23件の新しいコード言語を 協調表示するようになりました。さらに加えて、[[d:Q37227|Go プログラム言語]]のエイリアスとして<bdi lang="zxx" dir="ltr"><code>golang</code></bdi>を代用できるようになり、プログラムの出力を表示させる特殊な<bdi lang="zxx" dir="ltr"><code>output</code></bdi>モードを追加しました。 [https://phabricator.wikimedia.org/T280117][https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SyntaxHighlight_GeSHi/+/715277/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年9月13日 (月) 15:36 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22009517 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/38|Tech News: 2021-38]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/38|翻訳]]されています。
'''最近の更新'''
* Growth機能をほとんどの言語版のウィキペディアに展開しました。[[phab:T290582|殆どの小規模ウィキ]]では、[[mw:Special:MyLanguage/Growth/FAQ#enable|機能のテスト]]と[[mw:Special:MyLanguage/Growth/FAQ#config|構成]]を行うため、ある程度編集経験がある利用者のみが使えるようにしてあります。新規利用者には2021年9月20日から順次、使えるようにする予定です。
* MediaWiki ではローカルにある短い記事のリンクをそれぞれ異なるスタイルで強調する機能がありました。「スタブ」に指定するサイズは、利用者ごとに設定していました。この機能はパフォーマンス上非常によくなかったため、聞き取り調査を行った上で機能を除去しました。 [https://phabricator.wikimedia.org/T284917]
* モノブック外装は管理の効率と保持性を高めるため、技術的な変更を施しました。HTML に若干の変更を加え、モノブックでも HTML 記述を他の外装と共通にしました。編集者が受ける影響を最小にするよう留意しましたが、問題がある場合はウィキ上で [[m:User:Jon (WMF)|Jon (WMF)]] に通知するか、[[phab:T290888|phabricator]] に報告をお願いします。
'''問題点'''
* 先週、検索機能に問題が発生しました。検索サーバーが予期せず再起動したため、2時間にわたり検索リクエストが実行できませんでした。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-09-13_cirrussearch_restart]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-09-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-22|ja}}に、その他のウィキには{{#time:n月j日|2021-09-23|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] 査読用の [[s:Special:ApiHelp/query+proofreadinfo|meta=proofreadpage API]] が変更されました。<bdi lang="zxx" dir="ltr"><code><nowiki>piprop</nowiki></code></bdi> パラメータの名前を改め、<bdi lang="zxx" dir="ltr"><code><nowiki>prpiprop</nowiki></code></bdi>に変えました。API 利用者の皆さんはコードの更新を行い、パラメータを認識できないという警告が出ないようにしてください。Pywikibot をご利用の場合はバージョン6.6.0に更新をお願いします。 [https://phabricator.wikimedia.org/T290585]
'''今後の予定'''
* 今後の数週間で[[mw:Special:MyLanguage/Help:DiscussionTools#Replying|返信ツール]]を残りのウィキに実装できる見込みです。 現状ではほとんどのウィキで[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]の「{{int:discussiontools-preference-label}}」の一部として提供されています。無効にするには[[Special:Preferences#mw-prefsection-editing-discussion|個人設定を編集]]してください。 [https://phabricator.wikimedia.org/T262331]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:MediaWiki_1.37/Deprecation_of_legacy_API_token_parameters|以前、お知らせした]] API からトークンを取得する方法の変更はPywikibotとの不整合が判明したため、実施を9月21日に延期しました。ボットを運用している利用者でPywikibotをお使いの方は修正の進捗状況を[[phab:T291202|T291202]]で追跡し、トークンの取得方法が変更されたら6.6.1へアップグレードしていただくようお願いします。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年9月20日 (月) 18:33 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22043415 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/39|Tech News: 2021-39]] ==
<section begin="technews-2021-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/39|翻訳]]されています。
'''最近の更新'''
* [[w:ja:IOS|iOS 15]]に備わった新機能[https://support.apple.com/ja-jp/HT212614 プライベートリレー] (Apple ウェブサイト) は、[[w:ja:Safari (software)|Safari]] ブラウザを使うとき利用者の IP アドレスを秘匿できます。代替の IP が表示される点で [[:w:ja:VPN|VPN]](バーチャル プライベート ネットワーク)に似ていると言えます。これはオプトイン機能であり、[[w:ja:ICloud|iCloud]] に使用料を支払っている利用者のみが対象です。[[:w:ja:OSX|OSX]] 版の Safari ユーザーにも後日、提供される見込みです。ウィキメディアのウィキ群にとってどんな意味があるか、[[phab:T289795|技術的な議論]]を行っています。
'''問題点'''
* [[File:Octicons-tools.svg|15px|link=|高度]] ガジェットやユーザースクリプトには、外装の[[m:Customization:Explaining_skins#Portlets|ポートレット]] (記事用ツール) に項目を追加するものがあります。最近の HTML 変更により、それらリンクの文字サイズが変わった可能性があります。CSS クラス <bdi lang="zxx" dir="ltr"><code>.vector-menu-dropdown-noicon</code></bdi> を追加することで修正することができます。 [https://phabricator.wikimedia.org/T291438]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-09-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-29|ja}}に、その他のウィキには{{#time:n月j日|2021-09-30|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Onboarding_new_Wikipedians#New_experience|GettingStarted 拡張機能]]は2013年に作成され、ウィキペディアの一部の言語版で新規アカウントの所有者に初めての使い方を解説するプロセスを提供してきました。しかしながら、最近開発された[[mw:Special:MyLanguage/Growth/Feature_summary|Growth 機能]]の方が優れた入門体験を提供します。現在はウィキペディアの言語版のほとんどで後者にアクセスできるため、GettingStarted は10月4日以降、無効化される予定です。 [https://phabricator.wikimedia.org/T235752]
* ごく一部の利用者は9月30日以降、ウィキメディアのウィキ群にアクセスできなくなる見込みです。理由は旧来の[[:w:ja:ルート証明書|ルート証明書]]が機能しなくなるためです。また同じ利用者群では、他の多くのウェブサイトでも問題が出るかもしれません。過去5年以内にソフトウェアのアップデートを行った利用者には発生しにくい問題です。ヨーロッパ、アフリカ、アジアの利用者は、古いすぎるソフトウェアをら使っている場合でもすぐに問題が発生しない可能性があります。詳細は[[m:Special:MyLanguage/HTTPS/2021 Let's Encrypt root expiry|こちらをご覧ください]]。
* 誰かが利用者トークページやトークページのコメントで皆さんに言及したとき、 [[mw:Special:MyLanguage/Help:Notifications|通知が届く]]ようにすることができます。その通知をクリックすると当該のコメントが開き、強調表示するようになりました。これまでは同じ操作をしても、当該のコメントではなくそれを含む節見出しにジャンプしていました。詳細は[[phab:T282029|T282029をご参照ください]]。
'''今後の予定'''
* [[mw:Special:MyLanguage/Help:DiscussionTools#Replying|返信ツール]]は今後の数週間で未導入だったウィキに展開される予定です。現状では[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]の「{{int:discussiontools-preference-label}}」の一部の機能です。[[Special:Preferences#mw-prefsection-editing-discussion|個人設定の「編集」]]から無効にできるようになります。 [[phab:T288485|対象となるウィキの一覧はこちらをご覧ください。]] [https://phabricator.wikimedia.org/T262331]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W39"/>
2021年9月27日 (月) 22:24 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22077885 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/40|Tech News: 2021-40]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/40|翻訳]]されています。
'''最近の更新'''
* ウィキデータからウィキメディアウィキに送られた情報をより効率的に表示する方法が次の10のウィキで有効になりました: mediawiki.org、ウィキペディアの イタリア語版、カタロニア語版、ヘブライ語版、ベトナム語版、フランス語版ウィキソース、英語版ウィキボヤージュ、同ウィキブックス、同ウイクショナリー、同ウィキニュース ウィキデータの変更が当該のウィキで、最近の更新あるいは皆さんのウォッチリストになにか不具合があった場合は、[[phab:T48643|開発者にお知らせください]]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-06|ja}}に、その他のウィキには{{#time:n月j日|2021-10-07|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] API を使用して不正利用フィルターのログを読み取るガジェットとボットの一部に不具合が発生する可能性があります。<bdi lang="zxx" dir="ltr"><code>hidden</code></bdi> プロパティはエントリが <bdi lang="zxx" dir="ltr"><code>implicit</code></bdi> (本文が秘匿されていてログ自体は秘匿されていない)であるという結果を返さなくなります。ボットでこの情報を取得する場合は別にリビジョンクエリを実行してください。プロパティは表示されているエントリの値に <bdi lang="zxx" dir="ltr"><code>false</code></bdi> の値を返します(従来はこの値を返しませんでした) [https://phabricator.wikimedia.org/T291718]
* ウィキデータから送信された更新情報をウィキメディアのウィキで効率的に表示する方法が''全てのウィキの本番環境''で有効化されます。 ウィキデータの変更点に関する表示が、最近の更新あるいはウォッチリストでおかしくなった場合は、[[phab:T48643|開発者にお知らせください]]。
'''今後の予定'''
* まもなく[[mw:Wikimedia Apps/Team/iOS|iOS 版ウィキペディア・アプリ]]でもウィキ間通知が届くようになります。プッシュ通知を使って受信することもできるようになります。今後のバージョンで通知機能のさらなるアップデートを予定しています。 [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/iOS/Notifications#September_2021_update]
* [[File:Octicons-tools.svg|15px|link=|高度]] JavaScript の <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:Interface/JavaScript#mw.config|mw.config]]</code></bdi> にある変数 <bdi lang="zxx" dir="ltr"><code>wgExtraSignatureNamespaces</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgLegalTitleChars</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgIllegalFileChars</code></bdi> はまもなく除去されます。これらはウィキのJavaScriptで使用できる「安定した」変数ではありません。 [https://phabricator.wikimedia.org/T292011]
* [[File:Octicons-tools.svg|15px|link=|高度]] JavaScript の変数 <bdi lang="zxx" dir="ltr"><code>wgCookiePrefix</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgCookieDomain</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgCookiePath</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgCookieExpiration</code></bdi> はまもなく mw.config から除去される予定です。代わりに「<bdi lang="zxx" dir="ltr">[[mw:ResourceLoader/Core_modules#mediawiki.cookie|mediawiki.cookie]]</bdi>」モジュールの <bdi lang="zxx" dir="ltr"><code>mw.cookie</code></bdi> を使用する必要があります。 [https://phabricator.wikimedia.org/T291760]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年10月4日 (月) 16:33 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22101208 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/41|Tech News: 2021-41]] ==
<section begin="technews-2021-W41"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/41|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-13|ja}}に、その他のウィキには{{#time:n月j日|2021-10-14|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Manual:Table_of_contents#Auto-numbering|個人設定の「見出しに番号を自動的に振る」]]という項目は除去されました。理由と協議の内容は[[phab:T284921]]をご参照ください。この変更については[[m:Tech/News/2021/26|以前]]、お知らせしてあります。自動的な番号付与の継続を希望するウィキは[[mw:Snippets/Auto-number_headings|JavaScript のスニペット]]がありますので、ガジェットの作成にご利用ください。
'''ミーティング'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ版の改善]]についてミーティングにご参加ください。 [[mw:Reading/Web/Desktop Improvements/Features/Sticky Header|最新の機能]]のデモ版を公開する予定です。期日は10月12日(火曜)、16:00 (UTC) 開始予定です。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web/12-10-2021|参加登録はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W41"/>
2021年10月11日 (月) 15:31 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22152137 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/42|Tech News: 2021-42]] ==
<section begin="technews-2021-W42"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/42|翻訳]]されています。
'''最近の更新'''
*[[m:Toolhub|Toolhub]]は、ウィキメディアのプロジェクト群で作業に使えるソフトウェアを簡単に見つけられるカタログです。[https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LF4SSR4QRCKV6NPRFGUAQWUFQISVIPTS/ 詳細はこちら]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-20|ja}}に、その他のウィキには{{#time:n月j日|2021-10-21|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/Android|ウィキペディアのAndroid版アプリ]]の開発者は[[mw:Wikimedia Apps/Team/Android/Communication|アプリ内のコミュニケーション]]を改善中です。ぜひ[[mw:Wikimedia Apps/Team/Android/Communication/UsertestingOctober2021|アンケート]]に回答してご協力をお願いします。
* 3–5% の編集者が今後4、5ヵ月のうちにブロックされる可能性があります。[[w:ja:Proxy server|プロキシ]]あるいは[[w:ja:VPN|VPN]]に似た iCloud プライベートリレー という機能が Safari で新しく採用されたためです。Meta で[[m:Special:MyLanguage/Apple iCloud Private Relay|この件に関する議論を行なっています]]。コミュニティにとって iCloud プライベートリレーがどんな意味を持つか理解することを目標にしています。
* [[m:Special:MyLanguage/Wikimedia Enterprise|ウィキメディア・エンタープライズ]]は大量の情報をウィキメディアのプロジェクト群から取材して他のサイトで使う人向けの [[w:ja:API|API]] です。大規模商用ユーザーに有償でデータを提供する方法です。まもなくウィキメディア・エンタープライズのデータセット一式が提供されます。詳細は[https://lists.wikimedia.org/hyperkitty/list/wikitech-ambassadors@lists.wikimedia.org/message/B2AX6PWH5MBKB4L63NFZY3ADBQG7MSBA/ こちらをご覧ください]。また[https://wikimedia.zoom.us/j/88994018553 Zoom]にて [https://www.timeanddate.com/worldclock/fixedtime.html?hour=15&min=00&sec=0&day=22&month=10&year=2021 10月22日 15:00 UTC]より質疑応答の場を設けます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W42"/>
2021年10月18日 (月) 20:54 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22176877 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/43|Tech News: 2021-43]] ==
<section begin="technews-2021-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/43|翻訳]]されています。
'''最近の更新'''
* [[m:Special:MyLanguage/Coolest_Tool_Award|Coolest Tool Award 2021]](最もクールなツールに贈られる賞)のノミネート作品を募集しています。10月27日まで受け付けを行います。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-27|ja}}に、その他のウィキには{{#time:n月j日|2021-10-28|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
*[[m:Special:MyLanguage/Help:Diff|差分ページ]]でコピーとペーストが行いやすくなります。[[m:Special:MyLanguage/Community Wishlist Survey 2021/Copy paste diffs|この変更]]により変更前と変更後の差分が別のカラムとして表示されるようになり、不要な構文をコピーせずに済むようになります。 [https://phabricator.wikimedia.org/T192526]
* SVGファイルで使用されている [[w:ja:Liberation fonts|Liberation フォント]]が新しいバージョンにアップグレードされます。新しく生成されるサムネイルのみが影響を受けるようになり、Liberation Sans Narrow フォントは変更されません。 [https://phabricator.wikimedia.org/T253600]
'''ミーティング'''
* [[m:Special:MyLanguage/Community Wishlist Survey|コミュニティの要望アンケート]]に関するミーティングへの参加者を募集しています。[[m:Special:MyLanguage/Community Wishlist Survey 2021/Warn when linking to disambiguation pages|曖昧さ回避]]と[[m:Special:MyLanguage/Community Wishlist Survey 2021/Real Time Preview for Wikitext|リアルタイムプレビュー]]の要望が上がっています。ミーティングは11月27日水曜日の 14:30(UTC) に実施予定です。[[m:Special:MyLanguage/Community Wishlist Survey/Updates/Talk to Us|参加方法はこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W43"/>
2021年10月25日 (月) 20:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22232718 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/44|Tech News: 2021-44]] ==
<section begin="technews-2021-W44"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/44|翻訳]]されています。
'''最近の更新'''
* ひとりの利用者が1日に送れるウィキメールの通数には上限があります。今回、この上限の適用をウィキ単位からグローバル単位に変更しました。不正利用防止の措置です。 [https://phabricator.wikimedia.org/T293866]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-11-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-11-03|ja}}に、その他のウィキには{{#time:n月j日|2021-11-04|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W44"/>
2021年11月1日 (月) 20:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22269406 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/45|Tech News: 2021-45]] ==
<section begin="technews-2021-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/45|翻訳]]されています。
'''最近の更新'''
* モバイル機器から編集を行う IP 利用者には、トークページにメッセージが投稿されたという通知がモバイル版ウェブサイトに届くようになりました。(デスクトップ版のオレンジ色のバナーに似た仕組み 。) メインの名前空間に限らず、どのページでも示され、編集を始めようとする度に現れます。デスクトップでは従来の表示色がわずかに変わりました。 [https://phabricator.wikimedia.org/T284642][https://phabricator.wikimedia.org/T278105]
'''今週の更新'''
* [[phab:T294321|ウィキデータ]]では11月11日に数分の間、データベースのメンテナンスのため閲覧専用の状態になります。日本時間15:00([https://zonestamp.toolforge.org/1636610400 06:00 (UTC)])前後に行われる予定です。 [https://phabricator.wikimedia.org/T294321]
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 将来的に未登録利用者は[[:w:ja:IPアドレス|IPアドレス]]を使わずに識別されるようになります。これは法的な理由によるものです。荒らし、スパム、嫌がらせ行為などに対応するため未登録利用者のIPを知る必要があるユーザーにはIPアドレスを確認できる新しい権限が与えられます。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|提案されている仕様]]をご覧ください。また、本件に関する[[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|ご意見もお待ちしています]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W45"/>
2021年11月8日 (月) 20:37 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22311003 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/46|Tech News: 2021-46]] ==
<section begin="technews-2021-W46"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/46|翻訳]]されています。
'''最近の更新'''
* [[c:Special:MyLanguage/Commons:Maximum_file_size#MAXTHUMB|重いファイルをアップロード ]]した時のエラーで「<bdi lang="zxx" dir="ltr"><code>stashfailed</code></bdi>」や「<bdi lang="zxx" dir="ltr"><code>DBQueryError</code></bdi>」と表示されるエラーのほとんどは解消されました。[[wikitech:Incident documentation/2021-11-04 large file upload timeouts|事例レポート]]もご覧ください。
'''問題点'''
* iOS 端末からビジュアルエディタを使って編集すると、オペレーティング・システムの機能が原因で数字の羅列を電話番号のリンクに変換して保存することがあります。現在、この問題を調査中です。 [https://phabricator.wikimedia.org/T116525]
* 先週、検索機能に問題が発生しました。検索サーバーが予期せず再起動したため、2時間にわたり多くの検索リクエストが実行できませんでした。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-11-10_cirrussearch_commonsfile_outage]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-11-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-11-17|ja}}に、その他のウィキには{{#time:n月j日|2021-11-18|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W46"/>
2021年11月15日 (月) 22:07 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22338097 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/47|Tech News: 2021-47]] ==
<section begin="technews-2021-W47"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/47|翻訳]]されています。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
*ビジュアルエディターや[[Special:Preferences#mw-prefsection-betafeatures|新しいウィキテキストモード]]でベータ版として提供されているテンプレートのダイアログ[[phab:T286992|一部のウィキ]]で[[m:WMDE Technical Wishes/VisualEditor template dialog improvements|大幅に機能が改善]]します。[[m:Talk:WMDE Technical Wishes/VisualEditor template dialog improvements|ご意見をお待ちしています]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W47"/>
2021年11月22日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22366010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/48|Tech News: 2021-48]] ==
<section begin="technews-2021-W48"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/48|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-11-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-12-01|ja}}に、その他のウィキには{{#time:n月j日|2021-12-02|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W48"/>
2021年11月29日 (月) 21:15 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22375666 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/49|Tech News: 2021-49]] ==
<section begin="technews-2021-W49"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/49|翻訳]]されています。
'''問題点'''
* 先週、計画されていた MediaWiki 1.38-wmf.11 の展開は、一部のウィキで予期せぬ問題が発生したため遅延が起こりました。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-12-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-12-08|ja}}に、その他のウィキには{{#time:n月j日|2021-12-09|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* すべてのウィキペディアで指導役ダッシュボード(Mentor Dashboard)を <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MentorDashboard</nowiki></code></bdi> に展開しました。指導役として登録し、新規参加者の初歩を補佐する人たちは、これを使って担当の新規参加者の活動を見守ります。 [[mw:Special:MyLanguage/Growth/Feature summary|Growth 機能]]の一環です。[[mw:Special:MyLanguage/Growth/Mentor dashboard|指導役ダッシュボードのプロジェクト]]の詳細、ご利用のウィキで[[mw:Special:MyLanguage/Growth/Communities/How_to_configure_the_mentors%27_list|指導役名簿]]を有効にする方法をご参照ください。
* [[File:Octicons-tools.svg|15px|link=|高度]] 今週、現在の [[mw:API|MediaWiki 活動 API]] の旧版 <bdi lang="zxx" dir="ltr"><code><nowiki>action=ajax</nowiki></code></bdi>(2008年製作)を除去する予定です。これを利用している全てのボットやスクリプトは対応する API モジュールへの切り替えが必要です。 [https://phabricator.wikimedia.org/T42786]
* [[File:Octicons-tools.svg|15px|link=|高度]] 旧版の ResourceLoader モジュール <bdi lang="zxx" dir="ltr"><code><nowiki>jquery.jStorage</nowiki></code></bdi>which は2016年より非推奨でしたが、今週、除去の予定です。 これを利用している全てのボットやスクリプトは <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.storage</nowiki></code></bdi> への切り替えが必要です。 [https://phabricator.wikimedia.org/T143034]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W49"/>
2021年12月6日 (月) 21:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22413926 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/50|Tech News: 2021-50]] ==
<section begin="technews-2021-W50"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/50|翻訳]]されています。
'''最近の更新'''
* ほとんどのウィキが規定で「Project:」の[[m:Special:MyLanguage/Help:Namespace#Other_namespace_aliases|短いエイリアス]]を利用できるようになりました。たとえばウィキブックスのウィキでは、<bdi lang="zxx" dir="ltr"><code><nowiki>[[WB:]]</nowiki></code></bdi>はローカルの言語で既定の<bdi lang="zxx" dir="ltr"><code><nowiki>[[Project:]]</nowiki></code></bdi>名前空間に飛びます。この変更は小規模コミュニティがこの機能を簡便に利用できるようにするためです。 [[m:Special:MyLanguage/Requesting wiki configuration changes|通常の手続き]]により、その他のローカルのエイリアス作成を依頼することができます。 [https://phabricator.wikimedia.org/T293839]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-12-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-12-15|ja}}に、その他のウィキには{{#time:n月j日|2021-12-16|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W50"/>
2021年12月13日 (月) 22:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22441074 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/51|Tech News: 2021-51]] ==
<section begin="technews-2021-W51"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/51|翻訳]]されています。
'''技術ニュース'''
* [[w:ja:年末年始|年末年始]]に当たるため、技術ニュースの次号は2022年1月10日の発行になります。
'''最近の更新'''
* DynamicPageList拡張機能 (<bdi lang="zxx" dir="ltr"><code><nowiki><DynamicPageList></nowiki></code></bdi>) によるクエリは10秒間のみ実行されるようになり、それより長くなった場合はエラーが出るようになります。実行時間の長いクエリによってウィキが停止して、他のウィキまで停止する事態が多発したためです。 [https://phabricator.wikimedia.org/T287380#7575719]
'''今週の更新'''
* 今週と来週は、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* iOS版ウィキペディアアプリの開発者は複数の言語で編集活動を行うテスト参加者を募集しています。[[mw:Wikimedia Apps/Team/iOS/202112 testing|興味がある方はこちらの詳細をご覧下さい]]。
* [[File:Octicons-tools.svg|15px|link=|高度]] Wikimedia [[wikitech:Portal:Cloud VPS|Cloud VPS]] はウィキメディア・ムーブメントの技術プロジェクトをホストしています。年1回、古くて使われていないプロジェクトを削除する時期になりましたので、開発者の皆さんは使用中の[[wikitech:News/Cloud VPS 2021 Purge|プロジェクトの継続使用を申請]]してください。申請のなかったプロジェクトは12月1日以降は閉鎖され、1月1日以降に順次削除される可能性があります。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/2B7KYL5VLQNHGQQHMYLW7KTUKXKAYY3T/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W51"/>
2021年12月20日 (月) 22:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22465395 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/02|Tech News: 2022-02]] ==
<section begin="technews-2022-W02"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/02|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 特定のツールに寄って行われた変更を認識できるようにするため、[[mw:Special:MyLanguage/AbuseFilter|不正利用フィルター]]に変数 <bdi lang="zxx" dir="ltr"><code>oauth_consumer</code></bdi> が追加されました。 [https://phabricator.wikimedia.org/T298281]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/ResourceLoader/Migration_guide_(users)#Package_Gadgets|JSON ページを使ってガジェットを構成できる]]ようになりました。これにより、Geonotice などのガジェットはインターフェース管理者の権限を持たない管理者でもガジェットの設定を変更できるようになります。 [https://phabricator.wikimedia.org/T198758]
* [[File:Octicons-tools.svg|15px|link=|高度]] ガジェットに[[mw:Extension:Gadgets#Options|特定の操作を行ったときのみ動作する]]という設定が追加されました。例えば <bdi lang="zxx" dir="ltr"><code>|actions=edit,history</code></bdi> という指定があるガジェットは編集と履歴のページでのみ動作します。 [https://phabricator.wikimedia.org/T63007]
* [[File:Octicons-tools.svg|15px|link=|高度]] <bdi lang="zxx" dir="ltr"><code>withgadget</code></bdi> という URL のパラメータを使用してガジェットをロードできるようになりました。一般的に <bdi lang="zxx" dir="ltr"><code>withJS</code></bdi> や <bdi lang="zxx" dir="ltr"><code>withCSS</code></bdi> として利用されてきた[[mw:Special:MyLanguage/Snippets/Load JS and CSS by URL|従来のスニペット]]を置換することができます。 [https://phabricator.wikimedia.org/T29766]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list|メンターシップが構成されている]]ウィキで Action API を使って[[mw:Special:MyLanguage/Growth/Mentor_dashboard|メンター]](指導する側)のメンティー(指導を受ける側)の一覧を取得できるようになります。 [https://phabricator.wikimedia.org/T291966]
* メインページの見出しを設定できるようになりました。ログイン利用者向けの表示には <span class="mw-content-ltr" lang="en" dir="ltr">[[MediaWiki:Mainpage-title-loggedin]]</span> を、非ログイン利用者はの表示は <span class="mw-content-ltr" lang="en" dir="ltr">[[MediaWiki:Mainpage-title]]</span> を使ってください。旧来、見出しを非表示にするため使われてきた CSS 類は除去する必要があります。 [https://meta.wikimedia.org/wiki/Special:MyLanguage/Small_wiki_toolkits/Starter_kit/Main_page_customization#hide-heading] [https://phabricator.wikimedia.org/T298715]
* 4つの特別ページ(及びそれに対応する API)のデータベースクエリの最大実行時間が30秒に設定されました。対象となるのは最近の更新、ウォッチリスト、投稿黒く、ログのページです。パフォーマンスと安定性が向上します。ワークフローに影響が出る場合の解決策については[https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IPJNO75HYAQWIGTHI5LJHTDVLVOC4LJP/ この変更に関する詳細をご覧ください]。 [https://phabricator.wikimedia.org/T297708]
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Sticky Header|固定ヘッダー]]は[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Frequently asked questions#pilot-wikis|10以上のウィキ]]で50%以上のログインユーザーに提供されています。これは[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ版改善プロジェクト]]の一環です。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Participate|プロジェクトへの参加方法はこちら]]でご案内しています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-01-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-01-12|ja}}に、その他のウィキには{{#time:n月j日|2022-01-13|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''イベント'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022|2022年のコミュニティ要望リスト調査]]が始まります。ウィキメディアプロジェクトの参加者であれば誰でもツールとプラットフォームの改善を提案することができます。提案フェーズは{{#time:n月j日|2022-01-10|ja}} 18:00 UTC から {{#time:n月j日|2022-01-23|ja}} UTC までです。[[m:Special:MyLanguage/Community_Wishlist_Survey/FAQ|詳細はこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W02"/>
2022年1月11日 (火) 01:24 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22562156 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/03|Tech News: 2022-03]] ==
<section begin="technews-2022-W03"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/03|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Extension:WikiEditor|WikiEditor]](一般的には2010年版ウィキテキストエディタと呼ばれる機能です)を使ったとき、曖昧さ回避ページにリンクさせたという警告を表示するようになりました。警告メッセージの「{{int:Disambiguator-review-link}}」をクリック、リンクをもっと固有の用語に付け替えるように指示が出ます。2021年コミュニティ要望に基づき実装されたものです。[[m:Community Wishlist Survey 2021/Warn when linking to disambiguation pages#Jan 12, 2021: Turning on the changes for all Wikis|詳細な情報はこちら]]をご参照ください。
* [[mw:Special:MyLanguage/Talk pages project/Feature summary|議論ツール]]を使うと、ご自分が議論の提案者もしくはコメント者として投稿したすべてのページを[[mw:Special:MyLanguage/Help:DiscussionTools#subscribe|自動的に購読]]できます。他の編集者が返信すると[[mw:Special:MyLanguage/Notifications|通知]]が届きます。この機能はほとんどのウィキで利用できます。使用するときは[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]を開き「{{int:discussiontools-preference-autotopicsub}}」を有効にしてください。 [https://phabricator.wikimedia.org/T263819]
* 新規ページの作成、または議論のページに新しい見出しを立てる場合、入力欄に[[mw:Special:MyLanguage/Manual:Creating_pages_with_preloaded_text|特定の内容を「あらかじめ読み込む」]](プリロードする)ことができます。この機能は現在、ウィキテキスト記法ができるページに限定されています。利用者がだまされ、悪意のある編集をしてしまうのを予防するためです。コンテンツの種類を限定して[[phab:T297725|この機能を再度、使えるようにするかどうか]]、議論中です。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-01-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-01-19|ja}}に、その他のウィキには{{#time:n月j日|2022-01-20|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''イベント'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022|2022年のコミュニティ要望リスト調査]]が進行中です。ウィキメディアプロジェクトの参加者であれば誰でもツールとプラットフォームの改善を提案することができます。提案の受付期間は{{#time:n月j日|2022-01-10|ja}} 18:00 UTC から {{#time:n月j日|2022-01-23|ja}} UTC までです。[[m:Special:MyLanguage/Community_Wishlist_Survey/FAQ|詳細はこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W03"/>
2022年1月17日 (月) 19:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22620285 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/04|Tech News: 2022-04]] ==
<section begin="technews-2022-W04"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/04|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-01-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-01-26|ja}}に、その他のウィキには{{#time:n月j日|2022-01-27|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]が新しく BDD、Elpi、LilyPong、Maxima、Rita、Savi、Sed、Sophia、Spice、.SRCINFO の言語に対応しました。
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|改良型ベクタースキン]]でユーザーメニューを展開せずにウォッチリストへアクセスできるようになりました。ページ最上部の通知アイコンの隣にウォッチリストへのリンクがあります。 [https://phabricator.wikimedia.org/T289619]
'''イベント'''
* [[m:Special:MyLanguage/Coolest Tool Award|Coolest Tool Award 2021]](最もクールなツールに贈られる賞)の結果を発表しています。今年選ばれた14のツールの詳細をご覧ください。
* コミュニケーション要望リストアンケートの[[m:Special:MyLanguage/Community Wishlist Survey 2022/Proposals|提案]]について[[m:Special:MyLanguage/Community_Wishlist_Survey/Help_us|翻訳と告知]]にご協力ください。投票は{{#time:n月j日|2022-01-28|ja}}に開始予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W04"/>
2022年1月24日 (月) 21:38 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22644148 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/05|Tech News: 2022-05]] ==
<section begin="technews-2022-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/05|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 3週間前に[[m:Special:MyLanguage/Tech/News/2022/02|発表された]] URL パラメータ <bdi lang="zxx" dir="ltr"><code>?withgadget</code></bdi> をガジェットでサポートする場合、ガジェットの定義で <bdi lang="zxx" dir="ltr"><code>supportsUrlLoad</code></bdi> を指定する必要があります([[mw:Special:MyLanguage/Extension:Gadgets#supportsUrlLoad|解説]])。 [https://phabricator.wikimedia.org/T29766]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-02|ja}}に、その他のウィキには{{#time:n月j日|2022-02-03|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 昨年に[[m:Special:MyLanguage/Tech/News/2021/16|発表された]]以下の告知内容は実装が遅れていましたが、このたび準備が整いました:
** 利用者グループ <code>oversight</code> は <code>suppress</code> へと改称されます。これは[[phab:T109327|技術的な理由によるものです]]。変更されるのはシステム上の名称です。ウィキ上におけるグループの名称に影響を与えるものではありません。変更作業は3週間以内に実施予定です。意義を申し立てる場合は[[phab:T112147|Phabricator]]にコメントをお願いします。 いつものように関連するラベルは translatewiki ([[phab:T112147|リンク先参照]])またはウィキの管理者が変更できます。
'''イベント'''
* 1月28日から2月11日まで、[[m:Special:MyLanguage/Community Wishlist Survey 2022|コミュニティ要望アンケート]]では提案に対する投票を受け付けています。これにより[[m:Special:MyLanguage/Community Tech|コミュニティ技術チーム]]の作業課題が決まります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W05"/>
2022年1月31日 (月) 17:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22721804 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/06|Tech News: 2022-06]] ==
<section begin="technews-2022-W06"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/06|翻訳]]されています。
'''最近の更新'''
* 最近、英語版ウィキペディアでダークモードのガジェットが導入されました。自分たちのウィキでも使ってみたい場合は[[m:Special:MyLanguage/Interface administrators|インターフェース管理者]]に相談してみてください([[w:en:Wikipedia:Dark mode (gadget)|概要及びスクリーンショット]])。
* カテゴリ内のカウントが間違っている場合があります。毎月初めに再度カウントが行われ修正されます。 [https://phabricator.wikimedia.org/T299823]
'''問題点'''
* 先週[[mw:Special:MyLanguage/Manual:Live preview|ライブプレビュー]]のバグを修正するためコードを修正したところ、一部のローカルガジェットやユーザースクリプトに影響が出た可能性があります。<bdi lang="zxx" dir="ltr"><code>vector</code></bdi> 固有のコードがある場合は <bdi lang="zxx" dir="ltr"><code>vector-2022</code></bdi> もチェックするように修正する必要があります。[[phab:T300987|コードスニペット、グローバル検索、サンプルをご覧ください]]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-09|ja}}に、その他のウィキには{{#time:n月j日|2022-02-10|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W06"/>
2022年2月7日 (月) 21:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22765948 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/07|Tech News: 2022-07]] ==
<section begin="technews-2022-W07"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/07|翻訳]]されています。
'''最近の更新'''
* 所属するものが5000件未満しかないカテゴリページを[[mw:Special:MyLanguage/Manual:Purge|パージする]]と、完全な再集計が行われるようになります。件数が間違っているとき、編集者はこれを利用して修正できるようになります。 [https://phabricator.wikimedia.org/T85696]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-16|ja}}に、その他のウィキには{{#time:n月j日|2022-02-17|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]拡張機能の<code dir=ltr>rmspecials()</code> 機能が近日中に更新され、 "半角スペース" を除去しなくなります。どのウィキでもフィルターが正常に機能するよう、<code dir=ltr>rmspecials()</code> を使用する必要があるときには <code dir=ltr>rmwhitespace()</code> で挟むように推奨されます。既存の使用箇所を検出するには、[[Special:AbuseFilter|不正利用フィルター管理]]の検索機能を使ってください。 [https://phabricator.wikimedia.org/T263024]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W07"/>
2022年2月14日 (月) 19:19 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22821788 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/08|Tech News: 2022-08]] ==
<section begin="technews-2022-W08"/><div class="plainlinks">
<div lang="en" dir="ltr" class="mw-content-ltr">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2022/08|Translations]] are available.
</div>
'''最近の更新'''
* [[Special:Nuke|特別:まとめて削除]]で多数のページを削除するときに標準の削除理由(<bdi lang="en" dir="ltr">[[MediaWiki:Deletereason-dropdown]]</bdi> で編集可能)が提示され、使えるようになります。これは[[m:Community Wishlist Survey 2022/Admins and patrollers/Mass-delete to offer drop-down of standard reasons, or templated reasons.|2022年のコミュニティ要望アンケート]]で挙がった要望の一つでした。 [https://phabricator.wikimedia.org/T25020]
* ウィキペディアでは新規アカウントが作成されたときデフォルトで[[mw:Special:MyLanguage/Growth/Feature_summary|Growth 機能]]が有効になるようになりました。各コミュニティで[[mw:Special:MyLanguage/Help:Growth/Tools/Account_creation|ヘルプページを更新]]することが奨励されます。以前は新規アカウントのうち80パーセントだけにGrowth 機能が有効でした。いくつかのウィキペディアはこの変更に影響されません。 [https://phabricator.wikimedia.org/T301820]
* ページ中にある特定の画像が別の場所(PagePreviewsや検索結果など)で表示されることを防ぐことができるようになりました。これは <bdi lang="zxx" dir="ltr"><code><nowiki>class=notpageimage</nowiki></code></bdi> の記法で行います。例としては <code><nowiki>[[File:例.png|class=notpageimage]]</nowiki></code> です。 [https://phabricator.wikimedia.org/T301588]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 特別:投稿記録、特別:統合記録と変更記録のページでは、[[mw:Special:MyLanguage/Skin:Minerva_Neue|モバイル外装]]で変更点の日付によるグループ化をサポートするため、HTMLを変更しました。可能性は低いのですがガジェットやユーザースクリプトに影響が出るかもしれません。[[phab:T298638|すべての HTML 変更の一覧]]は Phabricator にあります。
'''イベント'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022/Results|コミュニティ要望アンケートの結果]]が公表されました。[[m:Special:MyLanguage/Community Wishlist Survey/Updates/2022 results#leaderboard|優先度の高い提案]]のリストもあります。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-23|ja}}に、その他のウィキには{{#time:n月j日|2022-02-24|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ページ上の動画ファイルと音声ファイルを再生するソフトウェアが、もうすぐ全ウィキで変わります。古い方のソフトウェアは提供されなくなります。音声の再生ツールはこれにより横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しい方のソフトウェア]]はベータ版機能として四年前から利用できています。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Toolforge's underlying operating system is being updated. If you maintain any tools there, there are two options for migrating your tools into the new system. There are [[wikitech:News/Toolforge Stretch deprecation|details, deadlines, and instructions]] on Wikitech.</span> [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EPJFISC52T7OOEFH5YYMZNL57O4VGSPR/]
* 管理者には近々、あるページを削除したときに対応する「トーク」ページもあわせて[[m:Special:MyLanguage/Community Wishlist Survey 2021/(Un)delete associated talk page|削除/復元するオプション]]が与えられます。このオプションの備わったAPIエンドポイントもまた提供します。これは[[m:Community Wishlist Survey 2021/Admins and patrollers/(Un)delete associated talk page|2021年要望調査で採用されたリクエスト]]のひとつでした。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W08"/>
2022年2月21日 (月) 19:12 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22847768 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/09|Tech News: 2022-09]] ==
<section begin="technews-2022-W09"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/09|翻訳]]されています。
'''最近の更新'''
* ページの変更履歴や利用者の投稿履歴を[[mw:Special:MyLanguage/Help:Tags|タグ]]で検索するとき、使用可能なタグをドロップダウンから選べるようにしました。これは[[m:Community Wishlist Survey 2022/Miscellaneous/Improve plain-text change tag selector|2022年コミュニティ技術要望リスト]]で選ばれたものです。 [https://phabricator.wikimedia.org/T27909]
* [[mw:Special:MyLanguage/Growth/Mentor_dashboard|Growth 指導役ダッシュボード]]をご利用の指導役の皆さんには、ご自分の担任になった初学者の一覧に1回以上200回未満の編集回数が表示されるようになりました。従来は指導役に割り当てられた初学者はダッシュボードで確認できても、編集が0回なのか数百回なのか見きわめができませんでした。現在もダッシュボードのフィルタで回数の調整ができます。また直近に選んだフィルタを記録するようになりました。 [https://phabricator.wikimedia.org/T301268][https://phabricator.wikimedia.org/T294460]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 利用者グループの <code>oversight</code> は <code>suppress</code> とへと改称されました。これは[[phab:T109327|技術的な理由]]によるものです。たとえばガジェットなどに記してある元の名称への参照、Special:Listusers へのリンク、あるいは[[mw:Special:MyLanguage/Help:Magic_words|NUMBERINGROUP]]を使うものの更新が必要かどうかチェックしてください。
'''問題点'''
* 最近、 [[mw:Special:MyLanguage/Help:Tracking changes|変更の追跡]]ページの HTML を変更した影響でスクリーンリーダーにいくつかの問題が発生しました。現在は修正済みです。 [https://phabricator.wikimedia.org/T298638]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-02|ja}}に、その他のウィキには{{#time:n月j日|2022-03-03|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* テンプレートの取り扱いが少し楽になります。[[m:WMDE_Technical_Wishes/Templates|複数の改善]] を3月9日付でほとんどのウィキに、3月16日付で英語版ウィキペディアに導入する予定です。次の改善を含みます。カッコの一致、構文の強調表示の色指定、テンプレートの選択と挿入など関連のビジュアルエディタの機能です。
* テンプレート開発者やインタフェース管理者の皆さんで、利用者フィードバック用 CSS (クラス:<code dir=ltr>successbox, messagebox, errorbox, warningbox</code>) の既定のスタイルを意図的に上書きしたり使ったりしている場合は、これらのクラスや関連の CSS はまもなくMediaWiki コアから除去される点にご留意ください。これは同一のクラス名が特定のウィキでも使われる場合に発生する問題の回避措置です。何か影響を受けそうな場合は [[phab:T300314]] にてコメントをお願いします。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W09"/>
2022年2月28日 (月) 23:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22902593 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/10|Tech News: 2022-10]] ==
<section begin="technews-2022-W10"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/10|翻訳]]されています。
'''問題点'''
* 先週、一部のインターフェースのラベルに問題が発生していました。今週、修正される予定です。この変更はアクティブなメンテナがいないスキンのサポートを簡素化するために行っている作業の一環として行われたものです。 [https://phabricator.wikimedia.org/T301203]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-09|ja}}に、その他のウィキには{{#time:n月j日|2022-03-10|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W10"/>
2022年3月7日 (月) 21:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22958074 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/11|Tech News: 2022-11]] ==
<section begin="technews-2022-W11"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/11|翻訳]]されています。
'''最近の更新'''
* Android 版のウィキペディア・アプリでは画面下部のツールバーを[[mw:Special:MyLanguage/Wikimedia_Apps/Team/Android/Communication#Updates|変更できるようになりました]]。これによりよく使うツールが使いやすくなります、また、閲読に集中できるモードも導入されています。 [https://phabricator.wikimedia.org/T296753][https://phabricator.wikimedia.org/T254771]
'''問題点'''
* 2021年6月から2022年1月まで、すべてのウィキの一部のページで閲覧回数のデータ収集に不具合が生じていました。統計が不完全だった可能性があります。どのプロジェクトが最も影響を受けたか計算するため、関連するデータセットが更に30日間保存されます。詳細は[[m:Talk:Data_retention_guidelines#Added_exception_for_page_views_investigation|メタウィキをご覧ください]]。
* 3月10日、データベースの問題が発生しました。すべてのウィキでログインしているユーザーが12分間すべてのウィキにアクセスできなくなりました。ログインしていないユーザーがページを閲覧することはできましたが、編集したり、キャッシュされていないページを閲覧することはできませんでした。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/2022-03-10_MediaWiki_availability]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-16|ja}}に、その他のウィキには{{#time:n月j日|2022-03-17|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:System_message#Finding_messages_and_documentation|<bdi lang="zxx" dir="ltr"><code>uselang=qqx</code></bdi> を使用してローカライズ対象のメッセージを調べるとき]]、「{{int:vector-view-history}}」などのナビゲーションタブで使用可能なメッセージキーをすべて表示するようになりました。 [https://phabricator.wikimedia.org/T300069]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[{{#special:RevisionDelete}}]] へのアクセス権限が拡張されました。以前は <code dir=ltr>deleterevision</code> 権限を持つユーザーのみがアクセスできましたが、<code dir=ltr>deletedhistory</code> と <code dir=ltr>deletedhistory</code> 権限を持つユーザーもアクセスできるようになります。 [https://phabricator.wikimedia.org/T301928]
* [[{{#special:Undelete}}]] のページで差分表示を行ったとき、削除された版の一覧を表示していたページへ戻るためのリンクが提供されるようになりました。 [https://phabricator.wikimedia.org/T284114]
'''今後の予定'''
* ウィキメディア財団はIPマスキングの実相戦略と次のステップについて発表を行いました。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation#feb25|発表の詳細をご覧ください]]。
* [[mw:Special:MyLanguage/Wikimedia Apps/Android FAQ|Wikipedia Android アプリ]]の開発者は利用者の会話ページや記事のノートページに関する[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication|新しい機能]]の開発に取り組んでいます。 [https://phabricator.wikimedia.org/T297617]
'''イベント'''
* [[mw:Wikimedia Hackathon 2022|Wikimedia ハッカソン 2022]]は2022年5月20-22日にハイブリッドイベントとして開催されます。ハッカソンはオンラインで開催され、世界各地の交流をサポートするための助成金も利用できます。助成金の申請は3月20日まで受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W11"/>
2022年3月14日 (月) 22:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22993074 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/12|Tech News: 2022-12]] ==
<section begin="technews-2022-W12"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/12|翻訳]]されています。
'''今週の新しいコードリリーススケジュール'''
* 今週は1回ではなく4回の MediaWiki のリリースを予定しています。これは問題解決と将来のアップデートを高速化するための試みです。月曜日、火曜日、水曜日の様々な時間帯にすべてのウィキでリリースを予定しています。[[mw:Special:MyLanguage/Wikimedia Release Engineering Team/Trainsperiment week|このプロジェクトに関する詳細はこちらをご覧ください]]。
'''最近の更新'''
* 検索結果の表示件数を[[Special:Preferences#mw-prefsection-searchoptions|個人設定]]から設定できるようになりました。これは[[m:Special:MyLanguage/Community Wishlist Survey 2022/Results|2022年のコミュニティ要望リスト]]で12番目に多かった要望です。 [https://phabricator.wikimedia.org/T215716]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Jupyter notebooks のツール [[wikitech:PAWS|PAWS]] がアップデートされ、インターフェースが新しくなりました。 [https://phabricator.wikimedia.org/T295043]
'''今後の予定'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] を介したマップがまもなく [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevisions]] 拡張機能で使えるようになります。Kartographer で改善してほしいところがあれば[https://wikimedia.sslsurvey.de/Kartographer-Workflows-EN/ お知らせください]。この調査には簡単な英語で答えることができます。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W12"/>
2022年3月21日 (月) 16:01 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23034693 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/13|Tech News: 2022-13]] ==
<section begin="technews-2022-W13"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/13|翻訳]]されています。
'''最近の更新'''
* macOS ユーザー向けにウィキメディアコモンズの簡略なアップロード用ツール [[c:Commons:Sunflower|Sunflower]] が利用できるようになりました。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-30|ja}}に、その他のウィキには{{#time:n月j日|2022-03-31|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* データベースの定期的な保守のため、一部のウィキが数分程度、閲覧専用の状態になる予定です。実施日時は{{#time:j xg|2022-03-29|ja}}の7:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象のウィキはこちら]) ならびに{{#time:j xg|2022-03-31|ja}} の7:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象のウィキはこちら]) の見込みです。 [https://phabricator.wikimedia.org/T301850][https://phabricator.wikimedia.org/T303798]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W13"/>
2022年3月28日 (月) 19:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23073711 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/14|Tech News: 2022-14]] ==
<section begin="technews-2022-W14"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/14|翻訳]]されています。
'''問題点'''
* 先週は数日の間、編集初学者に向けたおすすめ編集が [[{{#special:recentchanges}}]] フィードでタグ付けされていませんでした。このバグは修正済みです。 [https://phabricator.wikimedia.org/T304747]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-06|ja}}に、その他のウィキには{{#time:n月j日|2022-04-07|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-04-07|ja}}<!-- 4月7日 {{#time:j xg|2022-04-07|ja}} -->の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象のウィキの一覧はこちら]。)
'''今後の予定'''
* 来週から技術ニュースの題名が翻訳対象になります。配信時の表示はこれまでの<code dir=ltr>Tech News: 2022-14</code>ではなくなるかもしれません。コミュニティによってはフィルタの設定に影響が出る可能性があります。 [https://phabricator.wikimedia.org/T302920]
* 今後の数ヵ月にわたり、Growth 機能のひとつ「[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクを追加]]」 を[[phab:T304110|より多くのウィキペディアで使えるようになる予定です]]。週単位で複数のウィキに機能を展開する見込みです。[[mw:Special:MyLanguage/Growth#deploymentstable|「リンクのおすすめ機能」が実装されている一部のウィキ]]であれば、このツールをテストすることができます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W14"/>
2022年4月4日 (月) 21:01 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23097604 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-15 ==
<section begin="technews-2022-W15"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/15|翻訳]]されています。
'''最近の更新'''
* サーバーの状態を閲覧できるサイトとして、 <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikimediastatus.net/ www.wikimediastatus.net]</span> が新しく利用できるようになりました。このサイトでは5つの大まかな指標で私たちのウィキの技術的な状態を閲覧することができ<!-- automated high-level metrics -->、私たちのウィキの技術的環境の健全度やパフォーマンスを把握できます。また影響範囲の大きい障害に関して、技術者の書く更新情報<!-- manually-written updates -->もあります。こうした更新情報は技術者が実際に問題解決をするかたわら、時間を取れ次第できる限り迅速に執筆しています。このサイトは私たちの運営するウィキのインフラとは切り離した外部サービス上で動作しているため、私たちのウィキが短期間アクセス不能になっても閲覧することができます。[https://diff.wikimedia.org/2022/03/31/announcing-www-wikimediastatus-net/ このプロジェクトの詳細はこちら]。
* ウィクショナリーでは、ページ上の動画ファイルと音声ファイルを再生するソフトウェアが変わりました。これまでのソフトウェアは削除されています。今回のソフトウェア変更により、音声の再生ツールの一部では横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しいソフトウェア]]は4年前からベータ版機能として導入されていたものです。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-13|ja}}に、その他のウィキには{{#time:n月j日|2022-04-14|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W15"/>
2022年4月11日 (月) 19:45 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23124108 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-16 ==
<section begin="technews-2022-W16"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/16|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-20|ja}}に、その他のウィキには{{#time:n月j日|2022-04-21|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-04-19|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-04-21|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s8.dblist 対象となるウィキの一覧])を予定しています。
* 管理者が特定のページを削除または復帰するとき、[[m:Community Wishlist Survey 2021/(Un)delete associated talk page|付随する「トーク」ページも合わせて削除や復帰]]ができるようになります。関連する API のエンドポイントのオプションも利用可能になります。これは[[m:Community Wishlist Survey 2021/Admins and patrollers/(Un)delete associated talk page|2021年コミュニティ要望リストで挙がった11項目の要望]]のうちのひとつです。
* [[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#test-wikis|一部のウィキ]]ではログインユーザーの半分が新しい[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Table of contents|目次機能]]を利用できるようになりました。ページを上下にスクロールしたとき、目次が画面内の同じ場所に固定されます。これは[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ版改善]]プロジェクトの一環です。 [https://phabricator.wikimedia.org/T304169]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] MediaWiki によって自動的に生成されるメッセージボックスから <code dir=ltr>successbox</code>, <code dir=ltr>errorbox</code>, <code dir=ltr>warningbox</code> の CSS クラスが除去されます。この三クラスと <code dir=ltr>messagebox</code> は MediaWiki のコアから除去されます。ウィキテキストでこれらのクラスを使用している場合や、CSS でこれらの外観を変更していた場合、この変更の影響を受けます。ローカルにおけるクラスの使用状況や、スタイルの定義を確認してください。これは[[m:Special:MyLanguage/Tech/News/2022/09|2月28日の技術ニュース]]でもすでにお伝えしています。
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:Kartographer|Kartographer]] が [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevisions による査読機能]]で利用できるようになります。Kartographer の地図が[[mw:Special:MyLanguage/Help:Pending changes|査読を保留中のページ]]でも動作するようになります。[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Project_descriptions] これに伴い、Kartographer の説明も更新されます。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Kartographer/Getting_started] [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:VisualEditor/Maps] [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Kartographer]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W16"/>
2022年4月18日 (月) 23:12 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23167004 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-17 ==
<section begin="technews-2022-W17"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/17|翻訳]]されています。
'''最近の更新'''
* [https://noc.wikimedia.org/conf/dblists/group1.dblist 多数のウィキ](グループ1)でページ上の動画ファイルと音声ファイルを再生するプレイヤーが変わりました。従来使われていたプレイヤーは削除されています。今回のプレイヤー変更により、音声の再生ツールの一部では横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しいプレイヤー]]は4年前からベータ版機能として導入されていたものです。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-27|ja}}に、その他のウィキには{{#time:n月j日|2022-04-28|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-04-26|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist 対象となるウィキの一覧]。)
* 一部の極端に古いブラウザとオペレーティングシステムのサポートを終了します。Internet Explorer 9 または 10、Andoroid 4、Firefox 38以前のブラウザではウィキの一部が正しく表示されなかったり、動作しなくなる可能性があります。 [https://phabricator.wikimedia.org/T306486]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W17"/>
2022年4月25日 (月) 22:56 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23187115 のリストを使用して送信したメッセージ -->
== 編集機能ニュース 2022年第1号 ==
<section begin="message"/><i>[[metawiki:VisualEditor/Newsletter/2022/April|他の言語で読む]] • [[m:VisualEditor/Newsletter|この多言語版ニュースレターの購読者名簿]]</i>
[[File:Junior Contributor New Topic Tool Completion Rate.png|thumb|編集初学者はこの新しいツールを使ったほうが編集の失敗が減りました。]]
[[mw:Special:MyLanguage/Help:DiscussionTools#New discussion tool|新しい主題ツール]]<!-- New topic tool -->を使うと、編集者が議論のページに新しい <nowiki>==節(見出し)==</nowiki> を作りやすくなります。 この新しいツールを使うと、編集初学者の編集が保持されやすくなります。 <span class="mw-translate-fuzzy">状況報告は[[mw:Talk pages project/New topic#21 April 2022|こちら]]にあります。</span> 間もなく編集チームはこの試験に参加する20個のウィキペディアの編集者全員にこのことを要請します。 無効にするには[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]で指定してください。<section end="message"/>
[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] 2022年5月2日 (月) 18:43 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=23092897 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-18 ==
<section begin="technews-2022-W18"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/18|翻訳]]されています。
'''最近の更新'''
* [https://noc.wikimedia.org/conf/dblists/group2.dblist 残りのウィキすべて](グループ2)でページ上の動画ファイルと音声ファイルを再生するプレイヤーが変更されました。従来使われていたプレイヤーは削除されています。今回のプレイヤー変更により、音声の再生ツールの一部では横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しいプレイヤー]]は4年前からベータ版機能として導入されていたものです。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-05-04|ja}}に、その他のウィキには{{#time:n月j日|2022-05-05|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 開発者は[[mw:Wikimedia Apps/Team/iOS|iOS版ウィキペディアアプリ]]でトークページ機能の実装に取り組んでいます。[https://wikimedia.qualtrics.com/jfe/form/SV_9GBcHczQGLbQWTY フィードバック]をお待ちしています。フィードバックは英語、ドイツ語、ヘブライ語、中国語で受け付けています。
* [[m:WMDE_Technical_Wishes/VisualEditor_template_dialog_improvements#Status_and_next_steps|殆どのウィキ]]でビジュアルエディターまたはウィキテキストモードを使用したときに[[m:WMDE_Technical_Wishes/VisualEditor_template_dialog_improvements|改良型テンプレートダイアログ]]が利用できるようになります。 [https://phabricator.wikimedia.org/T296759] [https://phabricator.wikimedia.org/T306967]
* ウィキテキストでの編集時に構文強調表示を使用した場合、[[m:WMDE_Technical_Wishes/Improved_Color_Scheme_of_Syntax_Highlighting#Color-blind_mode|カラーブラインドに応じた配色]]を使用できるようになります。 [https://phabricator.wikimedia.org/T306867]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] MediaWiki のインターフェースメッセージに関連したいくつかの CSS の ID が削除されます。技術関係の編集者は[[phab:T304363|対象となる ID とこれらを使用しているページの一覧]]をご確認ください。<code dir=ltr>#mw-anon-edit-warning</code>, <code dir=ltr>#mw-undelete-revision</code> とその他3種類の ID が対象となります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W18"/>
2022年5月2日 (月) 19:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23232924 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-19 ==
<section begin="technews-2022-W19"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/19|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Android|Android 版のウィキペディアアプリ]]でもカテゴリが表示されるようになりました。 [https://phabricator.wikimedia.org/T73966]
'''問題点'''
* 先週、ウィキデータの検索候補の表示に不具合がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T307586]
* 先週、すべてのウィキのログインユーザーとキャッシュされていないページで20分ほど、アクセスが重いかアクセスできない状態が発生していました。これはデータベースの変更に伴う問題が原因でした。 [https://phabricator.wikimedia.org/T307647]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。 [https://phabricator.wikimedia.org/T305217#7894966]
* [[mw:Special:MyLanguage/Help:Extension:FlaggedRevs|FlaggedRevs 拡張機能]]における [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] との[[m:WMDE Technical Wishes/Geoinformation#Current issues|非互換性の問題]]が修正される見込みです。展開はすべてのウィキで5月10日を予定しています。Kartographer は[[phab:T307348|この拡張機能を未導入のウィキ5件]]でも5月24日に展開する予定です。
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|2022年版ベクター]] (Vector) 外装はウィキペディアのアラビア語版とカタロニア語版で規定となる予定です。ログイン利用者の場合、旧来の2010年版ベクターに戻すことが可能です。詳細は2022年版ベクターの[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2022-04 for the largest wikis|最新の更新情報]]をご参照ください。
'''オンライン会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームのオープンミーティング]]が5月17日に開催される予定です。6月7日、6月21日、7月5日、7月19日にもミーティングが計画されています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W19"/>
2022年5月9日 (月) 15:23 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23256717 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-20 ==
<section begin="technews-2022-W20"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/20|翻訳]]されています。
'''今週の更新'''
* 一部のウィキで[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が利用できるようになります。水曜日に運用開始予定です。{{int:project-localized-name-cawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ptwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-simplewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-svwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ukwiki/ja}}が対象となります。これは[[phab:T304110|様々なウィキペディアにツールを配備する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304542]
* [[mw:Special:MyLanguage/Wikimedia Hackathon 2022|ウィキメディアハッカソン 2022]]はオンラインで5月20日から22日に開催予定です。英語で実施されます。ドイツ、ガーナ、ギリシャ、インド、ナイジェリア、アメリカではローカルでも[[mw:Special:MyLanguage/Wikimedia Hackathon 2022/Meetups|ハッカソンのミートアップ]]が行われます。技術関係に興味があるウィキメディアンはソフトウェア・プロジェクトに取り組み、新しいスキルを身につけることもできます。セッションを主催したり、取り組みたいプロジェクトを投稿したりすることもできます。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-05-18|ja}}に、その他のウィキには{{#time:n月j日|2022-05-19|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 翻訳可能なページをビジュアルエディターで編集できるようになります。例えばメタやコモンズで翻訳対象に指定されているページでこの機能が使用できます。 [https://diff.wikimedia.org/2022/05/12/mediawiki-1-38-brings-support-for-editing-translatable-pages-with-the-visual-editor/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W20"/>
2022年5月16日 (月) 18:58 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23291515 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-21 ==
<section begin="technews-2022-W21"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/21|翻訳]]されています。
'''最近の更新'''
* 管理者はモバイルウェブ版のインターフェースを使用しているとき、利用者ページから直接 Special:Block の特別ページにアクセスできるようになりました。 [https://phabricator.wikimedia.org/T307341]
* <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wiktionary.org/ www.wiktionary.org]</span> のポータルページは現在、自動的に更新されるシステムを使用しています。他の[[m:Project_portals|プロジェクトのポータル]]も今後数ヶ月の間に更新される予定です。 [https://phabricator.wikimedia.org/T304629]
'''問題点'''
* Growthチームは新規参加者のためのメンターシッププログラムに取り組んでいます。従来は新規参加者がこのプログラムからオプトアウトすることができないようになっていました。2022年5月19日以降、新規参加者がGrowthのメンターシップからオプトアウトできるようになりました。 [https://phabricator.wikimedia.org/T287915]
* 投稿記録のメニューからコンテンツ翻訳ツールを読み込もうとするとページが動作しなくなるという問題が一部の編集者に発生しています。ただいま修正対応中です。Special:ContentTranslation を直接開いた場合はページが正常に動作するはずです。 [https://phabricator.wikimedia.org/T308802]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-05-25|ja}}に、その他のウィキには{{#time:n月j日|2022-05-26|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] MediaWikiの開発者からのサポート向上を目的とする[[mw:User:Jdlrobson/Extension:Gadget/Policy|技術方針の草案]]について、ガジェットやユーザースクリプトの開発者からのフィードバックを募集しています。 [https://phabricator.wikimedia.org/T308686]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W21"/>
2022年5月24日 (火) 00:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23317250 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-22 ==
<section begin="technews-2022-W22"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/22|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]] 拡張機能に IP がいずれかの帯域に含まれるかどうかを調べる <code dir=ltr>ip_in_ranges()</code> 関数が追加されました。ウィキではパフォーマンス向上のため、複数の <code dir=ltr>ip_in_range()</code> 関数を <code>|</code> で繋いで1つの式とすることが推奨されています。[[Special:AbuseFilter|Special:AbuseFilter]] を使ってローカルでの使用例を検索することができます。 [https://phabricator.wikimedia.org/T305017]
* 不正利用フィルターを編集する利用者が IP に関する情報へアクセスできるようにするため、[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature|IP 情報]]という機能をすべてのウィキでベータ版として[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#May 24, 2022|実装しました]]。これは test.wikipedia.org で数週間にわたって行ったベータテストの結果に基づくものです。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-01|ja}}に、その他のウィキには{{#time:n月j日|2022-06-02|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-05-31|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象となるウィキの一覧]。)
* [[mw:Special:MyLanguage/Help:DiscussionTools#New topic tool|話題追加ツール]]はすべてのエディタに対応し、ほとんどのウィキを対象にまもなく導入の予定です。この機能を無効にするには、このツール内と[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]で指定してください。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/New_discussion][https://phabricator.wikimedia.org/T287804]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:ApiHelp/query+usercontribs|list=usercontribs API]] は近日中に [[mw:Special:MyLanguage/Help:Range blocks#Non-technical explanation|IP の帯域]]からの投稿の取得をサポートする予定です。API を使用するときは <code>uciprange</code> パラメータを指定することにより、[[:mw:Manual:$wgRangeContributionsCIDRLimit|制限値]]の範囲内で帯域内から投稿を取得することができます。 [https://phabricator.wikimedia.org/T177150]
* 新しいパーサー関数 <bdi lang="zxx" dir="ltr"><code><nowiki>{{=}}</nowiki></code></bdi> が導入されます。これは「=」という名前の既存のテンプレートを置き換えるものです。[[w:ja:等号|等号]]を挿入するものであり、テンプレート内のパラメータで使われる等号をエスケープするために使用します。 [https://phabricator.wikimedia.org/T91154]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W22"/>
2022年5月30日 (月) 20:29 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23340178 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-23 ==
<section begin="technews-2022-W23"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/23|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-08|ja}}に、その他のウィキには{{#time:n月j日|2022-06-09|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[Special:AbuseFilter|不正利用フィルター]]に新しく実装された関数 <bdi lang="zxx" dir="ltr"><code>str_replace_regexp()</code></bdi> は[[w:ja:正規表現|正規表現]]で文の一部を置換することができます。 [https://phabricator.wikimedia.org/T285468]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]を使い配信しています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W23"/>
2022年6月7日 (火) 02:46 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23366979 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-24 ==
<section begin="technews-2022-W24"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/24|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Extension:Kartographer|Kartographer]] 地図を全てのウィキで利用できるようになりました。この Kartographer 地図は[[mw:Special:MyLanguage/Help:Pending changes|査読待ち]]のページでも有効です。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Project_descriptions][https://phabricator.wikimedia.org/T307348]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-15|ja}}に、その他のウィキには{{#time:n月j日|2022-06-16|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-06-14|ja}}の6:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象となるウィキの一覧]。) [https://phabricator.wikimedia.org/T300471]
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-abwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-acewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-adywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-afwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-akwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-alswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-amwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-anwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-angwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-arcwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-arzwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-astwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-atjwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-avwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-aywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-azwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-azbwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304548]
* [[mw:Special:MyLanguage/Help:DiscussionTools#New topic tool|話題追加ツール]]はすべてのエディタに対応し、まもなくコモンズ、ウィキデータならびに複数のウィキに導入する予定です。ツールや[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]でこの機能を無効化することができます。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/New_discussion][https://phabricator.wikimedia.org/T287804]
'''今後の会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームの公開ミーティング]]が6月13日に開催予定です。今後は6月28日、7月12日、7月26日にもミーティングが計画されています。
'''今後の予定'''
* 7月末までに[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|2022年版ベクター]]外装が全てのウィキで既定になる予定です。それぞれのコミュニティのニーズに応じて調整するため、今後の数週間に議論を始める予定です。個人設定でいつでも旧バージョンに戻すことが可能です。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2022-04 for the largest wikis|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W24"/>
2022年6月13日 (月) 16:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23389956 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-25 ==
<section begin="technews-2022-W25"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/25|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Android|Android用ウィキペディアアプリ]]にページ全体を一度に編集する機能が追加されました。オーバーフローメニュー(3つの点のメニュー [[File:Ic more vert 36px.svg|15px|link=|alt=]])から選択できます。 [https://phabricator.wikimedia.org/T103622]
* [[File:Octicons-tools.svg|15px|link=|alt=|上級者向け]] 最近行われたデータベースの変更に伴い、[[m:Research:Quarry|Quarry ツール]]を使った検索に影響が出る可能性があります。英語版ウィキペディア、コモンズ、ウィキデータの <bdi lang="zxx" dir="ltr"><code>site_stats</code></bdi> に対するクエリを更新する必要があります。[[phab:T306589|詳細はこちらをご覧ください]]。
* [[File:Octicons-tools.svg|15px|link=|alt=|上級者向け]] [[Special:AbuseFilter|不正利用フィルター]]に新しい変数 <bdi lang="zxx" dir="ltr"><code>user_global_editcount</code></bdi> が追加され、グローバルに活動している利用者を除外することができるようになりました。 [https://phabricator.wikimedia.org/T130439]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-22|ja}}に、その他のウィキには{{#time:n月j日|2022-06-23|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* モバイルデバイスでレスポンシブではない外装(MonoBook や Vector など)を使用している場合、デフォルトのズームレベルが多少変更される場合があります。ズームを最適化してコンテンツ(Vector 2022 のテーブルコンテンツなど)がページ内に収まるようにするためです。この機能によってサイトの閲覧に不具合が生じる場合、その状況を把握したいと思いますので、議論を行うとき <span class="mw-content-ltr" lang="en" dir="ltr">[[m:User:Jon (WMF)|Jon (WMF)]]</span> に ping を送ってください。 [https://phabricator.wikimedia.org/T306910]
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は7月中にアップデートが行われる予定です。議論の外観が変更される予定です。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Parsoid による HTML 出力はファイルリンクに対して異なる <bdi lang="zxx" dir="ltr"><code>typeof</code></bdi> 属性値を付与しないようになり、全てに <bdi lang="zxx" dir="ltr"><code>mw:File</code></bdi> のファイルタイプを使用するようになります。ツールの作者は <bdi lang="zxx" dir="ltr"><code>mw:Image</code></bdi>、<bdi lang="zxx" dir="ltr"><code>mw:Audio</code></bdi>、<bdi lang="zxx" dir="ltr"><code>mw:Video</code></bdi> のファイルタイプを要求するコードを修正する必要があります。 [https://phabricator.wikimedia.org/T273505]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W25"/>
2022年6月20日 (月) 20:18 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23425855 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-26 ==
<section begin="technews-2022-W26"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/26|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[m:Special:MyLanguage/Wikimedia Enterprise|ウィキメディアエンタープライズ]] API サービスでは無料のオンデマンドリクエストとマンスリースナップショットが利用できるセルフサービスアカウントが提供されます([https://enterprise.wikimedia.com/docs/ API ドキュメント])。コミュニティから[[m:Special:MyLanguage/Wikimedia Enterprise/FAQ#community-access|データベースダンプとウィキメディアクラウドサービス]]へのアクセスは継続されます。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] テンプレートやモジュールを作成したあと、[[d:Special:MyLanguage/Wikidata:Wiktionary#lua|ウィキメディアウィキでからLuaを使ってウィキデータの語彙素を利用できるようになります]]。これに関する議論は[[d:Wikidata_talk:Lexicographical_data#You_can_now_reuse_Wikidata_Lexemes_on_all_wikis|プロジェクトのトークページ]]で受け付けています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-29|ja}}に、その他のウィキには{{#time:n月j日|2022-06-30|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-06-28|ja}}の6:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧]。) [https://phabricator.wikimedia.org/T311033]
* メインのデータベース入れ替えのため、一部のグローバルサービスとクロスウィキサービスは数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-06-30|ja}}の6:00 UTC からです。コンテンツ翻訳、通知、構造化議論、GrowthExperiments機能、その他一部のサービスが影響を受けます。 [https://phabricator.wikimedia.org/T300472]
* モバイル外装を使用したとき、ソートが設定されたテーブルをソートできるようになります。 [https://phabricator.wikimedia.org/T233340]
'''今後の会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームの公開ミーティング]]が明日(6月28日)に開催されます。7月12日、7月26日にもミーティングが計画されています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W26"/>
2022年6月27日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23453785 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-27 ==
<section begin="technews-2022-W27"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/27|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-07-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-07-06|ja}}に、その他のウィキには{{#time:n月j日|2022-07-07|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-07-05|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-07-07|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象となるウィキの一覧])を予定しています。
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は7月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
* [[File:Octicons-tools.svg|15px|link=|alt=| 高度]] この変更はウィキソースの標準名前空間にあるページにのみ影響します。 Javascript の<bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:Interface/JavaScript#mw.config|mw.config]]</code></bdi> から設定変数 <bdi lang="zxx" dir="ltr"><code>proofreadpage_source_href</code></bdi> を削除して <bdi lang="zxx" dir="ltr"><code>prpSourceIndexPage</code></bdi> に置き換える予定です。 [https://phabricator.wikimedia.org/T309490]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W27"/>
2022年7月4日 (月) 19:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23466250 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-28 ==
<section begin="technews-2022-W28"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/28|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|2022年版ベクター外装]]ではページ題名の下にタブを並べて、議論、閲覧、編集、履歴表示その他にアクセスできるようにしました。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates#Page title/tabs switch|詳細はこちら]]。 [https://phabricator.wikimedia.org/T303549]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 個別のウイキに対する設定をひと目で確認できるようになり、2つのウィキの間で設定内容が異なる場合は比較できるようになりました。例:[https://noc.wikimedia.org/wiki.php?wiki=jawiktionary ウィクショナリー日本語版の設定]、[https://noc.wikimedia.org/wiki.php?wiki=eswiki&compare=eowiki スペイン語とエスペラント語のウィキペディアの設定比較] ローカルコミュニティで設定の変更について[[m:Special:MyLanguage/Requesting_wiki_configuration_changes|議論や提案を行う]]ことがあるかもしれません。名前がつけられた設定の詳細を[[mw:Special:Search|MediaWiki.org]]で検索することができます。 [https://phabricator.wikimedia.org/T308932]
*アンチハラスメント・ツール・チームはこのたび、IP情報を表示する機能を[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能として全てのウィキに]]対して[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#May|実装しました]]。荒らしに対応する利用者はこのツールを通じてIPアドレスの情報を得ることができます。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#April|ツールがどこにあるかや、その使い方]]については更新情報をご確認ください。ご意見、ご感想がありましたらツールにあるリンクからお寄せください。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-07-12|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象となるウィキの一覧]。)
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は7月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W28"/>
2022年7月11日 (月) 19:25 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23502519 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-29 ==
<section begin="technews-2022-W29"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/29|翻訳]]されています。
'''問題点'''
* モバイルウェブ版の機能[[mw:Special:MyLanguage/Extension:NearbyPages|近くの場所に関するページ]]は先週、利用できませんでした。この問題は今週は修正されます。 [https://phabricator.wikimedia.org/T312864]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-07-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-07-20|ja}}に、その他のウィキには{{#time:n月j日|2022-07-21|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Technical_decision_making/Forum|技術決定フォーラム]]では[[mw:Technical_decision_making/Community_representation|コミュニティの代表者]]を募集中です。〆切は8月12日、オンウィキまたは<span class="mw-content-ltr" lang="en" dir="ltr">TDFSupport@wikimedia.org</span>宛にメールで応募してください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W29"/>
2022年7月18日 (月) 23:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23517957 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-30 ==
<section begin="technews-2022-W30"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/30|翻訳]]されています。
'''最近の更新'''
* <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikibooks.org/ www.wikibooks.org]</span> と<span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikiquote.org/ www.wikiquote.org]</span> のポータルページは現在、自動的に更新されるシステムを使用しています。他の[[m:Project_portals|プロジェクトのポータル]]も今後数ヶ月の間に更新される予定です。 [https://phabricator.wikimedia.org/T273179]
'''問題点'''
* 先週、メインのデータベースを緊急で切り替えたことに伴い、一部のウィキが数分間、閲覧はできても編集はできない状態になりました([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 影響を受けたウィキの一覧])。 [https://phabricator.wikimedia.org/T313383]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-07-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-07-27|ja}}に、その他のウィキには{{#time:n月j日|2022-07-28|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* レガシー版ベクターと2022年版ベクターで外部リンクのアイコンが若干ですが変更されます。解像度が低い画面でも認識しやすくなるよう、新しいアイコンはよりシンプルな形状のものを採用します。 [https://phabricator.wikimedia.org/T261391]
* 管理者が既にブロックされている利用者のページを開くと、これまでの「{{int:blockip}}」ボタンの代わりに、「{{int:changeblockip}}」と「{{int:unblockip}}」の二つが表示されるようになりました。 [https://phabricator.wikimedia.org/T308570]
'''今後の会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームの公開ミーティング]]が明日(7月26日)に開催されます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W30"/>
2022年7月25日 (月) 19:27 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23545370 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-31 ==
<section begin="technews-2022-W31"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/31|翻訳]]されています。
'''最近の更新'''
* <bdi lang="zxx" dir="ltr"><code>Phantom</code></bdi>タグのサポートにより、[[m:Special:MyLanguage/Help:Displaying_a_formula#Phantom|数学レンダリング用のためのLaTeX機能]]がウィキで利用できるようになりました。これにより、2022年コミュニティ要望アンケートの[[m:Community_Wishlist_Survey_2022/Editing/Missing_LaTeX_capabilities_for_math_rendering|59番目の要望]]の一部が完了しました。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-03|ja}}に、その他のウィキには{{#time:n月j日|2022-08-04|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:Extension:WikiEditor/Realtime_Preview|リアルタイムプレビュー]]は[https://noc.wikimedia.org/conf/highlight.php?file=dblists%2Fgroup0.dblist Group 0] のウィキでベータ版として利用できるようになります。この機能は、[[m:Special:MyLanguage/Community_Wishlist_Survey_2021/Real_Time_Preview_for_Wikitext|コミュニティ要望アンケートの提案の1つ]]に応じる形で作成されました。
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は8月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
'''今後の会議'''
* 今週は、[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector (2022)]] に関する3つの会議が同時通訳付きで開催されます。火曜日はロシア語での通訳があります。木曜日には、アラビア語とスペイン語の話者のための会議が行われます。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|参加方法を確認する]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W31"/>
2022年8月1日 (月) 21:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23615613 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-32 ==
<section begin="technews-2022-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/32|翻訳]]されています。
'''最近の更新'''
* [[:m:Special:MyLanguage/Meta:GUS2Wiki/Script|GUS2Wiki]]は [[{{#special:GadgetUsage}}]] の情報をウィキ上のページにコピーして履歴を確認できるようにするものです。[[d:Q113143828|ウィキデータのProject:GUS2Wikiのエントリ]]にないウィキは手動でGUS2Wikiを実行するか[[:m:Special:MyLanguage/Meta:GUS2Wiki/Script#Opting|情報を配信してもらうように依頼をしてください]]。 [https://phabricator.wikimedia.org/T121049]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-08-09|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-08-11|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist 対象となるウィキの一覧])を予定しています。
'''今後の会議'''
* [[wmania:Special:MyLanguage/Hackathon|ウィキマニアハッカソン]]は8月12日から14日にかけてオンラインで開催されます。プロジェクトについて学び、協力者を見つけるための[[wmania:Special:MyLanguage/Hackathon/Schedule|プレハッキング・ショーケース]]もお忘れのないようにお願いします。誰でも[[phab:/project/board/6030/|企画を提案したり]]、[[wmania:Special:MyLanguage/Hackathon/Schedule|セッションを開催する]]ことができます。[[wmania:Special:MyLanguage/Hackathon/Newcomers|初めての方でも歓迎します]]!
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W32"/>
2022年8月8日 (月) 19:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23627807 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-33 ==
<section begin="technews-2022-W33"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/33|翻訳]]されています。
'''最近の更新'''
* ペルシャ語版 (Farsi) ウィキペディアのコミュニティは2021年10月から2022年4月まで、IP利用者の編集をブロックすることを決定しました。ウィキメディア財団の製品解析チームはこの変更の影響を追跡しました。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Editing Restriction Study/Farsi Wikipedia|影響調査報告書]]が公開されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-17|ja}}に、その他のウィキには{{#time:n月j日|2022-08-18|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-08-16|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s1.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-08-18|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s8.dblist 対象となるウィキの一覧])を予定しています。
* [[mw:Special:MyLanguage/Help:Extension:WikiEditor/Realtime_Preview|リアルタイムプレビュー]]は[https://noc.wikimedia.org/conf/highlight.php?file=dblists%2Fgroup1.dblist グループ1] のウィキでベータ版として利用できるようになります。この機能は、[[m:Special:MyLanguage/Community_Wishlist_Survey_2021/Real_Time_Preview_for_Wikitext|コミュニティ要望アンケートの提案の1つ]]に応じる形で作成されました。
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は8月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。 [https://www.mediawiki.org/wiki/Talk_pages_project/Usability#4_August_2022][https://www.mediawiki.org/wiki/Talk_pages_project/Usability#Phase_1:_Topic_containers][https://phabricator.wikimedia.org/T312672]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/33|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W33"/>
2022年8月15日 (月) 21:09 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23658001 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-34 ==
<section begin="technews-2022-W34"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/34|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] 地図に問題が2件発生していました。現在は解決済みです。VisualEditor 経由で Geolines を生成したとき、地図を空白で表示しなくなりました。Geolines のうち QID で構成されるもの(例:地下鉄路線)にピンのアイコンは表示されなくなりました。 [https://phabricator.wikimedia.org/T292613][https://phabricator.wikimedia.org/T308560]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-24|ja}}に、その他のウィキには{{#time:n月j日|2022-08-25|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-08-25|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象となるウィキの一覧]。)
* リンクと他のテキストとの違いをより明確にするために、リンクと訪問済みリンクの色が変わります。 [https://phabricator.wikimedia.org/T213778]
'''今後の予定'''
* 新しい[{{int:discussiontools-topicsubscription-button-subscribe}}]ボタンは、[[mw:Talk pages project/Notifications#12 August 2022|初心者が回答を得るのに役立ちます]]。編集機能開発チームは、このツールをあらゆる場所で有効にしています。この機能は[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]でオフにすることができます。 [https://phabricator.wikimedia.org/T284489]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W34"/>
2022年8月23日 (火) 00:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23675501 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-35 ==
<section begin="technews-2022-W35"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/35|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:WikiEditor/Realtime_Preview|リアルタイムプレビュー]]は[https://noc.wikimedia.org/conf/highlight.php?file=dblists%2Fgroup2.dblist グループ2]のウィキでベータ版として利用できます。この機能は、[[m:Special:MyLanguage/Community_Wishlist_Survey_2021/Real_Time_Preview_for_Wikitext|コミュニティ要望アンケートの提案の1つ]]に応じる形で作成されました。このベータ版を有効にすると、一部のウィキ固有のガジェットと競合する可能性があることに注意してください。
'''問題点'''
* ここ数か月、コモンズ、ウィキデータ、英語版ウィキペディアなどの[[{{#special:statistics}}]]で不正確な数値が表示されていました。現在は修正済みです。 [https://phabricator.wikimedia.org/T315693]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-31|ja}}に、その他のウィキには{{#time:n月j日|2022-09-01|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-08-30|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-09-01|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧])を予定しています。
'''今後の予定'''
* ウィキメディア財団は、ウィキメディアコミュニティが有害な出来事を報告する方法を改善するために、[[m:Special:MyLanguage/Private Incident Reporting System|プライベートインシデント報告システム (PIRS)]]を構築して、利用者が簡単かつ安全に報告できるようにしたいと考えています。[[m:Special:MyLanguage/Private Incident Reporting System#Phase 1|提供された質問]]に答えるため、トークページにコメントをすることができます。報告した/報告したい有害な状況に直面したことがある場合は、PIRSのインタビューに参加して、経験を共有してください。サインアップするには、<span class="mw-content-ltr" lang="en" dir="ltr">[[m:User:MAna (WMF)|Madalina Ana]]</span>に[[m:Special:EmailUser/MAna_(WMF)|メール]]してください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W35"/>
2022年8月29日 (月) 23:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23725814 のリストを使用して送信したメッセージ -->
== Editing news 2022 #2 ==
<section begin="message"/><i>[[m:Special:MyLanguage/VisualEditor/Newsletter/2022/August|他の言語で読む]] • [[m:VisualEditor/Newsletter|多言語ニュースレターを購読]]</i>
[[File:Desktop Topic Subscriptions median response time.png|alt=ツールの使用の有無と返信までの時間(グラフ)。使用しない場合の90分に対し、使用すると39分を示す。|thumb|[{{int:discussiontools-topicsubscription-button-subscribe}}] ボタンがある場合、返信までの時間が短縮されます。]]
新設した[{{int:discussiontools-topicsubscription-button-subscribe}}] ボタンとは、(議論ページで)自分の投稿に[[mw:Special:MyLanguage/Help:DiscussionTools#Topic%20subscriptions|誰かが返信したという通知]]を送ります。 編集初学者にとって、質問の答えが得やすくなります。つまり返事が早めに届くからです。 [[mw:Special:MyLanguage/Talk_pages_project/Notifications#12_August_2022|レポートの詳細]]をご参照ください。 編集機能チームではこのツールをどなたでも利用できるように既定にする予定です。不用の場合は利用者ごとに[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]で無効にしてください。<section end="message"/>
–[[m:User:Whatamidoing (WMF)|Whatamidoing (WMF)]] 2022年8月29日 (月) 23:36 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=23569286 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-36 ==
<section begin="technews-2022-W36"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/36|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-07|ja}}に、その他のウィキには{{#time:n月j日|2022-09-08|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-09-06|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s1.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-09-08|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象となるウィキの一覧])を予定しています。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 特別ページでページ上欄外のタブが1つしかない場合、2022年版ベクター外装ではスペースを節約するためタブバーを非表示にする予定です。ガジェットがタブを使う場合は表示されます。現在、<bdi lang="zxx" dir="ltr"><code>#p-namespaces</code></bdi> の CSS IDを直接追加しているガジェットは、<bdi lang="zxx" dir="ltr"><code>[[mw:ResourceLoader/Core_modules#addPortletLink|mw.util.addPortletLink]]</code></bdi> 関数を使うよう更新する必要があります。ガジェットでこの ID にスタイルを追加する場合は、新しい ID <bdi lang="zxx" dir="ltr"><code>#p-associated-pages</code></bdi> も対象にすることを検討してください。[[phab:T316908|例はこちら]]。 [https://phabricator.wikimedia.org/T316908][https://phabricator.wikimedia.org/T313409]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W36"/>
2022年9月5日 (月) 23:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23757743 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-37 ==
<section begin="technews-2022-W37"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/37|翻訳]]されています。
'''最近の更新'''
* 検索サーバが新しいメジャーバージョンにアップグレードされました。検索の不具合にお気づきの場合は、[[phab:project/view/1849/|Phabricator]]に報告してください。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/XPCTYYTN67FVFKN6XOHULJVGUO44J662]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-14|ja}}に、その他のウィキには{{#time:n月j日|2022-09-15|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]の追跡は、現状では[[mw:Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit|時間の掛かるパーサ関数]]として実行しています。時間の掛かる高い関数呼び出しは、単一ページに500件までしか実行できません。この上限値を超えたページは、特定の[[:Category:{{MediaWiki:expensive-parserfunction-category}}|追跡カテゴリ]]に追加されます。 [https://phabricator.wikimedia.org/T316858]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W37"/>
2022年9月13日 (火) 01:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23787318 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-38 ==
<section begin="technews-2022-W38"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/38|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code><nowiki>templatelinks</nowiki></code></bdi> のデータベースフィールド、<bdi lang="zxx" dir="ltr"><code><nowiki>tl_namespace</nowiki></code></bdi> と <bdi lang="zxx" dir="ltr"><code><nowiki>tl_title</nowiki></code></bdi> は削除されました。これらのフィールドを使用していたクエリはすべて、<bdi lang="zxx" dir="ltr"><code><nowiki>tl_target_id</nowiki></code></bdi> という正規化された新しいフィールドを使うように変更しなけれなりません。詳細は <span class="mw-content-ltr" lang="en" dir="ltr">[[phab:T299417|T299417]]</span> を御覧ください。これはリンクテーブルの[[w:ja:関係の正規化|正規化]]の一環として行われています。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/U2U6TXIBABU3KDCVUOITIGI5OJ4COBSW/][https://www.mediawiki.org/wiki/User:ASarabadani_(WMF)/Database_for_devs_toolkit/Concepts/Normalization]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-20|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-21|ja}}に、その他のウィキには{{#time:n月j日|2022-09-22|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]地図では、共通する地点のマーカーにアイコンを使用できます。火曜日に、[[mw:Special:MyLanguage/Help:Extension:Kartographer/Icons|従来のアイコンセット]]が[https://de.wikipedia.beta.wmflabs.org/wiki/Hilfe:Extension:Kartographer/Icons バージョン maki 7.2]に更新されます。約100個の新しいアイコンが利用可能になります。さらに、既存のアイコンはすべて、明確にするために更新され、国際的な状況でより適切に機能するようになりました。 [https://phabricator.wikimedia.org/T302861][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Update_maki_icons]
'''今後の予定'''
* [[m:Content_Partnerships_Hub/Software/Volunteer_developers_discussion_at_Wikimania_2022|ウィキマニアのグループディスカッション]]で30人以上の人がウィキメディア運動におけるコンテンツ・パートナーシップを持続可能なものにするための話し合いを行いました。ボランティア開発者はどのようなサポートが許容されるでしょうか。まとめをご覧の上、[[m:Talk:Content Partnerships Hub/Software/Volunteer developers discussion at Wikimania 2022|ご意見をお聞かせください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W38"/>
<span class="mw-content-ltr" lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</span> 2022年9月19日 (月) 22:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23826293 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-39 ==
<section begin="technews-2022-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/39|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Parsoidクライアントはリンクの <bdi lang="en" dir="ltr"><code>rel</code></bdi> 属性をスペースで区切って複数の値を指定できるよう、更新する必要があります。詳細は<bdi lang="en" dir="ltr">[[phab:T315209|T315209]]</bdi>をご覧ください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-28|ja}}に、その他のウィキには{{#time:n月j日|2022-09-29|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/VisualEditor/Diffs|視覚的な差分]]はウィクショナリーとウィキペディアを除いて、すべての利用者が利用できるようになります。 [https://phabricator.wikimedia.org/T314588]
* アラビア語版、バングラ語版、中国語版、フランス語版、ハイチ・クレオール語版、ヘブライ語版、韓国語版、ベトナム語版ウィキペディアで[[mw:Special:MyLanguage/Help:DiscussionTools#Mobile|モバイル版のトークページ]]が変更されます。変更後は更に使いやすくなり、より多くの情報を提供できるはずです。 [https://phabricator.wikimedia.org/T318302] [https://www.mediawiki.org/wiki/Talk_pages_project/Mobile]
* [[mw:Lua/Scripting|{{ns:828}}]]名前空間で<bdi lang="en" dir="ltr"><code>.json</code></bdi>で終わるページは、{{ns:2}}名前空間および{{ns:8}}名前空間のように、JSONとして扱われます。 [https://phabricator.wikimedia.org/T144475]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年9月27日 (火) 00:30 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23860085 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-40 ==
<section begin="technews-2022-W40"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/40|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]の地図は QID や SPARQL を介してウィキデータから位置情報を取得できるようになりました。従来は geoshape と geoline からのみ取得可能でした。 [https://phabricator.wikimedia.org/T307695] [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation/Geopoints_via_QID]
* [[m:Special:MyLanguage/Coolest_Tool_Award|Coolest Tool Award 2022年]](最もクールなツールに贈られる賞)の候補作品を推薦してください。応募は10月12日まで受け付けます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-05|ja}}に、その他のウィキには{{#time:n月j日|2022-10-06|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:DiscussionTools#Mobile|モバイル版のトークページ]]は、アラビア語版、バングラ語版、中国語版、フランス語版、ハイチ・クレオール語版、ヘブライ語版、韓国語版、ベトナム語版ウィキペディアで変更されます。変更後は更に使いやすくなり、より多くの情報を提供できるはずです。 (先週の週報は配信が遅れました) [https://phabricator.wikimedia.org/T318302] [https://www.mediawiki.org/wiki/Talk_pages_project/Mobile]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code>scribunto-console</code></bdi> API モジュールは [[mw:Special:MyLanguage/API:Tokens|CSRF トークン]]を要求します。これは内部モジュールとして文書化されており、使用はサポートされていません。 [[phab:T212071|[5]]]
* 2022年版ベクター外装はウィキメディアの最小規模のプロジェクト群で既定の外装として設定されました。[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#Deployment_plan_and_timeline|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月4日 (火) 00:24 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23885489 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-41 ==
<section begin="technews-2022-W41"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/41|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-12|ja}}に、その他のウィキには{{#time:n月j日|2022-10-13|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* 一部のウィキでは、[[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]マップを全画面表示すると、近くの記事を表示できるようになります。フィードバック期間の後、続けてさらに多くのウィキに導入される予定です。 [https://phabricator.wikimedia.org/T316782][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation/Nearby_articles]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W41"/>
2022年10月10日 (月) 14:09 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23912412 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-42 ==
<section begin="technews-2022-W42"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/42|翻訳]]されています。
'''最近の更新'''
* 最近実装された[[phab:T306883|Special:Searchで記事のサムネイル画像]]を表示する機能はウィキペディアプロジェクトのみに限定されます。詳細は[[phab:T320510|T320510]]をご覧ください。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Structured_Data_Across_Wikimedia/Search_Improvements]
* Special:Searchで記事のサムネイルを読み込む際に問題が発生するバグは修正されました。詳細は[[phab:T320406|T320406]]をご覧ください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-19|ja}}に、その他のウィキには{{#time:n月j日|2022-10-20|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Lua モジュールを制作するとき、JSON ページからデータを読み込む際に <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Extension:Scribunto/Lua_reference_manual#mw.loadJsonData|mw.loadJsonData()]]</code></bdi> を使えます。 [https://phabricator.wikimedia.org/T217500]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Lua モジュールを制作するとき、<bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Extension:Scribunto/Lua_reference_manual#Strict_library|require( "strict" )]]</code></bdi> を有効にすることで想定される幾つかの問題についてエラーを検出することができます。これはほとんどのウィキで使われていた "[[wikidata:Q16748603|Module:No globals]]" を置き換えるものです。 [https://phabricator.wikimedia.org/T209310]
'''今後の予定'''
* [[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]はほとんどのウィキで更新される予定です。この変更を受けて「{{int:discussiontools-replylink}}」ボタンの見た目が変わります。 [https://phabricator.wikimedia.org/T320683]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月17日 (月) 21:46 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23943992 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-43 ==
<section begin="technews-2022-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/43|翻訳]]されています。
'''最近の更新'''
* 特別:検索で、オーディオプレーヤーの配置と画像プレースホルダの高さに関して、微細な修正が行われました。詳細は[[phab:T319230|T319230]]に記載されています。
* ウィキペディアの[[Special:Preferences#mw-prefsection-searchoptions|個人設定]]に新しい項目を追加、特別:検索の実行をした時に記事のサムネイルを非表示にできるようになりました。詳細は[[phab:T320337|T320337]]をご参照ください。
'''問題点'''
* 先週は3件のウィキ ({{int:project-localized-name-frwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-jawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ruwiki/ja}}) で、閲覧はできても編集ができない状態が最大25分発生しました。原因はハードウェアの問題でした。 [https://phabricator.wikimedia.org/T320990]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-26|ja}}に、その他のウィキには{{#time:n月j日|2022-10-27|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-10-25|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-10-27|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象となるウィキの一覧])を予定しています。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-aswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-banwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-barwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bat smgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bclwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-be x oldwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bhwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-biwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bjnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bpywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-brwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bugwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bxrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-idwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304549]
* 2022年10月26日(水曜)より、[[d:Q14339834 |Growth メンター制度を導入済みのウィキ]]では、メンター名簿のアップグレードを予定しています。メンター制度自体はこれまでまでと同じように機能します。登録手順は[[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list#add|変更され]]、新しい管理オプションが提供される予定です。あわせて今回の更新により[[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list#create|ウィキペディアでメンター制度の構築が簡略化されます]]。 [https://phabricator.wikimedia.org/T314858][https://phabricator.wikimedia.org/T310905][https://www.mediawiki.org/wiki/Special:MyLanguage/Growth/Structured_mentor_list]
* ユニコード11に準拠し、欧文のページ題名で1文字目が小文字の場合は改名もしくは削除の対象になります。影響を受けるページ名の一覧は[<bdi lang="en" dir="ltr">[[m:Unicode 11 case map migration]]</bdi> こちら]。詳細は[[phab:T292552|T292552]]をご参照くださ。
* 2022年版ベクター外装はウィキメディアの最小規模のプロジェクト群で既定の外装として設定されます。[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#smallest-1|詳細はこちら]]。
'''今後の予定'''
* [[mw:Special:MyLanguage/Talk pages project/Replying|返信ツール]]ならびに[[mw:Special:MyLanguage/Talk pages project/New discussion|新しい話題の追加ツール]]は近日中に[[mw:Special:MyLanguage/VisualEditor/Special characters|特殊文字メニュー]]が導入されます。 [https://phabricator.wikimedia.org/T249072]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月24日 (月) 21:23 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23975411 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-44 ==
<section begin="technews-2022-W44"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/44|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] 地図でキーボードナビゲーションを利用する場合、フォーカスを視認しやすくなります。 [https://phabricator.wikimedia.org/T315997]
* {{#special:RecentChanges}}で「{{int:rcfilters-filter-newuserlogactions-label}}」というフィルタを使うと、ログで利用者アカウントの新規作成を非表示にできます。 [https://phabricator.wikimedia.org/T321155]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-11-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-11-02|ja}}に、その他のウィキには{{#time:n月j日|2022-11-03|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* ビジュアルエディタでは [[mw:Special:MyLanguage/Help:Extension:Kartographer|地図のダイヤログ]]にヘルプ文を少し表示するようになりました。 [https://phabricator.wikimedia.org/T318818]
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]地図をビジュアルエディタで表示する時に、ドロップダウンメニューで言語の選択ができるようになりました。 [https://phabricator.wikimedia.org/T318817]
* ビジュアルエディタで[[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]地図にキャプションを追加できるようになりました。 [https://phabricator.wikimedia.org/T318815]
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] 地図の枠線は、ビジュアルエディタで非表示にできるようになりました。 [https://phabricator.wikimedia.org/T318813]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月31日 (月) 21:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23977539 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-45 ==
<section begin="technews-2022-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/45|翻訳]]されています。
'''最近の更新'''
* [[m:Special:MyLanguage/EventCenter/Registration|イベント登録]]ツールの更新版が[[testwiki:|testwiki]]および[[test2wiki:|test2wiki]]で試用できるようになりました。同ツールはイベント主催者と参加者双方のための機能を提供します。[[m:Talk:Campaigns/Foundation Product Team/Registration|プロジェクトのトークページ]]に皆さんのフィードバックをお寄せください。[[m:Campaigns/Foundation Product Team/Registration|プロジェクト]]に関する詳細もご覧ください。 [https://phabricator.wikimedia.org/T318592]
'''問題点'''
* 先週のあいだに2回、およそ45分にわたり、一部のファイルやサムネイルの読み込みやアップロードができない不具合が発生し、主にログインユーザーが影響を受けました。原因は調査中で、近く事故報告書が発表されます。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月8日 (火) 00:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24001035 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-46 ==
<section begin="technews-2022-W46"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/46|翻訳]]されています。
'''最近の更新'''
* ウィキデータでは、特定の条件が満たされた場合にウィキ間リンクがリダイレクトページを指すようになりました。[[wikidata:Special:MyLanguage/Wikidata:Sitelinks_to_redirects|リダイレクトへのサイトリンク]]と呼ぶ機能です。1つのウィキが1つのページを使用して複数の概念を扱っているが、別のウィキがそれより多くのページを使用して同じ概念を扱っている場合に必要とされます。新しいガイドラインの提案に関する[[wikidata:Special:MyLanguage/Wikidata talk:Sitelinks to redirects|フィードバック]]をお待ちしています。 [https://phabricator.wikimedia.org/T278962]
* <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikinews.org/ www.wikinews.org]</span>と<span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikiversity.org/ www.wikiversity.org]</span>、<span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikivoyage.org/ www.wikivoyage.org]</span>のポータルページに自動更新システムが導入されました。 [https://phabricator.wikimedia.org/T273179]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-11-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-11-16|ja}}に、その他のウィキには{{#time:n月j日|2022-11-17|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* テンプレートページに直接「TemplateDataの編集」をする新しいリンクが追加されます。 [https://phabricator.wikimedia.org/T316759]
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] モバイル版[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]が有効なウィキ([[mw:Special:MyLanguage/Talk pages project/Deployment Status|こちらを参照]])でがまもなく、トークページ上部に配置されたテンプレートを表示するため、完全なCSSスタイルが適用されるようになります。これらの「トークページボックス」をモバイルデバイスの画面幅に適用させるには[https://en.wikipedia.org/w/index.php?title=Module:Message_box/tmbox.css&oldid=1097618699#L-69 この例]のようなメディアクエリを使用することができます。 [https://phabricator.wikimedia.org/T312309]
* 2023年1月から、[[m:Special:MyLanguage/Community Tech|コミュニティ技術チーム]]は[[m:Special:MyLanguage/Community Wishlist Survey/Updates/2023 Changes Update|2年ごとにコミュニティー要望アンケート (CWS) を実施します]]。したがって2024年は新しい提案や投票はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月14日 (月) 21:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24071290 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-47 ==
<section begin="technews-2022-W47"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/47|翻訳]]されています。
'''最近の更新'''
* 検索バーとSpecial:Searchでの記事のサムネイル画像において自由使用できないメディアの表示が非アクティブ化されました。詳細は[[phab:T320661|T320661]]をご覧ください。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-11-22|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-11-24|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧])を予定しています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月21日 (月) 23:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24071290 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-48 ==
<section begin="technews-2022-W48"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/48|翻訳]]されています。
'''最近の更新'''
* 個人設定の新項目、「横幅制限モード」が[[Special:Preferences#mw-prefsection-rendering|2022年ベクター外装]]に追加されました。ご利用のモニタが 1600px よりも幅が広ければ、この設定はページを表示するたび、トグル表示されます。この設定により、ログイン、ログアウトの状態に関わらず、利用者はページの表示幅を広めにすることができます。 [https://phabricator.wikimedia.org/T319449]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-11-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-11-30|ja}}に、その他のウィキには{{#time:n月j日|2022-12-01|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-11-29|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-12-01|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s1.dblist 対象となるウィキの一覧])を予定しています。
* SVG形式の画像内に表示される数式は、今後はサポートしない端末のためにPNG形式によるフォールバックを伴わなくなります。これは画像生成システムの刷新作業の一環として実施します。2018年2月以前の既定では、PNG形式の画像のみ表示していました。 [https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/3BGOKWJIZGL4TC4HJ22ICRU2SEPWGCR4/][https://phabricator.wikimedia.org/T311620][https://phabricator.wikimedia.org/T186327]
* FlaggedRevisions拡張機能を使用する[[phab:P40224|一部のウィキ]]では、特別:投稿記録に[[mw:Special:MyLanguage/Help:Extension:FlaggedRevs#Special:Contributions|新しいチェックボックスが追加]]され、利用者による[[mw:Special:MyLanguage/Help:Pending changes|保留中の変更]]のみを表示できるようになります。 [https://phabricator.wikimedia.org/T321445]
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] HTML構文解析出力におけるメディアの構造が、来週初めに[https://wikitech.wikimedia.org/wiki/Deployments/Train#Wednesday グループ1のウィキ]で変更されます (ウィキメディアコモンズやメタウィキを除く)。この変更により、コンテンツのアクセシビリティが向上し、関連するCSSの記述が容易になります。それに伴いサイトのCSS、ユーザースクリプト、ガジェットの更新が必要になる場合があります。[[mw:Special:MyLanguage/Parsoid/Parser_Unification/Media_structure/FAQ|確認するコード、コードを更新する方法、および関連問題を報告する場所についての詳細]]があります。 [https://phabricator.wikimedia.org/T314318]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月28日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24114342 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-49 ==
<section begin="technews-2022-W49"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/49|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] ウィキソースでは ProofreadPage というツールを使います。これは OpenSeadragon というオープンソースのツールを採用します。OpenSeadragon の Javascript API は大幅に書き換えられ、画像を動的に読み込むようになりました。旧バージョンの API が提供する機能は今も使えるはずですが、サポートは既に終了しています。ユーザースクリプトとガジェットは API の新しいバージョンに移行してください。新しいバージョンの API が提供する機能は[[mw:Extension:Proofread_Page/Page_viewer#JS_API|メディアウィキに解説があります]]。 [https://phabricator.wikimedia.org/T308098][https://www.mediawiki.org/wiki/Extension:Proofread_Page/Edit-in-Sequence]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-12-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-12-07|ja}}に、その他のウィキには{{#time:n月j日|2022-12-08|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年12月6日 (火) 00:41 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24151590 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-50 ==
<section begin="technews-2022-W50"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/50|翻訳]]されています。
'''最近の更新'''
* 15件のウィキペディアで[[mw:Special:MyLanguage/Talk pages project/Mobile|モバイル版のトークページ・プロジェクト]]のA/Bテストが始まりました。[[mw:Reading/Web/Mobile|モバイル版のウェブサイト]]では半数の利用者が{{int:discussiontools-replybutton}}ツールやその他の機能を使えるか使うことができます。 [https://phabricator.wikimedia.org/T321961]
* テンプレートとの整合性を高めるため、<code>=</code> という文字は新規の利用者名に 使えなくなります。既存の利用者名に影響はありません。 [https://phabricator.wikimedia.org/T254045]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-12-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-12-14|ja}}に、その他のウィキには{{#time:n月j日|2022-12-15|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]で使う HTML は[[mw:Special:MyLanguage/Talk_pages_project/Usability#Phase_1:_Topic_containers|節の見出しの中に議論のメタデータを表示]]していましたが、今度から見出しの下に挿入されるようになります。これによりスクリーンリーダーを使った際の議論ツールのアクセシビリティが改善されます。 [https://phabricator.wikimedia.org/T314714]
'''イベント'''
* 第4回[[m:Special:MyLanguage/Coolest_Tool_Award|クーレスト・ツール賞]]が[https://zonestamp.toolforge.org/1671210002 2022年12月16日金曜日の17:00(UTC)]にオンラインで開催されます!イベントはYouTubeの[https://www.youtube.com/user/watchmediawiki MediaWikiチャンネル]でライブ配信され、その後コモンズに追加されます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年12月12日 (月) 23:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24216570 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-51 ==
<section begin="technews-2022-W51"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/51|翻訳]]されています。
'''技術ニュース'''
* [[w:ja:年末年始|年末年始]]に当たるため、技術ニュースの次号は2023年1月9日の発行になります。
'''最近の更新'''
* 利用者の投稿記録では「差し戻し済み」のようにタグが付けられた編集をフィルタリングすることができます。このたび、タグが付けられていない編集も全てフィルタリングできるようになりました。これは2022年のコミュニティ要望リストに基づくものです。 [https://phabricator.wikimedia.org/T119072]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] ガジェット開発者向けに、記事のタイトルの下にコンテンツを追加する機能が新しく実装されました。この機能はすべての外装で動作する安定版 API として提供されます。[[mw:Special:MyLanguage/ResourceLoader/Core_modules#addSubtitle|仕様を解説したドキュメントが用意されています]]。 [https://phabricator.wikimedia.org/T316830]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[test2wiki:|テストウィキのひとつ]]は [[w:ja:Kubernetes|Kubernetes]] ([[wikitech:MediaWiki On Kubernetes|詳細]])を搭載した新しいインフラで提供されています。2023年初頭には更に多くのウィキのインフラが切り替わる予定です。試用してみて問題があればお知らせください。 [https://phabricator.wikimedia.org/T290536]
'''問題点'''
* 先週は全てのウィキで、閲覧はできても編集ができない状態が9分間発生しました。原因はデータベースの問題でした。 [https://wikitech.wikimedia.org/wiki/Incidents/2022-12-13_sessionstore]
'''今週の更新'''
* 今週と来週は、MediaWikiのバージョン更新はありません。
* "{{int:discussiontools-replybutton}}"という単語はアラビア語 ("<bdi lang="ar">ردّ</bdi>") など一部の言語では非常に短く表されます。そのためトークページの{{int:discussiontools-preference-label}}ボタンが使いづらくなっています。ボタンが短く表示される言語には矢印アイコンが追加される予定です。この変更は[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]を有効にしている編集者にのみ表示されます。 [https://www.mediawiki.org/wiki/Talk_pages_project/Usability#Status] [https://phabricator.wikimedia.org/T323537]
'''今後の予定'''
* ソフトウェアや{{int:Abusefilter}}にシステムにより、編集には自動的に「タグ付け」が行われることがあります。これらのタグはタグに関して説明したページにリンクされています。近々「最近の更新」にもリンクされ、同じタグが付けられた他の編集についても確認できるようになります。これは2022年のコミュニティ要望リストに基づくものです。 [https://phabricator.wikimedia.org/T301063]
* 信頼と安全ツールチームは事故報告システムに関する[[m:Special:MyLanguage/Private Incident Reporting System/Timeline and Updates|新しい計画]]を共有しました。このシステムにより、編集者が嫌がらせを受けたとき、より助けを求めやすくなります。
* [[m:Special:MyLanguage/Community Wishlist Survey 2021/Real Time Preview for Wikitext|ウィキテキスト編集時のリアルタイムプレビュー]]は2010年版ウィキテキスト[[mw:Special:MyLanguage/Editor|エディター]]のユーザー全員が使える機能として、2023年1月第二週からベータ版でリリースされる予定です。2010年版ウィキテキストエディターのツールバーから利用できるようになります。この機能は2021年のコミュニティ要望リストで4番目に多かった要望でした。
'''イベント'''
* 5月19日から21日にギリシャのアテネで開催される[[mw:Special:MyLanguage/Wikimedia Hackathon 2023/Participate|ウィキメディア・ハッカソン2023]]への参加登録の受付を行っています。1月14日まで奨学金の申請も受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年12月20日 (火) 00:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24258101 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-02 ==
<section begin="technews-2023-W02"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/02|翻訳]]されています。
'''最近の更新'''
* タグを使用して、最近の更新やウォッチリストにある編集を絞り込めるようになりました。タグを使用して、見たくない編集を除外することができるようになります。これまでは、タグを使用すると、そのタグが付いた編集のみ抽出できるようになっていました。 [https://phabricator.wikimedia.org/T174349]
* [[Special:WhatLinksHere|特別:リンク元]]は、特定のページにリンクしているすべてのページを表示します。この度、表示したページをアルファベット順に並び替える機能の[https://wlh.toolforge.org プロトタイプ]が作成されました。詳細は[[phab:T4306|Phabricatorのチケット]]で確認できます。
* ウォッチリストと投稿記録ページで[[mw:Special:MyLanguage/Extension:Thanks|感謝]]機能を使用できるようになります。 [https://phabricator.wikimedia.org/T51541]
* ウィキのページは、移動して新しい名前を付けることができます。ページを移動するときに、よくある理由をドロップダウンメニューから選択できるようになりました。これにより、毎回説明を書かなくてもよくなりました。 [https://phabricator.wikimedia.org/T325257]
* [[m:Special:MyLanguage/Matrix.org|Matrix]]はチャットツールです。<code>matrix:</code>を使って、ウィキページにMatrixへのリンクを作成することができるようになりました。 [https://phabricator.wikimedia.org/T326021]
* 多言語ウィキの最近の更新を見る際、翻訳をフィルタリングできます。従来は名前空間単位でしかフィルタリングできませんでしたが、翻訳されたサブページを非表示にすることもできるようになりました。 [https://phabricator.wikimedia.org/T233493]
'''今週の更新'''
* [[m:Special:MyLanguage/Real Time Preview for Wikitext|ウィキテキストのリアルタイム・プレビュー]]は、編集者がウィキテキストを編集しているときにページのプレビューを表示することができるツールです。2010年版ウィキテキストエディターを使用しているすべての利用者に対して有効になります。機能を有効にするとエディターのツールバーにプレビューボタンが追加されます。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] 一部のウィキではメインのデーターベース入れ替えのため、数分間読み取り専用になります。{{#time:n月j日|2023-01-10|ja}}07:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象のウィキ])と{{#time:n月j日|2023-01-12|ja}}07:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象のウィキ])に実行されます。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-10|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-01-11|ja}}に、その他のウィキには{{#time:n月j日|2023-01-12|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W02"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月10日 (火) 01:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24342971 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-03 ==
<section begin="technews-2023-W03"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/03|翻訳]]されています。
'''問題点'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] ページの変更履歴にある「{{int:last}}」リンク内のURLは、<bdi lang="zxx" dir="ltr"><code><nowiki>diff=[revision ID]&oldid=[revision ID]</nowiki></code></bdi>から<bdi lang="zxx" dir="ltr"><code><nowiki>diff=prev&oldid=[revision ID]</nowiki></code></bdi>に変更されました。これはタグによって履歴の絞り込みを行った際、リンクが不適切な差分を生成する問題を解決するためです。この変更の影響で、ユーザスクリプトに不具合が生じる可能性があります。 [https://phabricator.wikimedia.org/T243569]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-01-18|ja}}に、その他のウィキには{{#time:n月j日|2023-01-19|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Talk pages project/Usability|トークページの外観の変更]]は、これまで<code>{{ns:1}}:</code>と<code>{{ns:3}}:</code>名前空間にしか適用されていませんでした。今後はその他のトークページ、たとえば<code>{{ns:5}}:</code>などにも反映の予定です。トークページ以外の名前空間には、<code>{{ns:4}}:</code>ページを含めて反映しません(例えば井戸端など)。[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]([[Special:Preferences#mw-prefsection-betafeatures|ベータ機能]])を変更してご利用ください。 [https://phabricator.wikimedia.org/T325417]
*ウィキソースを閲覧していて、どこかのPage: 名前空間で画像を拡大したり全体表示した場合、その倍率をシステムが記憶し、特定のIndex: 名前空間にリンクしたPage: 名前空間すべてで採用します。 [https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ProofreadPage/+/868841]
* 2022年版ベクター外装は英語版ウィキペディアのデスクトップ利用者の既定の外装として設定されます。 変更は1月18日15:00 (UTC) に実施されます。 [[:en:w:Wikipedia:Vector 2022|詳細はこちら]]
'''今後の予定'''
* 寄稿者にツールや改善点に関する技術的な提案と投票を呼びかける[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望アンケート]]の2023年版が、来週2023年1月23日18:00 (UTC) に開始する予定です。[[m:Community Wishlist Survey/Sandbox|CWSサンドボックス]]で提案の下書きを始めることができます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月17日 (火) 01:11 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24381020 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-04 ==
<section begin="technews-2023-W04"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/04|翻訳]]されています。
'''問題点'''
* 先週、約15分程度すべてのウィキですべてのログインユーザーとキャッシュされていないページへのアクセスが不可能になる不具合が発生しました。処理のタイミングに起因するものです。 [https://wikitech.wikimedia.org/wiki/Incidents/2023-01-17_MediaWiki]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-01-25|ja}}に、その他のウィキには{{#time:n月j日|2023-01-26|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* ベータ版機能の[[mw:Special:MyLanguage/Talk pages project|議論ツール]]を有効にすると、トークページの外観が変更されて議論のアクティビティに関する情報が表示されるようになります。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/Usability#Status][https://phabricator.wikimedia.org/T317907]
* 利用者に技術的な提案やツールの改善点について呼びかける[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望アンケート]] (Community Wishlist Survey, CWS)の2023年版が1月23日月曜日の[https://zonestamp.toolforge.org/1674496814 18:00 (UTC)]に開始されます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W04"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月23日 (月) 23:46 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24418874 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-05 ==
<section begin="technews-2023-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/05|翻訳]]されています。
'''問題点'''
* 先週に15分程度、一部の利用者がログインまたはページの編集が出来ないことがありました。これは、セッションストレージの問題によるものでした。 [https://wikitech.wikimedia.org/wiki/Incidents/2023-01-24_sessionstore_quorum_issues]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-01|ja}}に、その他のウィキには{{#time:n月j日|2023-02-02|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 出典にローカライズされた番号付与方式を使用しているウィキでは、新しいCSSを追加する必要があります。これにより、すべての閲覧・編集モードで同じように出典番号を表示することができるようになります。もしあなたのウィキが自分たちでCSSの設定をしたい場合、[[mw:Special:MyLanguage/Parsoid/Parser Unification/Cite CSS|詳細とコピーするCSSの例]]を確認して、あなたのウィキを自分自身で変更を加えたいウィキのリストに追加してください。それ以外のウィキは、週初めの2月5日から、開発者が直接お手伝いをする予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月31日 (火) 00:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24455949 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-06 ==
<section begin="technews-2023-W06"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/06|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|ベクター2022年版外装]]では、全幅トグルを使用している非ログイン利用者はページを更新や新しいページを開いた後でも選択した設定でページを閲覧することが出来るようになります。 これは、ベクター2022年版が既定の外装であるウィキでのみ適用されます。 [https://phabricator.wikimedia.org/T321498]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-08|ja}}に、その他のウィキには{{#time:n月j日|2023-02-09|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* 以前は、メインデータベースの切り替えにより一部のウィキが数分間読み取り専用になる時間を案内していました。読み取り専用時間が最小限となったため、切り替えは今後案内されません。切り替えは引き続き、火曜日と木曜日の午前7時 (UTC) に行われます。 [https://phabricator.wikimedia.org/T292543#8568433]
* 全てのウィキで2022年版ベクター外装を使うログイン利用者には、[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements/Features/Page_tools|新しいサイドメニュー]]にページ関連の「リンク元」などリンクを表示するようになります。表示領域は既存のメニューの反対側です。すでにウィキペディアのチェコ語版、英語版、ベトナム語版に展開済みです。 [https://phabricator.wikimedia.org/T328692]
*[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望調査2023]]では新規の提案受付の〆切を[https://zonestamp.toolforge.org/1675706431 2023年2月6日月曜の18:00 UTC]とします。提案者の皆さんはそれまでに編集を終えて、その後の[[m:Special:MyLanguage/Community_Wishlist_Survey/Help_us|翻訳]]と審査の時間を確保してください。投票は2月10日に開始します。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] デスクトップとモバイルのサイトでガジェットやユーザスクリプトの読み込み方が変わります。従来これらはデスクトップ版サイトのみで読み込まれるようになっていました。ウィキの管理者は、この改訂に先立って[[MediaWiki:Gadgets-definition|ガジェットの定義]]を確認してから、モバイル版で読み込むべきではないガジェットに<bdi lang="zxx" dir="ltr"><code>skins=…</code></bdi>を追加してください。[https://phabricator.wikimedia.org/T328610 詳細はこちら]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月6日 (月) 10:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24491749 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-07 ==
<section begin="technews-2023-W07"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/07|翻訳]]されています。
'''問題点'''
* 編集の巡回が有効になっているウィキでは現在、自動巡回権限を持つ指導役が[[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list|指導役名簿]]を変更しても巡回済と正しくマークされません。今週中に修正する予定です。 [https://phabricator.wikimedia.org/T328444]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-15|ja}}に、その他のウィキには{{#time:n月j日|2023-02-16|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:DiscussionTools#Mobile|議論ツール]]の返信ツールとその他の部分をモバイル版サイトを使うすべての編集者に向けて展開します。[[mw:Special:MyLanguage/Talk_pages_project/Mobile#Status_Updates|決定の詳細はこちら]]。 [https://phabricator.wikimedia.org/T298060]
'''今後の更新'''
* 3月1日に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。実施は13:30 - 15:30([[:w:ja:世界協定時|UTC]])の時間帯を予定しています。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T328287][https://phabricator.wikimedia.org/T327920][https://wikitech.wikimedia.org/wiki/Deployments]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W07"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月14日 (火) 01:49 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24540832 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-08 ==
<section begin="technews-2023-W08"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/08|翻訳]]されています。
'''問題点'''
* 先週、クラウドサービスの計画メンテナンス中に予期せぬ問題が発生したため、クラウドサービスチームはデータの破損を防ぐために、クラウドサービスで運用されている全てのツールを2 - 3時間停止しなければなりませんでした。今後同様の問題が発生しないように作業が進行中です。 [https://phabricator.wikimedia.org/T329535]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-22|ja}}に、その他のウィキには{{#time:n月j日|2023-02-23|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
*[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望調査2023年]]の投票期間が[https://zonestamp.toolforge.org/1677261621 2月24日18:00 ([[:w:ja:世界協定時|UTC]])]に終了します。調査結果は2月28日に発表されます。
'''今後の予定'''
* 3月1日に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。実施は13:30 - 15:30([[:w:ja:世界協定時|UTC]])の時間帯を予定しています。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T328287][https://phabricator.wikimedia.org/T327920][https://wikitech.wikimedia.org/wiki/Deployments]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月21日 (火) 01:58 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24570514 のリストを使用して送信したメッセージ -->
== Editing news 2023 #1 ==
<section begin="message"/><i>[[m:Special:MyLanguage/VisualEditor/Newsletter/2023/February|他の言語で読む。]] • [[m:Special:MyLanguage/VisualEditor/Newsletter|この多言語版ニュースレターの購読者名簿]]</i>
このニュースレターには[[mw:Special:MyLanguage/Editing team|編集]]チームの業務についての主なアップデートが2件あります。
# 編集チームは[[mw:Special:MyLanguage/Talk pages project|会話ページプロジェクト]]に新しい特集記事を追加して終了し、効果的に活動させます。
# チームは新規プロジェクト[[mw:Special:MyLanguage/Edit check|Edit check]]を始めようとしています。
<strong>会話ページプロジェクト</strong>
[[File:Page Frame Features on desktop.png|alt=現在全てのウィキメディアウィキのベータ様式で得られる会話ページデザインを示すスクリーンショットは、変更が進んでいます。この様式にはそれぞれ会話での人やコメントの数についての情報が含まれています。|thumb|300px|これから行われる変更の一部]]
編集チームは間もなく[[mw:Special:MyLanguage/Talk_pages_project|会話ページプロジェクト]]の第一段階を終了します。 ほぼ全ての[[mw:Special:MyLanguage/Talk pages project/Usability|新しい形態]]が現在[[Special:Preferences#mw-prefsection-betafeatures|{{int:discussiontools-preference-label}}向けのベータ様式]]で使えます。
ごく最近のコメントのデータのように会話がどのように行われているかの情報を示すことになります。 間もなく新しい"{{int:skin-action-addsection}}"ボタンができます。 [[Special:Preferences#mw-prefsection-editing-discussion]]で停止することができます。 [[mw:Special:MyLanguage/Talk:Talk_pages_project/Usability#c-PPelberg_(WMF)-20230215001000-Feedback:_Proposed_Revisions_to_%22Add_topic%22_button|皆さんの考えを教えてください]]。
[[File:Daily edit completion rates mobile talk pages.png|thumb|300px|テストグループごとの日々の編集完成率:DiscussionTools(テストグループ)とMobileFrontend overlay(管理グループ)]]
[[mw:Special:MyLanguage/Talk pages project/Mobile|モバイルサイト上の{{int:discussiontools-preference-label}}]]のためのA/Bテストは終了しています。 編集者は[[mw:Special:MyLanguage/Talk_pages_project/Mobile#Status_Updates|{{int:discussiontools-preference-label}}で最大の成功を収めました]]。 編集チームはモバイルサイトの全編集者のためにこの形式を使えるようにします。
<strong>新規プロジェクト:Edit Check</strong>
編集チームは[[mw:Special:MyLanguage/Edit check|ウィキペディアの新しい編集者を手助けするプロジェクト]]を立ち上げます。「{{int:publishchanges}}」をクリックする前に問題点を確認できるように手助けします。 最初のツールは新しいコンテンツを加える際に参照を加えるように促します。 詳しい案内はこのページを[[mw:Special:MyLanguage/Help:Watchlist|ご覧ください]]。 詳しく知るために[[mw:Special:MyLanguage/Editing_team/Community_Conversations#20230303|2023年3月3日の電話会議に参加できます]]。<section end="message"/>
–[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|{{int:Talkpagelinktext}}]]) 2023年2月22日 (水) 23:18 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=VisualEditor/Newsletter&oldid=24472950 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-09 ==
<section begin="technews-2023-W09"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/09|翻訳]]されています。
'''問題点'''
* 先週末に一部の地域で、ページの読み込みに20分間、編集の保存に55分間、問題が発生していました。これらの問題は、定期メンテナンス作業中に発生した予期せぬ出来事によってキャッシュサーバーに問題が発生したことが原因でした。 [https://wikitech.wikimedia.org/wiki/Incidents/2023-02-22_wiki_outage][https://wikitech.wikimedia.org/wiki/Incidents/2023-02-22_read_only]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-01|ja}}に、その他のウィキには{{#time:n月j日|2023-03-02|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* 3月1日に数分間、すべてのウイキで閲覧専用となり編集が出来ない状態となります。時間は[https://zonestamp.toolforge.org/1677679222 14:00 UTC]を予定しています。 [https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W09"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月27日 (月) 23:47 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24634242 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-10 ==
<section begin="technews-2023-W10"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/10|翻訳]]されています。
'''最近の更新'''
* コミュニティ要望調査2023年は終了しました。コミュニティ技術チームは[[m:Special:MyLanguage/Community Wishlist Survey 2023/Results|調査結果を公表]]しており、2023年4月に次の展開をお知らせする予定です。
* 複数の書記体系を処理するために[[mw:Special:MyLanguage/Writing_systems|LanguageConverter]]を使用しているウィキにおいて、ウィキテキストで独自の変換規則を使用している記事(主に中国版ウィキペディア)では、特に2022年版ベクタースキンにて、目次でこれらの規則が一貫して適用されない場合がありました。現在は修正済です。 [https://phabricator.wikimedia.org/T306862]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-08|ja}}に、その他のウィキには{{#time:n月j日|2023-03-09|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[Special:Preferences|個人設定画面]]に、検索システムが追加されました。これにより、さまざまな設定をより簡単に見つけることができます。近日中には携帯機器でも動作するようになる予定です。 [https://phabricator.wikimedia.org/T313804]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月6日 (月) 23:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24676916 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-11 ==
<section begin="technews-2023-W11"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/11|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-15|ja}}に、その他のウィキには{{#time:n月j日|2023-03-16|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-cbk_zamwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cdowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cebwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-chwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-chrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-chywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ckbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-csbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cuwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-itwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304542][https://phabricator.wikimedia.org/T304550]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月13日 (月) 23:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24700189 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-12 ==
<section begin="technews-2023-W12"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/12|翻訳]]されています。
'''問題点'''
* 先週、一部の利用者が画像のサムネイルを読み込む際に問題が発生していました。これは誤ってキャッシュされた画像が原因でした。 [https://phabricator.wikimedia.org/T331820]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-22|ja}}に、その他のウィキには{{#time:n月j日|2023-03-23|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:Contributions}}]]で利用者の[[{{#special:CentralAuth}}]]ページが表示されるようになります — このリンクを追加していたユーザースクリプトは競合してしまう可能性があります。この機能リクエストは[[:m:Community Wishlist Survey 2023/Admins and patrollers/Add link to CentralAuth on Special:Contributions|コミュニティ要望調査2023年の結果、17位に選ばれました]]。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:AbuseFilter}}]]の編集画面はサイズ変更が可能になり、既定で大きくなります。この機能リクエストは[[:m:Community Wishlist Survey 2023/Anti-harassment/Make the AbuseFilter edit window resizable and larger by default|コミュニティ要望調査2023年の結果、80位に選ばれました]]。
* 管理者が利用者のブロックを解除する際、解除対象となるアカウントの利用者ページを管理者自身のウォッチリストに追加できるようになります。この機能は[[{{#special:Unblock}}]]とAPIの双方で利用できます。 [https://phabricator.wikimedia.org/T257662]
'''ミーティング'''
* ウィキペディアモバイルアプリチームとの次のミーティングに参加できます。ミーティングでは現在の機能と今後の計画について話し合います。ミーティングは[https://zonestamp.toolforge.org/1679677204 3月24日17:00 (UTC)] に行われます。[[mw:Special:MyLanguage/Wikimedia Apps/Office Hours|詳細と参加方法]]をご覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月21日 (火) 01:26 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24732558 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-13 ==
<section begin="technews-2023-W13"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/13|翻訳]]されています。
'''最近の更新'''
* [[:mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]の条件制限が1000から2000に引き上がりました。 [https://phabricator.wikimedia.org/T309609]
* [[:m:Special:MyLanguage/Global AbuseFilter#Locally disabled actions|グローバル不正利用フィルターの一部で使用されていた対処操作]]がローカルプロジェクトにて適用されなくなりました。 [https://phabricator.wikimedia.org/T332521]
* デスクトップ版を使用している利用者は{{int:toolbox}}メニューの{{int:discussiontools-newtopicssubscription-button-subscribe-label}}リンクをクリックすると、トークページを購読できるようになりました。その購読中は、新しい話題が始まると[[mw:Special:MyLanguage/Notifications|通知]]が届きます。これはページをウォッチリストに入れたり単一の話題の購読とは別の機能です。 [https://phabricator.wikimedia.org/T263821]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-29|ja}}に、その他のウィキには{{#time:n月j日|2023-03-30|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ウィクショナリーとウィキペディアで[[mw:Special:MyLanguage/VisualEditor/Diffs|視覚的な差分]]を、すべての[[m:Special:MyLanguage/Help:Page history|履歴ページ]]で選択できるようになります。 [https://phabricator.wikimedia.org/T314588]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 従来の[[mw:Mobile Content Service|モバイルコンテンツサービス]]が2023年7月に廃止されます。それまでに開発者はサービス継続のためにParsoidまたは別のAPIに切り替えることをお勧めします。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/4MVQQTONJT7FJAXNVOFV3WWVVMCHRINE/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月28日 (火) 01:14 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24780854 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-14 ==
<section begin="technews-2023-W14"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/14|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Extension:Babel|Babel]]拡張機能が使用しているカテゴリ自動作成システムには重要な変更と修正が加えられました。変更点の一つとしては、作成時に自動生成されるカテゴリ説明文にテンプレートを追加し、新しいカテゴリを分類できるようになりました。 [https://phabricator.wikimedia.org/T211665][https://phabricator.wikimedia.org/T64714][https://phabricator.wikimedia.org/T170654][https://phabricator.wikimedia.org/T184941][https://phabricator.wikimedia.org/T33074]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-05|ja}}に、その他のウィキには{{#time:n月j日|2023-04-06|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 今週から[[w:ja:ウェブブラウザ|ブラウザ]]が古いとウィキメディアのウィキで[[w:ja:JavaScript|JavaScript]]を使えなくなる場合があります。これは主にInternet Explorer 11を使用している利用者に影響します。もし古いブラウザを使用している場合は、新しいバージョンへアップグレードすることをお勧めします。 [https://phabricator.wikimedia.org/T178356]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 非推奨の<bdi lang="zxx" dir="ltr"><code>jquery.hoverIntent</code></bdi>モジュールは削除されました。このモジュールはガジェットやユーザースクリプトで使用して、JavaScriptのhoverイベントへの応答を人為的に遅らせることができました。ガジェットやユーザースクリプトは、代わりにjQueryの<bdi lang="zxx" dir="ltr"><code>hover()</code></bdi>または<bdi lang="zxx" dir="ltr"><code>on()</code></bdi>を使用する必要があります。[[mw:Special:MyLanguage/ResourceLoader/Migration_guide_(users)#jquery.hoverIntent|移行ガイド]]に例が掲載されています。 [https://phabricator.wikimedia.org/T311194]
* [[{{#special:SpecialPages}}]]にある一部のリンクを整理する予定です。すべての利用者に関係するリンクと、各自の利用者アカウントに関連のあるリンクが、より明確に判別できるようになります。 [https://phabricator.wikimedia.org/T333242]
* 新しい<bdi lang="zxx" dir="ltr"><code><nowiki>__ARCHIVEDTALK__</nowiki></code></bdi>マジックワードで、過去ログ化された議論ページで[[mw:Special:MyLanguage/Talk pages project/Replying|返信ボタン]]を隠すことができるようになる予定です。また、新規導入予定の<bdi lang="zxx" dir="ltr"><code>.mw-archivedtalk</code></bdi>というCSSクラスを用いると、ページの個々の節で返信ボタンを表示しなくなります。 [https://phabricator.wikimedia.org/T249293][https://phabricator.wikimedia.org/T295553][https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DiscussionTools/+/738221]
'''今後の予定'''
* ページ中にグラフなどデータを可視化するVegaソフトウェアを最新バージョンにアップグレードする予定です。かなり古い1.5バージョンの構文をまだ使用しているグラフは正常に動作しなくなる恐れがあります。ほとんどの既存用例はすでに洗い出して更新済みですが、残りの確認作業と、ローカルの解説文書の更新を手伝ってください。[[phab:T260542|これら対象となるグラフの発見と修復の例はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月3日 (月) 23:40 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24820268 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-15 ==
<section begin="technews-2023-W15"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/15|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] ビジュアルエディターで、ギャラリーダイアログを開かずにギャラリー内の画像のキャプションを編集できるようになりました。この機能リクエストは[[:m:Community Wishlist Survey 2023/Editing/Editable gallery captions in Visual Editor|コミュニティ要望調査2023年の結果、61位に選ばれました]]。 [https://phabricator.wikimedia.org/T190224]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] 他の利用者があなたの利用者ページを編集したときに、通知を受け取ることができるようになりました。個人設定で"{{int:Echo-category-title-edit-user-page}}"設定をご覧ください。この機能リクエストは[[:m:Community Wishlist Survey 2023/Anti-harassment/Notifications for user page edits|コミュニティ要望調査2023年の結果、3位に選ばれました]]。 [https://phabricator.wikimedia.org/T3876]
'''問題点'''
* すべてのタイプの中央管理通知バナーにおいて、ログインユーザーが特定のタイプのバナーを[[Special:Preferences#mw-prefsection-centralnotice-banners|無効]]にしても、表示されてしまう問題がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T331671]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-12|ja}}に、その他のウィキには{{#time:n月j日|2023-04-13|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-arywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-dawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-dinwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-dsbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-eewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-elwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-emlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-eowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-etwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-euwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-extwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tumwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ffwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fiu_vrowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fjwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-frpwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-frrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-furwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gcrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-glwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-glkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gomwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gotwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-guwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gvwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304551][https://phabricator.wikimedia.org/T308133]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月10日 (月) 20:05 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24851886 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-16 ==
<section begin="technews-2023-W16"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/16|翻訳]]されています。
'''最近の更新'''
* 新しい機能である"{{int:Kartographer-sidebar-nearbybutton}}"ボタンを使って、[[mw:Special:MyLanguage/Help:Extension:Kartographer#Show_nearby_articles|Kartographer地図の上で近くの場所の記事]]を見ることができるようになりました。10月から6つのウィキでこの機能のテストが行われています。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation/Nearby_articles#Implementation][https://phabricator.wikimedia.org/T334079]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[m:Special:GlobalWatchlist|特別:グローバルウォッチリスト]]ページの各項目に"{{int:globalwatchlist-markpageseen}}"リンクが追加されました。この機能リクエストは[[m:Community Wishlist Survey 2023/Notifications, Watchlists and Talk Pages/Button to mark a single change as read in the global watch list|コミュニティ要望調査2023年の結果、161位に選ばれました]]。 [https://phabricator.wikimedia.org/T334246]
'''問題点'''
* ウィキメディア・コモンズでは、新しいバージョンの画像がアップロードされた後に、一部のサムネイルが正しく置き換わらないことがありました。今週末には修正される予定です。 [https://phabricator.wikimedia.org/T331138][https://phabricator.wikimedia.org/T333042]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 直近数週間、一部の外部ツールでOAuthログインに一貫性のない問題が発生していました。現在は修正済みです。 [https://phabricator.wikimedia.org/T332650]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-19|ja}}に、その他のウィキには{{#time:n月j日|2023-04-20|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W16"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月18日 (火) 01:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24881071 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-17 ==
<section begin="technews-2023-W17"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/17|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:Contributions}}]](利用者の投稿記録)などのページの日付選択メニューにおいて、現在と将来の10年ではなく、現在と過去の10年の年範囲が表示されるようになりました。この機能リクエストは[[m:Community Wishlist Survey 2023/Miscellaneous/Change year range shown in date selection popup|2023年コミュニティ要望調査の結果、145位に選ばれました]]。 [https://phabricator.wikimedia.org/T334316]
'''問題点'''
* [[mw:Special:MyLanguage/Extension:Graph|グラフ拡張機能]]におけるセキュリティ上の問題のため、すべてのウィキメディアプロジェクトでグラフが無効化されました。ウィキメディア財団チームは、この脆弱性に対応するための計画を進めています。 [https://phabricator.wikimedia.org/T334940]
* 数日間ほど、モバイル版ウィキで一部の編集を保存できないことがありました。現在は修正済です。 [https://phabricator.wikimedia.org/T334797][https://phabricator.wikimedia.org/T334799][https://phabricator.wikimedia.org/T334794]
'''今週の更新'''
* 4月26日に数分間、すべてのウィキで閲覧専用となり編集が出来ない状態となります。時間は[https://zonestamp.toolforge.org/1682517653 14:00 UTC]を予定しています。 [https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-26|ja}}に、その他のウィキには{{#time:n月j日|2023-04-27|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 編集チームでは、[[mw:Special:MyLanguage/Talk pages project/Usability|トークページプロジェクトのユーザビリティ分析]](使い勝手に関する分析)のために、A/Bテストを予定しています。[[mw:Special:MyLanguage/Talk pages project/Usability/Analysis|予定されている測定方法は公開されています]]。あなたのウィキも[[phab:T332946|参加の招待を受けるかもしれません]]。測定計画に対する改善点があれば[[mw:Talk:Talk pages project/Usability|議論ページ]]で提案してください。
* [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2023-2024|ウィキメディア財団の年次計画2023-2024年度の草案は、5月19日までコメントと意見を募集しています]]。最終計画は2023年7月にメタウィキで公開される予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W17"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月24日 (月) 22:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24933592 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-18 ==
<section begin="technews-2023-W18"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/18|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] コンテンツ帰属ツールである[[mw:Special:MyLanguage/Who Wrote That?|Who Wrote That?]]、[[xtools:authorship|XTools 著者統計]]および[[xtools:blame|XTools Blame]]はフランス語版とイタリア語版ウィキペディアをサポートするようになりました。今後、さらに多くの言語を追加する予定です。これは[[m:Community Wishlist Survey 2023/Reading/Extend "Who Wrote That?" tool to more wikis|コミュニティ要望調査2023年で7位の要望]]の一部です。 [https://phabricator.wikimedia.org/T243711][https://phabricator.wikimedia.org/T270490][https://phabricator.wikimedia.org/T334891]
* [[:commons:Special:MyLanguage/Commons:Video2commons|Video2commons]]ツールのアップデートが行われました。これにより、YouTubeからのアップロードに関連するいくつかのバグが修正されました。 [https://github.com/toolforge/video2commons/pull/162/commits]
* モバイルウェブ版の<!-- 個人設定 -->[[{{#special:Preferences}}]] ページはデザインを変更しました。これにより異なるカテゴリごとや設定を小さな画面でも見やすくなりました。またモバイルウェブ版はサイドバーにリンクを設け、個人設定ページを直接、開くことができるようにしました。 [https://www.mediawiki.org/wiki/Moderator_Tools/Content_moderation_on_mobile_web/Preferences]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-03|ja}}に、その他のウィキには{{#time:n月j日|2023-05-04|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W18"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月2日 (火) 01:45 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24966974 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-19 ==
<section begin="technews-2023-W19"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/19|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] 先週、コミュニティ技術チームは、2022年コミュニティ要望調査で1位となった[[m:Special:MyLanguage/Community Wishlist Survey 2022/Better diff handling of paragraph splits|差分表示改善]]のための第一回アップデートをリリースしました。[[phab:T324759|この更新版]]は差分をインラインで表示し、説明とツールチップを追加し、青色と黄色の色分け表示に慣れていないユーザーにも編集内容が分かりやくすなりました。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] MediaViewer経由で画像を表示した際、ブラウザバックを行うと直前に表示していたWikiページに戻るようになりました。この機能は、[[m:Community Wishlist Survey 2023/Reading/Return to the article when closing the MediaViewer|2023年コミュニティ要望調査の投票で65位]]でした。 [https://phabricator.wikimedia.org/T236591]
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|SyntaxHighlight]] 拡張機能は、言語の選択肢として<bdi lang="en" dir="ltr"><code>wikitext</code></bdi>(ウィキ構文)をサポートしました。旧来ウィキ構文の強調表示の代用として使われていた <bdi lang="en" dir="ltr"><code>html5</code></bdi>、<bdi lang="en" dir="ltr"><code>moin</code></bdi>、<bdi lang="en" dir="ltr"><code>html+handlebars</code></bdi> を置き換えることができます。 [https://phabricator.wikimedia.org/T29828]
* [[mw:Special:MyLanguage/Manual:Creating pages with preloaded text|新規ページまたは節にテキストをプリロードする]]とき、翻訳済みの MediaWiki インタフェース メッセージを読み込むことが可能になりました。[https://cs.wikipedia.org/wiki/User_talk:Martin_Urbanec_(WMF)?action=edit§ion=new&preload=MediaWiki:July 一例として] {{int:project-localized-name-cswiki/ja}} では <bdi lang="zxx" dir="ltr"><code><nowiki>preload=MediaWiki:July</nowiki></code></bdi> を使っています。 [https://phabricator.wikimedia.org/T330337]
'''問題点'''
* Graph Extensionの更新: 財団の開発者は、視覚化ソフトウェアをVega5にアップグレードしました。コミュニティが使用する既存のVega2準拠のグラフとは互換性ありません。ローカルのグラフやテンプレート、luaモジュールを更新する必要があります。[https://vega.github.io/vega/docs/porting-guide/ Vegaの移行ガイド]ではVega2からの移行に関する最も包括的な詳細を説明しています。[https://www.mediawiki.org/w/index.php?title=Template:Graph:PageViews&action=history 移行の例]も参考にしてください。現在、Vega5 はテスト環境を提供する目的から、mediawiki.orgで既に有効化されています。 [https://phabricator.wikimedia.org/T334940#8813922]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-10|ja}}に、その他のウィキには{{#time:n月j日|2023-05-11|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] これまで、すべての新しいOAuthアプリはすべて手動で審査されていました。今週から、利用者情報の認証のみ、または基本的な機能のみにアクセスするアプリは審査が不要になります。 [https://phabricator.wikimedia.org/T67750]
'''今後の予定'''
* 来年から、MediaWikiはログインせずに編集を行うユーザーを識別するためにIPアドレスを使用するのをやめ、一意の仮ユーザー名を自動的に割り当てるようになります。詳細は[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/Updates|IPによる編集について: プライバシー保護と荒らし行為の軽減/更新版]]をお読みください。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/Updates#What will temporary usernames look like?|仮ユーザー名のフォーマット]]に関する[[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation#What should it look like?|議論への参加]]もお待ちしています。 [https://phabricator.wikimedia.org/T332805]
* 2022年版ベクター外装が既定のウィキペディア10言語版で[[:w:ja:A/Bテスト|A/Bテスト]]を実施します。ログインしているデスクトップ版利用者の半数に対し、インターフェースの構成要素の分かれ目を分かりやすく表示します。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2023-05 Zebra9 A/B test|詳細はこちら]]をご覧ください。 [https://phabricator.wikimedia.org/T333180][https://phabricator.wikimedia.org/T335972]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <code>jquery.tipsy</code>は MediaWiki コアから除去される予定です。 いくつかのユーザスクリプトに影響が出る可能性があります。<code>.tipsy(</code> と言う記述がある行はコメントアウトする必要があります。スクリプトを従来と同じように動作させる場合、<code>OO.ui.PopupWidget</code> を使ってください。[[:mw:Help:Locating broken scripts|壊れたスクリプトの探し方]]については[[phab:T336019|詳細]]を参照してください。 [https://phabricator.wikimedia.org/T336019]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月9日 (火) 00:36 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24998636 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-20 ==
<section begin="technews-2023-W20"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/20|翻訳]]されています。
'''問題点'''
* [[:w:ja:ISBN|ISBN]]に基づいて引用を自動生成する機能は現在不具合があり動作しません。これは、[[mw:Special:MyLanguage/Help:VisualEditor/User_guide/Citations-Full#Automatic|VisualEditorの自動タブ]]およびガジェットやユーザースクリプトでcitoid APIを使用する場合に影響があります。現在、機能を復旧するために作業を行っています。 [https://phabricator.wikimedia.org/T336298]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-17|ja}}に、その他のウィキには{{#time:n月j日|2023-05-18|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-gorwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hakwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hawwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hifwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hsbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-htwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-igwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ilowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-inhwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iuwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-jamwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-jvwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308134]
'''今後の予定'''
* 最近ウィキメディア財団では新しいツールの開発に取り組むチームが設立されました。現在チームは[[m:Wikimedia_Foundation_Annual_Plan/2023-2024/Draft/Future_Audiences#FA2.2_Conversational_AI|ChatGPTによって生成された情報をウィキメディアプロジェクトへ適切に帰属させるためのChatGPTプラグインのプロトタイプ]]を構築しています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ガジェットとユーザースクリプトの開発者は<bdi lang="zxx" dir="ltr"><code>jquery.cookie</code></bdi>を<bdi lang="zxx" dir="ltr"><code>mediawiki.cookie</code></bdi>に置き換える必要があります。<bdi lang="zxx" dir="ltr"><code>jquery.cookie</code></bdi>ライブラリは1ヶ月以内に削除されます。削除時点で残っている使用箇所は開発スタッフがスクリプトを使用して置き換えます。 [https://phabricator.wikimedia.org/T336018]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月15日 (月) 21:45 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25011501 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-21 ==
<section begin="technews-2023-W21"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/21|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] ページをウォッチリストに入れている人が"最近の編集"に訪問したものとして計上される期間が30日となりました。以前は180日でした。これは[[m:Community Wishlist Survey 2023/Notifications, Watchlists and Talk Pages/Change information about the number of watchers on a page|コミュニティ要望調査で提案]]されました。 [https://phabricator.wikimedia.org/T336250]
'''今週の更新'''
* ウィキペディアでは、[[mw:special:MyLanguage/Growth/Positive reinforcement#Impact|改良版の影響力モジュール]]が利用できるようになる予定です。影響力モジュールは、新規参加者が[[mw:Special:MyLanguage/Growth/Feature summary#Newcomer homepage|個人ホームページ]]で利用できる機能です。編集回数や、編集したページの閲覧者数、受け取った感謝の数などが表示されます。また、Special:Impactにアクセスすることによっても見ることができます。 [https://phabricator.wikimedia.org/T336203]
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-24|ja}}に、その他のウィキには{{#time:n月j日|2023-05-25|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W21"/>
2023年5月22日 (月) 16:55 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25028325 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-22 ==
<section begin="technews-2023-W22"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/22|翻訳]]されています。
'''最近の更新'''
* ZoteroのISBN検索機能により、再びISBNから引用を自動生成することができるようになりました。現在のデータソースは、アメリカ議会図書館、フランス国立図書館、K10plus ISBN(ドイツ語のリポジトリ)です。さらなるデータソース検索機能を[[mw:Citoid/Creating Zotero translators|Zoteroに提案]]することができます。 [[mw:Special:MyLanguage/Help:VisualEditor/User_guide/Citations-Full#Automatic|ビジュアルエディターの自動タブ]]のISBNラベルは、今週後半に再び表示されます。 [https://phabricator.wikimedia.org/T336298#8859917]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:EditWatchlist}}]]で、それぞれの名前空間内にある全ページを選択するための"{{int:watchlistedit-normal-check-all}}"ボタンが追加されました。この機能リクエストは、[[m:Community Wishlist Survey 2023/Notifications, Watchlists and Talk Pages/Watchlist edit - "check all" checkbox|2023年コミュニティ要望調査の投票で161位でした]]。 [https://phabricator.wikimedia.org/T334252]
'''問題点'''
* 今月上旬の数日間、ツールメニューの"言語間リンクを追加"機能が正常に動作しないことがありました。現在は修正済です。 [https://phabricator.wikimedia.org/T337081]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-31|ja}}に、その他のウィキには{{#time:n月j日|2023-06-01|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* VisualEditorは今週、[https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/dblists/small.dblist 小規模]および[https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/dblists/medium.dblist 中規模]のウィキで新しいバックエンドに切り替えられる予定です。これはParsoidをMediaWikiのコアに移行する取組みの一部です。この変更による利用者への影響は軽微なものと思われますが、VisualEditorを使用した際に読み込みが遅いなどの不具合を感じた場合は、右のリンク先のphabricatorチケットでご報告ください。 [https://phabricator.wikimedia.org/T320529]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月29日 (月) 22:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25079963 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-23 ==
<section begin="technews-2023-W23"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/23|翻訳]]されています。
'''最近の更新'''
* [[:mw:Special:MyLanguage/Help:Extension:RealMe|RealMe]]拡張機能を使用して、利用者ページ上にあるURLをMastodonや同様のソフトウェア向けに検証済みとしてマークすることができます。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] ビジュアルエディターを使用している際に、脚注リストから引用と脚注の編集を開始できるようになりました。この機能リクエストは、[[m:Community Wishlist Survey 2023/Citations/Allow citations to be edited in the references section with VisualEditor|2023年コミュニティ要望調査の投票で2位でした]]。 [https://phabricator.wikimedia.org/T54750]
* 以前は、URLに絞り込みフィルターを含む他人の"最近の更新"へのリンクをクリックすると、意図せず"{{int:Rcfilters-group-results-by-page}}"の設定が変更されることがありました。現在は修正済です。 [https://phabricator.wikimedia.org/T202916#8874081]
'''問題点'''
* 先週の数日間、データベース複製の問題により、一部のツールやボットが古い情報を返し、修正中は完全にダウンしていた可能性があります。現在、問題は修正済です。 [https://phabricator.wikimedia.org/T337446]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-06-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-06-07|ja}}に、その他のウィキには{{#time:n月j日|2023-06-08|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* ボットは、[[mw:Special:MyLanguage/Extension:SpamBlacklist|スパムブラックリスト]]に一致するURLに起因して編集を妨げられることがなくなります。 [https://phabricator.wikimedia.org/T313107]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月5日 (月) 22:52 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25114640 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-24 ==
<section begin="technews-2023-W24"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/24|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] コンテンツ帰属ツールである[[mw:Special:MyLanguage/Who Wrote That?|Who Wrote That?]]、[[xtools:authorship|XTools 著者統計]]および[[xtools:blame|XTools Blame]]はオランダ語版、ドイツ語版、ハンガリー語版、インドネシア語版、日本語版、ポーランド語版およびポルトガル語版ウィキペディアをサポートするようになりました。これは[[m:Community Wishlist Survey 2023/Reading/Extend "Who Wrote That?" tool to more wikis|コミュニティ要望調査2023年で7位の要望]]の一部です。 [https://phabricator.wikimedia.org/T334891]
* [[mw:Special:MyLanguage/Structured Data Across Wikimedia/Search Improvements#Search Preview panel|検索プレビューパネル]]は4つのウィキペディア(カタロニア語版、オランダ語版、ハンガリー語版およびノルウェー語版)に展開されました。パネルでは、記事に関連する画像(存在する場合)、記事の導入節、関連画像(コモンズのMediaSearchから)、そして記事に関連する姉妹プロジェクトの記事が表示されます。 [https://phabricator.wikimedia.org/T306341]
* [[:mw:Special:MyLanguage/Help:Extension:RealMe#Verifying_a_link_on_non-user_pages|RealMe]]拡張機能により、管理者が任意のページにおいて、Mastodonや同様のソフトウェア向けのURLを検証することができるようになりました。 [https://phabricator.wikimedia.org/T324937]
* 標準で適用されるプロジェクトのライセンスがCC BY-SA 4.0に[https://lists.wikimedia.org/hyperkitty/list/wikimediaannounce-l@lists.wikimedia.org/thread/7G6XPWZPQFLZ2JANN3ZX6RT4DVUI3HZQ/ アップグレードされました]。これに伴い、ソフトウェアのインターフェースメッセージも更新されています。従来のCC BY-SA 3.0に関する方針や関連文書の取り扱いについては各コミュニティにお任せします。 [https://phabricator.wikimedia.org/T319064]
'''問題点'''
* 先月3日間、VisualEditorやDiscussionToolsで編集されたいくつかのウィンペディアのページで、編集中に意図しない<code><nowiki>__TOC__</nowiki></code>(またはそのローカライズされた形)が追加されました。まだ修正が必要と思われる、[[mw:Parsoid/Deployments/T336101_followup|影響を受けたページをウィキごとに分類した一覧]]があります。 [https://phabricator.wikimedia.org/T336101]
* 現在、VisualEditorの"{{int:Visualeditor-dialog-meta-categories-defaultsort-label}}"機能は壊れています。既存の<code><nowiki>{{DEFAULTSORT:...}}</nowiki></code>は、VisualEditorで欠落したテンプレートとして誤って表示されます。開発者は、この問題を修正する方法を模索しています。その間に、ページの既定のソートキーを編集したい方は、ソース編集に切り替えることをお勧めします。 [https://phabricator.wikimedia.org/T337398]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 先週、削除フォームの更新が行われたため、それにより一部のガジェットやユーザースクリプトが壊れた可能性があります。理由欄を操作する(空欄にする)必要がある場合は、<bdi lang="zxx" dir="ltr"><code>#wpReason</code></bdi>を<bdi lang="zxx" dir="ltr" style="white-space: nowrap;"><code>#wpReason > input</code></bdi>に置き換えてください。[https://cs.wikipedia.org/w/index.php?title=MediaWiki%3AGadget-CleanDeleteReasons.js&diff=22859956&oldid=12794189 修正例]をご覧ください。 [https://phabricator.wikimedia.org/T337809]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-06-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-06-14|ja}}に、その他のウィキには{{#time:n月j日|2023-06-15|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* <span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor will be switched to a new backend on English Wikipedia on Monday, and all other [https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/dblists/large.dblist large] wikis on Thursday. The change should have no noticeable effect on users, but if you experience any slow loading or other strangeness when using VisualEditor, please report it on the phabricator ticket linked here.</span> [https://phabricator.wikimedia.org/T320529]
'''今後の予定'''
* 6月5日から7月17日まで、財団のセキュリティチームは、ボランティアによって開発されたガジェットやスクリプトにおけるサードパーティのリソースの使用を規制するための方針案について、投稿者との協議を実施しています。フィードバックや提案をメタウィキの[[m:Special:MyLanguage/Third-party resources policy|サードパーティのリソースの方針]]で受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月12日 (月) 14:52 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25133779 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-25 ==
<section begin="technews-2023-W25"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/25|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] WikimediaDebugでフレームグラフが利用可能になりました。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/JXNQD3EHG5V5QW5UXFDPSHQG4MJ3FWJQ/][https://techblog.wikimedia.org/2023/06/08/flame-graphs-arrive-in-wikimediadebug/]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* ビジュアルエディターにツールバー検索ポップアップが追加されました。<code>\</code>と入力するか<code>ctrl + shift + p</code>を押すことで起動します。これによりエディター内で利用可能なツールのほとんどに素早くアクセスできるようになりました。 [https://commons.wikimedia.org/wiki/File:Visual_editor_toolbar_search_feature.png][https://phabricator.wikimedia.org/T66905]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月19日 (月) 20:09 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25159510 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-26 ==
<section begin="technews-2023-W26"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/26|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 操作APIモジュールと特別:外部リンク検索は、すべての <bdi lang="zxx" dir="ltr"><code>prop=extlinks</code></bdi> の応答でベアドメインの末尾に <bdi lang="zxx" dir="ltr"><code>/</code></bdi> を追加するようになりました。これは、<code>externallinks</code> データベーステーブルの重複を解消するための作業の一部です。 [https://phabricator.wikimedia.org/T337994]
'''問題点'''
* 先週、23時間にわたってコモンズとウィキデータで検索ができませんでした。 [https://phabricator.wikimedia.org/T339810][https://wikitech.wikimedia.org/wiki/Incidents/2023-06-18_search_broken_on_wikidata_and_commons]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-06-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-06-28|ja}}に、その他のウィキには{{#time:n月j日|2023-06-29|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] Minerva 外装は CSS クラス <bdi lang="zxx" dir="ltr"><code>.mbox-text</code></bdi> で従来より多くのスタイルを事前定義するようになりました。これにより table 要素の代わりに div 要素を使うテンプレートもサポートするようになります。新しいスタイルがウィキで使用されている他のテンプレートに影響が出ないよう注意してください。 [https://gerrit.wikimedia.org/r/c/mediawiki/skins/MinervaNeue/+/930901/][https://phabricator.wikimedia.org/T339040]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 従来はデスクトップのみだったガジェットがデスクトップとモバイルの双方で標準で読み込まれるようになりました。<bdi lang="zxx" dir="ltr"><code>|targets=</code></bdi> パラメータを使用して読み込み対象を変更するのは非推奨であり、使用すべきではありません。ユーザーがモバイルウェブサイトを使用するかデスクトップウェブサイトを使用するかに関わらず、ガジェットをモバイルで動作させるか無効化するかは外装(<bdi lang="en" dir="ltr">MediaWiki:Gadgets-definition</bdi> の <bdi lang="zxx" dir="ltr"><code>|skins=</code></bdi> パラメータを使用します)で行うべきです。人気のあるガジェットがモバイル版でエラーを起こす場合は開発者が一時的な措置として Minerva 外装での動作を無効化する予定です。 [https://phabricator.wikimedia.org/T127268]
* すべての名前空間は標準で同じ[[m:Special:MyLanguage/Help:Keyboard_shortcuts|アクセスキー]]を持つようになりました。従来はカスタム或いは拡張機能で定義された名前空間は手動で設定する必要がありました。 [https://phabricator.wikimedia.org/T22126]
* Flagged Revisions の査読フォームは標準化された[[mw:Special:MyLanguage/Codex|ユーザーインターフェースコンポーネント]]を使用するようになりました。 [https://phabricator.wikimedia.org/T191156]
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 数週間後、HTML構文解析出力におけるメディアの構造が[[:wikitech:Deployments/Train#Thursday|グループ2のウィキ]]で変更されます。この変更により、コンテンツのアクセシビリティが向上します。それに伴いサイトのCSS、ユーザースクリプト、ガジェットの更新が必要になる場合があります。[[mw:Special:MyLanguage/Parsoid/Parser_Unification/Media_structure/FAQ|確認するコード、コードを更新する方法、および関連問題を報告する場所についての詳細]]があります。 [https://phabricator.wikimedia.org/T314318]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月26日 (月) 16:19 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25202311 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-27 ==
<section begin="technews-2023-W27"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/27|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[m:Community Wishlist Survey 2022/Multimedia and Commons/Audio links that play on click|クリックすると音声が再生されるリンク]]に対する要望提案を展開する一環として、[https://noc.wikimedia.org/conf/highlight.php?file=dblists/small.dblist 小規模ウィキ]では[[mw:Extension:Phonos|Phonos]]拡張機能によって実装される[[mw:Special:MyLanguage/Help:Extension:Phonos#Inline audio player mode|インライン音声プレーヤー]]を使用できるようになります。 [https://phabricator.wikimedia.org/T336763]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 今週から、全てのガジェットがモバイルサイトとデスクトップサイトに自動的に読み込まれるようになりました。ウィキのガジェットに何らかの不具合が生じる場合は、ガジェット定義ファイルの[[mw:Special:MyLanguage/Extension:Gadgets#Options|ガジェットオプション]]を調整してください。 [https://phabricator.wikimedia.org/T328610]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-05|ja}}に、その他のウィキには{{#time:n月j日|2023-07-06|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月3日 (月) 22:51 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25231546 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-28 ==
<section begin="technews-2023-W28"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/28|翻訳]]されています。
'''最近の更新'''
* [[:mw:Special:MyLanguage/Structured Data Across Wikimedia/Section-level Image Suggestions|節レベルの画像推薦機能]]は7のウィキペディア(ポルトガル語版、ロシア語版、インドネシア語版、カタルーニャ語版、ハンガリー語版、フィンランド語版およびノルウェー語版)に展開されました。この機能は、寄稿者のウォッチリストに登録されている記事の各節に相応しい画像を推薦します。
* (オプトアウトした)英語版と日本語版ウィキペディアを除く全てのウィキメディアプロジェクトにおいて、[[:m:Special:MyLanguage/Global AbuseFilter|グローバル不正使用フィルター]]が有効になりました。この変更は、[[:m:Requests for comment/Make global abuse filters opt-out|グローバルコメント依頼]]に従って行われました。 [https://phabricator.wikimedia.org/T341159]
* [[{{#special:BlockedExternalDomains}}]] は管理者がスパムに対応するための新しいツールです。これはプレーンドメイン(とそのサブドメイン)をブロックするためのインターフェースを提供し、検索がより容易になり、編集に対する処理速度が従来よりも向上します。正規表現、URLのパスマッチ、[[MediaWiki:Spam-whitelist|MediaWiki:Spam-whitelist]] をサポートしませんが、既存の[[MediaWiki:Spam-blacklist|MediaWiki:Spam-blacklist]] の機能を概ね置き換えるものです。[[mw:Special:MyLanguage/Manual:BlockedExternalDomains|このツールの解説文書]]ではすべてのシンプルドメインをこのツールへ移行するための Python スクリプトと機能の詳細を解説しています。この機能は Meta-wiki、コモンズ、ウィキデータを除くすべてのウィキで使用可能です。 [https://phabricator.wikimedia.org/T337431]
* WikiEditor 拡張機能がアップデートされました。ウィキテキスト編集で使用頻度の高い機能がいくつか盛り込まれています。以前は多くのメッセージを管理者のみが翻訳可能でしたが、現在は translatewiki の翻訳者全員が翻訳可能となっています。WikiEditor の[https://translatewiki.net/wiki/Special:MessageGroupStats?group=ext-wikieditor&messages=&x=D#sortable:0=asc あなたが使用する言語の翻訳の進捗状況]を確認し、進捗が 100% 未満であれば翻訳を完了させてください。[https://lists.wikimedia.org/hyperkitty/list/wikitech-ambassadors@lists.wikimedia.org/thread/D4YELU2DXMZ75PGELUOKXXMFF3FH45XA/ 詳細と説明についてもご覧いただけます]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-12|ja}}に、その他のウィキには{{#time:n月j日|2023-07-13|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[{{#special:LinkSearch}}]]と対応するAPIのデフォルトプロトコルが http から http と https の両方に変更されました。 [https://phabricator.wikimedia.org/T14810]
* [[{{#special:LinkSearch}}]]と対応するAPIは、クエリにて指定されたURLの全てで検索するようになりました。以前は最初の60文字だけでした。この機能は15年前にリクエストされました。 [https://phabricator.wikimedia.org/T17218]
'''今後の予定'''
* ただいま[[:w:ja:ChatGPT|ChatGPT]]プラグインの実験を行っています。利用者がウィキペディアの情報を読むとき、その情報が何に由来するものかを示すためのものです。ウィキメディア財団のスタッフとその他のウィキメディアンによってテストが行われています。まもなくすべての利用者が使えるようになる予定です。なお、このプラグインは以前[[m:Special:MyLanguage/Tech/News/2023/20|2023年 20週の技術ニュース]]で取りあげたものを指しています。 [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2023-2024/Draft/Future_Audiences#FA2.2_Conversational_AI]
* [[m:Special:MyLanguage/Third-party resources policy|サードパーティリソースに関する方針の草案]]に関する議論が進行中です。草案はサードパーティリソースを使用するガジェットおよびユーザースクリプトに影響します。これまで寄せられた意見から、外部リソースを読み込むユーザースクリプトやガジェットやユーザースクリプトのリスク、ベストプラクティス、コードの透明性や検査可能性などの免責事項が方針に盛り込ます。2023年7月17日まで、[[m:Talk:Third-party resources policy|方針のトークページ]]でフィードバックや提案を受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W28"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月10日 (月) 19:54 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25278797 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-29 ==
<section begin="technews-2023-W29"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/29|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">We are now serving 1% of all global user traffic from [[w:en:Kubernetes|Kubernetes]] (you can [[wikitech:MediaWiki On Kubernetes|read more technical details]]). We are planning to increment this percentage regularly. You can [[phab:T290536|follow the progress of this work]].</span>
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-19|ja}}に、その他のウィキには{{#time:n月j日|2023-07-20|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">MediaWiki [[mw:Special:MyLanguage/Help:System_message|system messages]] will now look for available local fallbacks, instead of always using the default fallback defined by software. This means wikis no longer need to override each language on the [[mw:Special:MyLanguage/Manual:Language#Fallback_languages|fallback chain]] separately. For example, English Wikipedia doesn't have to create <bdi lang="zxx" dir="ltr"><code>en-ca</code></bdi> and <bdi lang="zxx" dir="ltr"><code>en-gb</code></bdi> subpages with a transclusion of the base pages anymore. This makes it easier to maintain local overrides.</span> [https://phabricator.wikimedia.org/T229992]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code>action=growthsetmentorstatus</code></bdi>APIは新しいMediaWikiのバージョンから非推奨になります。このAPIを呼び出しているBotやスクリプトは<bdi lang="zxx" dir="ltr"><code>action=growthmanagementorlist</code></bdi>APIを使用する必要があります。 [https://phabricator.wikimedia.org/T321503]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月17日 (月) 23:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25289122 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-30 ==
<section begin="technews-2023-W30"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/30|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 7月18日、ウィキメディア財団は、財団または関連団体が管理しているソフトウェアで技術的な作業を行う人向けの[[:mw:Technical_decision_making|技術的意思決定プロセス]]に関する調査を開始しました。該当する方は[https://wikimediafoundation.limesurvey.net/885471 ぜひ調査に参加してください]。調査は8月7日までの3週間です。[[listarchive:list/wikitech-l@lists.wikimedia.org/thread/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|詳細はwikitech-lの告知]]で確認できます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-26|ja}}に、その他のウィキには{{#time:n月j日|2023-07-27|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月25日 (火) 02:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25332248 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-31 ==
<section begin="technews-2023-W31"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/31|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Synchronizer|Synchronizer]] ツールが利用できるようになりました。ウィキメディアのウィキ間で Lua モジュールを同期させるためのものです。グローバルな Lua モジュールとテンプレートを開発するための[[mw:Multilingual Templates and Modules|文書の更新]]も行われています。
* [[{{#special:NewPages}}]] と履歴ページのタグフィルターを反転できるようになりました。これにより、例えば自動化ツールを使って行われた編集を非表示にすることができます。 [https://phabricator.wikimedia.org/T334337][https://phabricator.wikimedia.org/T334338]
* プラグインを利用できるユーザーにより Wikipedia [[:w:ja:ChatGPT|ChatGPT]] プラグインの運用テストが行われます。この運用テストや類似のテストについて話し合いたい場合は[[:m:Talk:Wikimedia Foundation Annual Plan/2023-2024/Draft/Future Audiences#Announcing monthly Future Audiences open "office hours"|ビデオ通話]]に参加してください。 [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2023-2024/Draft/Future_Audiences#FA2.2_Conversational_AI]
'''問題点'''
* 過去2週間ほど、非ラテン文字を含んだ名前のページで PDF の生成ができませんでした。現在は修正済みです。 [https://phabricator.wikimedia.org/T342442]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-02|ja}}に、その他のウィキには{{#time:n月j日|2023-08-03|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 火曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-kawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kaawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kabwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kbdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kbpwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-knwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kshwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kuwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kwwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308135]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月31日 (月) 23:54 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25362228 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-32 ==
<section begin="technews-2023-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/32|翻訳]]されています。
'''最近の更新'''
* モバイル版編集者が[[mw:Special:MyLanguage/Reading/Web/Advanced_mobile_contributions#August_1,_2023_-_Full-page_editing_added_on_mobile|ページ全体を一度に編集]]できるようになりました。この機能を使用するには、設定で"{{int:Mobile-frontend-mobile-option-amc}}"を有効にし、"{{int:Minerva-page-actions-overflow}}"メニュー内の"{{int:Minerva-page-actions-editfull}}"ボタンを使用してください。 [https://phabricator.wikimedia.org/T203151]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年8月7日 (月) 21:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25420038 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-33 ==
<section begin="technews-2023-W33"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/33|翻訳]]されています。
'''最近の更新'''
* コンテンツ翻訳は Youdao の[[mw:Special:MyLanguage/Help:Content_translation/Translating/Initial_machine_translation|機械翻訳サービス]]を使わなくなりました。このサービスは数年間提供されてきましたが、利用者がおらず、他の手段で代替可能であるため、メンテナンスの負担を軽減するために廃止されました。同じ言語に対応する他の翻訳サービスは引き続き利用可能です。 [https://phabricator.wikimedia.org/T329137]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-16|ja}}に、その他のウィキには{{#time:n月j日|2023-08-17|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-lawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ladwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lbewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lezwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lfnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-liwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lijwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lmowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ltgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-maiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-map_bmswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mdfwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kywiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308136] <!-- TODO replace wiki codes -->
'''今後の予定'''
* Minerva スキンにアイコンを追加する一部のガジェット/ユーザースクリプトの CSS を更新する必要があります。[[phab:T344067|既存のインスタンスの検索や更新方法などの詳細]]が提供されていますので御覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/33|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W33"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年8月15日 (火) 06:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25428668 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-34 ==
<section begin="technews-2023-W34"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/34|翻訳]]されています。
'''最近の更新'''
* [Google ドライブからコモンズへアップロード]を行うツールが利用できるようになりました。保護された接続のもと、Google ドライブからファイルを選択してウィキメディア・コモンズに直接ファイルをアップロードできます。 [https://phabricator.wikimedia.org/T267868]
* 今週の技術ニュースで新しいウィキメディアのウィキを紹介しています。ツールやページなどの更新をお願いします。
** 前号発行後に2つの新しいウィキが作成されました:
*** パオ語版ウィクショナリー ([[wikt:blk:|<code>wikt:blk:</code>]]) [https://phabricator.wikimedia.org/T343540]
*** スンダ語版ウィキソース ([[s:su:|<code>s:su:</code>]]) [https://phabricator.wikimedia.org/T343539]
** 更に6つの新しいウィキもご紹介します:
*** ウィキファンクションズ ([[f:|<code>f:</code>]]) [https://phabricator.wikimedia.org/T275945]
*** バタク・マンダイリン語版ウィクショナリー ([[wikt:btm:|<code>wikt:btm:</code>]]) [https://phabricator.wikimedia.org/T335216]
*** ガーナピジン版ウィキペディア ([[w:gpe:|<code>w:gpe:</code>]]) [https://phabricator.wikimedia.org/T335969]
*** グン語版ウィキニュース ([[n:guw:|<code>n:guw:</code>]]) [https://phabricator.wikimedia.org/T334394]
*** カバルド語版ウィクショナリー ([[wikt:kbd:|<code>wikt:kbd:</code>]]) [https://phabricator.wikimedia.org/T333266]
*** ファンティ語版ウィキペディア ([[w:fat:|<code>w:fat:</code>]]) [https://phabricator.wikimedia.org/T335016]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-23|ja}}に、その他のウィキには{{#time:n月j日|2023-08-24|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 既存の MediaWiki バックエンドコードには[[mw:Stable interface policy|安定したインターフェースの方針]]が存在します。また、[[mw:User:Jdlrobson/Stable interface policy/frontend|フロントエンドコードに対する安定したインターフェースの方針]]もあります。これらはガジェットやウィキメディアのフロントエンドコードを開発するすべての人に関わる方針です。方針を読んで議論を行い、問題がある場合は提案者にお知らせください。 [https://phabricator.wikimedia.org/T344079]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W34"/>
2023年8月21日 (月) 15:25 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25497111 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-35 ==
<section begin="technews-2023-W35"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/35|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項目]] [[m:Community Wishlist Survey 2022/Better diff handling of paragraph splits|文章の分割を扱う差分の改善]]と言う変更の一環として、分割の検出の改善を展開しつつあります。この2週間にわたり、このサポートを [[wikitech:Deployments/Train#Groups|group0]] および group1 のウィキ群に実装しました。今週はgroup2 のウィキ群に実装の予定です。 [https://phabricator.wikimedia.org/T341754]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項目]] [[{{#special:Contributions}}]] ページ(利用者の投稿記録)は全て、個別の利用者のアカウント作成日とともにローカルにおける編集回数を表示するようになりました。 [https://phabricator.wikimedia.org/T324166]
* ウィキソースの利用者の皆さんは<bdi lang="zxx" dir="ltr"><code><nowiki><pagelist></nowiki></code></bdi> タグ内で <bdi lang="zxx" dir="ltr"><code>prpbengalicurrency</code></bdi> ラベルを使い、ベンガル通貨文字の表示をページ数値として表示できるようになりました。 [https://phabricator.wikimedia.org/T268932]
* 個人設定項目2件の表示場所を移しました。「{{int:visualeditor-preference-visualeditor}}」の個人設定はどのウィキでも[[Special:Preferences#mw-prefsection-editing|「{{int:prefs-editing}}」タブ]]に表示します。以前は、ウィキによっては「{{int:prefs-betafeatures}}」タブに含まれていたものです。もう1件、「{{int:visualeditor-preference-newwikitexteditor-enable}}」も全てのウィキで「{{int:prefs-betafeatures}}」タブから「{{int:prefs-editing}}」タブへ場所を移しました。 [https://phabricator.wikimedia.org/T335056][https://phabricator.wikimedia.org/T344158]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-30|ja}}に、その他のウィキには{{#time:n月j日|2023-08-31|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ウィキメディアの開発者アカウントに新規のサインアップ導入は Wikitech 経由ではなく<bdi lang="en" dir="ltr">[https://idm.wikimedia.org/ idm.wikimedia.org]</bdi>に送る予定です。[[wikitech:IDM|新システムに関する詳細はこちら]]。
* 全ての右書きの言語版ウィキ群に加え、ウィキペディアの朝鮮語版、アルメニア語版、ウクライナ語版、ロシア語版、ブルガリア語版は[[m:Special:MyLanguage/Wikimedia URL Shortener|Wikimedia URL 短縮機能]]を介して、サイドバーに表示中のページの短縮 URL を作成するリンクを新設します。今後、他のウィキ群にも展開の予定です。 [https://phabricator.wikimedia.org/T267921]
'''今後の予定'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The removal of the [[mw:Special:MyLanguage/Extension:DoubleWiki|DoubleWiki extension]] is being discussed. This extension currently allows Wikisource users to view articles from multiple language versions side by side when the <bdi lang="zxx" dir="ltr"><code><=></code></bdi> symbol next to a specific language edition is selected. Comments on this are welcomed at [[phab:T344544|the phabricator task]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">A proposal has been made to merge the second hidden-categories list (which appears below the wikitext editing form) with the main list of categories (which is further down the page). [[phab:T340606|More information is available on Phabricator]]; feedback is welcome!</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W35"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年8月28日 (月) 14:00 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25510866 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-36 ==
<section begin="technews-2023-W36"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/36|翻訳]]されています。
'''最近の更新'''
* [[m:Wikisource_EditInSequence|EditInSequence]]はウィキソースの編集をより手早く実現する機能で、コミュニティのフィードバックに基づきベータ機能に移行しました。有効にするには、[[Special:Preferences#mw-prefsection-betafeatures|個人設定のベータ機能タブ]]を開いてください。 [https://phabricator.wikimedia.org/T308098]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項目]] [[m:Special:MyLanguage/Community Wishlist Survey 2022/Generate Audio for IPA|IPAに対する音声の生成]]ならびに[[m:Community Wishlist Survey 2022/Multimedia and Commons/Audio links that play on click|クリックすると再生する音声リンク]]をめぐる要望の提案に応じ、変更点を反映して[[mw:Extension:Phonos|Phonos]][[mw:Special:MyLanguage/Help:Extension:Phonos#Inline_audio_player_mode|インラインの音声再生モード]] をすべてのプロジェクトに展開しました。 [https://phabricator.wikimedia.org/T336763]
* 管理者が特定の利用者の利用者グループを変更する際、対象となるアカウントの利用者ページを管理者自身のウォッチリストに追加できるようになります。この機能は[[{{#special:UserRights}}]]とAPIの双方で利用できます。 [https://phabricator.wikimedia.org/T272294]
* 以下の新規ウィキ1件が創設されました。
** {{int:project-localized-name-group-wikipedia}}[[d:Q34318|タリシュ語版]] ([[w:tly:|<code>w:tly:</code>]]) [https://phabricator.wikimedia.org/T345166]
'''問題点'''
* [[mw:Special:MyLanguage/Extension:LoginNotify|ログイン通知拡張機能]] は1月以来、通知を発信してきませんでした。すでに修正済みで、今後はログインの失敗、あるいは新規のデバイスからのログインのたびに通知が届くはずです。 [https://phabricator.wikimedia.org/T344785]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-06|ja}}に、その他のウィキには{{#time:n月j日|2023-09-07|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります(対象は{{int:project-localized-name-mhrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-miwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-minwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mrjwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mtwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mwlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-myvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mznwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nahwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-napwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ndswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nds_nlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-newiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-newwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-novwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nqowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nrmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nsowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ocwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-olowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-omwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-orwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-oswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pagwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pamwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-papwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pcdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pdcwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pflwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pihwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pmswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pnbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pntwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pswiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308137][https://phabricator.wikimedia.org/T308138]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W36"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月4日 (月) 23:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25566983 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-37 ==
<section begin="technews-2023-W37"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/37|翻訳]]されています。
'''最近の更新'''
* リビジョン評価サービスの[[mw:Special:MyLanguage/ORES|ORES]]は現在、英語版ウィキペディアとウィキデータを除くすべてのウィキで、新しいオープンソースインフラストラクチャを使用しています。残り2つのウィキは今週中に対応する予定です。ORESに関連する最近の更新フィルター("{{int:ores-rcfilters-damaging-title}}"や"{{int:ores-rcfilters-goodfaith-title}}")からの不自然な結果に気づいた場合は、ぜひ[[mw:Talk:Machine Learning|報告してください]]。 [https://phabricator.wikimedia.org/T342115]
* ウィキメディアのウィキにログインした状態で他のウィキを訪れるとシステムは自動的にログインを試みます。この機能は長い間信頼性を欠くものとなっていました。現在はログインページにアクセスすることでシステムが更なる対応を行うようになっています。ログインが従来より改善した、あるいは悪化したと感じた場合、フィードバックをお願いします。 [https://phabricator.wikimedia.org/T326281]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-13|ja}}に、その他のウィキには{{#time:n月j日|2023-09-14|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Special:MyLanguage/Technical decision making|技術面の意思決定フォーラム・レトロスペクティブ]]チームは、ウィキメディア・プロジェクトの技術分野に関わる全ての人に、9月13日に実施される[[mw:Technical decision making/Listening Sessions|リスニングセッション]]への参加を呼びかけています。後日、別の日程も予定しています。技術的な意思決定プロセスを改善することが目的です。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] 要望リストに挙がっていた[[m:Special:MyLanguage/Community Wishlist Survey 2022/Better diff handling of paragraph splits|段落を分割する差分表示の改善]]として、差分ページのインラインスイッチウィジェットがすべてのウィキに展開されます。インライン差分表示とウィキテキストによる二段組の差分表示を切り替えることができるようになります。 [https://phabricator.wikimedia.org/T336716]
'''今後の予定'''
* 9月20日、すべてのウィキが数分間読み取り専用の状態になります。[[m:Special:MyLanguage/Tech/Server switch|開始時刻は14:00(UTC)を予定しています。]]詳細は技術ニュースで追ってお知らせするほか、今後数週間のうちに各ウィキにも掲示される予定です。 [https://phabricator.wikimedia.org/T345263]
* エンタープライズAPIは「[http://breakingnews-beta.enterprise.wikimedia.com/ 速報ニュース]」と呼ばれる新機能を導入します。現在ベータ版の機能で「ニュースになりそうな」話題を特定しようとするものです。規模の小さい言語版は特に、検出モデルの精度を向上させるため、テンプレートや識別可能な編集パターンを推奨していただくよう、ご協力をお願いします。詳しい情報はMediaWikiの[[mw:Special:MyLanguage/Wikimedia Enterprise/Breaking news|解説ページ]]またはMetaの[[m:Special:MyLanguage/Wikimedia Enterprise/FAQ#What is Breaking News|FAQ]]をご覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W37"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月11日 (月) 21:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25589064 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-38 ==
<section begin="technews-2023-W38"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/38|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MediaWiki に[[mw:Stable interface policy/frontend|フロントエンドコードに関する安定したインタフェースの方針]]が導入されました。MediaWiki コードと Wiki ベースコード(ガジェットやユーザー・スクリプトなど)を非推奨にする方法がより明確に定義されます。内容や協議にご協力いただいた皆様ありがとうございました。 [https://phabricator.wikimedia.org/T346467][https://phabricator.wikimedia.org/T344079]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-20|ja}}に、その他のウィキには{{#time:n月j日|2023-09-21|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 9月20日、すべてのウィキが数分間読み取り専用の状態になります。時間は [[m:Special:MyLanguage/Tech/Server switch|14:00 UTC]]の予定です。 [https://phabricator.wikimedia.org/T345263]
* すべてのウィキのサイドバーに表示中のページの短縮URLを提供するリンクが追加されます。リンクの短縮には[[m:Special:MyLanguage/Wikimedia URL Shortener|ウィキメディアのURL短縮機能]]が使用されます。 [https://phabricator.wikimedia.org/T267921]
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] Graph 拡張機能担当チームは[[mw:Extension:Graph/Plans#Proposal|再導入を提案中]]であり、皆様からのご意見を募集しています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月18日 (月) 19:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25623533 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-39 ==
<section begin="technews-2023-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/39|翻訳]]されています。
'''最近の更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The Vector 2022 skin will now remember the pinned/unpinned status for the Table of Contents for all logged-out users.</span> [https://phabricator.wikimedia.org/T316060]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-27|ja}}に、その他のウィキには{{#time:n月j日|2023-09-28|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The ResourceLoader <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.ui</nowiki></code></bdi> modules are now deprecated as part of the move to Vue.js and Codex. There is a [[mw:Codex/Migrating_from_MediaWiki_UI|guide for migrating from MediaWiki UI to Codex]] for any tools that use it. More [[phab:T346468|details are available in the task]] and your questions are welcome there.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Gadget definitions will have a [[mw:Special:MyLanguage/Extension:Gadgets#Options|new "namespaces" option]]. The option takes a list of namespace IDs. Gadgets that use this option will only load on pages in the given namespaces.</span>
'''今後の予定'''
* <span lang="en" dir="ltr" class="mw-content-ltr">New variables will be added to [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]]: <code><bdi lang="zxx" dir="ltr">global_account_groups</bdi></code> and <code><bdi lang="zxx" dir="ltr">global_account_editcount</bdi></code>. They are available only when an account is being created. You can use them to prevent blocking automatic creation of accounts when users with many edits elsewhere visit your wiki for the first time.</span> [https://phabricator.wikimedia.org/T345632][https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:AbuseFilter/Rules_format]
'''ミーティング'''
* <span lang="en" dir="ltr" class="mw-content-ltr">You can join the next meeting with the Wikipedia mobile apps teams. During the meeting, we will discuss the current features and future roadmap. The meeting will be on [https://zonestamp.toolforge.org/1698426015 27 October at 17:00 (UTC)]. See [[mw:Special:MyLanguage/Wikimedia_Apps/Office_Hours#October_2023|details and how to join]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月26日 (火) 16:51 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25655264 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-40 ==
<section begin="technews-2023-W40"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/40|翻訳]]されています。
'''最近の更新'''
* [[Special:Preferences#mw-prefsection-rendering-advancedrendering|利用者の個人設定]]に "{{int:tog-forcesafemode}}"が追加されました。この設定を有効にすると、オンウィキの JavaScript や stylesheet を一切、回避してページを読み込みます。壊れた JavaScript ガジェットのデバグ作業に便利かもしれません。 [https://phabricator.wikimedia.org/T342347]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ガジェット類の定義には[[mw:Special:MyLanguage/Extension:Gadgets#Options|新規に "<var>contentModels</var>" のオプション]]が加わりました。このオプションはページのコンテンツモデルを基準に<code><bdi lang="zxx" dir="ltr">wikitext</bdi></code> や <code><bdi lang="zxx" dir="ltr">css</bdi></code>などに似た一覧を参照します。ガジェットにこのオプションを設定すると、コンテンツモデルに該当するページ限定で読み込まれるように変わります。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.29|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-04|ja}}に、その他のウィキには{{#time:n月j日|2023-10-05|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ベクター2022年版外装はレガシー版ベクター(2010年版)固有のスタイルとスクリプトを採用しなくなります。変更は今年後半もしくは2024年初頭の予定です。詳細は[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Loading Vector 2010 scripts|皆さんのウィキで CSS と JS ページを調整する方法]]をご参照ください。 [https://phabricator.wikimedia.org/T331679]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月3日 (火) 01:27 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25686930 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-41 ==
<section begin="technews-2023-W41"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/41|翻訳]]されています。
'''最近の更新'''
* 以下の新規ウィキ1件が創設されました。 {{int:project-localized-name-group-wikipedia}}[[d:Q33291|フォン語]]版 ([[w:fon:|<code>w:fon:</code>]]) [https://phabricator.wikimedia.org/T347935]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.30|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-10|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-11|ja}}に、その他のウィキには{{#time:n月j日|2023-10-12|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-swwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-wawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-warwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-wowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-xalwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-xhwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-xmfwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-yiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-yowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zeawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zh_min_nanwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zuwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308139]
* いくつかのウィキでは新規参加者に対して、画像が全くないページにウィキメディア・コモンズから画像をお勧めし、追加するかどうか尋ねる仕掛けがあります。火曜日以降は画像の追加を見出し単位で足すことができるようになります。対象のウィキは[[mw:Special:MyLanguage/Growth/Deployment table|Growth チームの展開日程表]]の項目「画像のお勧め機能」に載せてあります。この機能の[[mw:Special:MyLanguage/Help:Growth/Tools/Add an image|詳細はこちらをご参照ください]]。 [https://phabricator.wikimedia.org/T345940]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] モバイル版外装(Minerva=ミネルヴァ)ではCSS ID <bdi lang="zxx" dir="ltr"><code><nowiki>#page-actions</nowiki></code></bdi> を <bdi lang="zxx" dir="ltr"><code><nowiki>#p-views</nowiki></code></bdi> に変更の予定です。この変更によりその他の外装との一貫性を持たせてモバイル版外装のガジェットや拡張機能のサポート改善を目指します。複数のガジェットで更新が必要な場合があります。[https://phabricator.wikimedia.org/T348267 詳細と検索リンク類はこのタスクをご参照ください]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W41"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月9日 (月) 14:39 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25712895 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-42 ==
<section begin="technews-2023-W42"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/42|翻訳]]されています。
'''最近の更新'''
* [[m:Special:MyLanguage/Help:Unified login|統一ログイン]]システムのエッジログインは特定のブラウザで正常に機能するように修正されたはずです。(Chrome、Edge、Opera)。これで初めて開いた姉妹プロジェクトで自動的にログイン状態になり、改めて「ログイン」のリンクを押すことも、ページを読み込みし直すことも不要となります。正しく機能するかどうか、フィードバックをお待ちしています。 [https://phabricator.wikimedia.org/T347889]
* [[mw:Special:MyLanguage/Manual:Interface/Edit_notice|編集通知]]機能が モバイル版/ミネルバ外装に導入されました。これは[[w:en:Wikipedia:EditNoticesOnMobile|英語版ウィキペディアのガジェット]]から着想を得て開発されています。詳細は[[phab:T316178|T316178]]のチケットをご参照ください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-18|ja}}に、その他のウィキには{{#time:n月j日|2023-10-19|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ベクター2022年版外装では、およそ1年前から無効にしてある<bdi lang="zxx" dir="ltr"><code><nowiki>addPortletLink</nowiki></code></bdi> と <bdi lang="zxx" dir="ltr"><code><nowiki>#p-namespaces</nowiki></code></bdi> 関連のリンクを今後3週間で除去する予定です。今後もし「議論」(Discussion)タブの隣にあったはずのタブが消えた場合、ガジェットのメンテナに[[phab:T347907|Phabricator タスクの指示]]を確認するようお知らせください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月16日 (月) 23:47 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25745824 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-43 ==
<section begin="technews-2023-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/43|翻訳]]されています。
'''最近の更新'''
* 新規に[[mw:Special:MyLanguage/Wikimedia Language engineering/Newsletter/2023/October|言語と国際化ニュースレター]]が旬刊(年4回)で発刊しました。新機能開発の進捗状況、多言語対応の技術プロジェクトの改善点とその関連の対応作業について掲載します。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Source map support has been enabled on all wikis. When you open the debugger in your browser's developer tools, you should be able to see the unminified JavaScript source code.</span> [https://phabricator.wikimedia.org/T47514]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-25|ja}}に、その他のウィキには{{#time:n月j日|2023-10-26|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月23日 (月) 23:17 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25782286 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-44 ==
<section begin="technews-2023-W44"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/44|翻訳]]されています。
'''最近の更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The Structured Content team, as part of its project of [[:commons:Commons:WMF support for Commons/Upload Wizard Improvements|improving UploadWizard on Commons]], made some UX improvements to the upload step of choosing own vs not own work ([[phab:T347590|T347590]]), as well as to the licensing step for own work ([[phab:T347756|T347756]]).</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The Design Systems team has released version 1.0.0 of [[wmdoc:codex/latest/|Codex]], the new design system for Wikimedia. See the [[mw:Special:MyLanguage/Design_Systems_Team/Announcing_Codex_1.0|full announcement about the release of Codex 1.0.0]].</span>
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-01|ja}}に、その他のウィキには{{#time:n月j日|2023-11-02|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
* <span lang="en" dir="ltr" class="mw-content-ltr">Listings on category pages are sorted on each wiki for that language using a [[:w:en:International Components for Unicode|library]]. For a brief period on 2 November, changes to categories will not be sorted correctly for many languages. This is because the developers are upgrading to a new version of the library. They will then use a script to fix the existing categories. This will take a few hours or a few days depending on how big the wiki is. You can [[mw:Special:MyLanguage/Wikimedia Technical Operations/ICU announcement|read more]].</span> [https://phabricator.wikimedia.org/T345561][https://phabricator.wikimedia.org/T267145]
* <span lang="en" dir="ltr" class="mw-content-ltr">Starting November 1, the impact module (Special:Impact) will be upgraded by the Growth team. The new impact module shows newcomers more data regarding their impact on the wiki. It was tested by a few wikis during the last few months.</span> [https://phabricator.wikimedia.org/T336203]
'''今後の予定'''
* <span lang="en" dir="ltr" class="mw-content-ltr">There is [[mw:Special:MyLanguage/Extension:Graph/Plans#Roadmap|a proposed plan]] for re-enabling the Graph Extension. You can help by reviewing this proposal and [[mw:Extension_talk:Graph/Plans#c-PPelberg_(WMF)-20231020221600-Update:_20_October|sharing what you think about it]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The WMF is working on making it possible for administrators to [[mw:Special:MyLanguage/Community_configuration_2.0|edit MediaWiki configuration directly]]. This is similar to previous work on Special:EditGrowthConfig. [[phab:T349757|A technical RfC is running until November 08, where you can provide feedback.]]</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月30日 (月) 23:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25801989 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-45 ==
<section begin="technews-2023-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/45|翻訳]]されています。
'''最近の更新'''
* ベクター2022外装では、いくつかのナビゲーション要素(タグライン、トールメニュー、ナビゲーションリンクなど)が、ページのコンテンツのフォントのサイズに合わせて若干大きくなりました。 [https://phabricator.wikimedia.org/T346062]
'''問題点'''
* 先週、[https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 一部のWiki]で最近の編集が1-6時間ほど表示されないという問題がありました。編集は保存できましたが、すぐには表示されませんでした。これはデータベースの問題によるものでした。 [https://phabricator.wikimedia.org/T350443]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-11-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-08|ja}}に、その他のウィキには{{#time:n月j日|2023-11-09|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
* Growthチームは新人ウィキメディアンを元メンターから[[mw:Special:MyLanguage/Growth/Structured mentor list|現在アクティブなメンター]]に割り当て直します。また、通知の文言もより使いやすいように変更しました。 [https://phabricator.wikimedia.org/T330071][https://phabricator.wikimedia.org/T327493]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月6日 (月) 21:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25838105 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-46 ==
<section begin="technews-2023-W46"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/46|翻訳]]されています。
'''最近の更新'''
* 以下の新規ウィキ4件が創設されました。
** [[d:Q7598268|標準モロッコ・タマジクト語版]]ウィキペディア ([[w:zgh:|<code>w:zgh:</code>]]) [https://phabricator.wikimedia.org/T350216]
** [[d:Q35159|ダガリ語版]]ウィキペディア ([[w:dga:|<code>w:dga:</code>]]) [https://phabricator.wikimedia.org/T350218]
** [[d:Q33017|バタク・トバ語版]]ウィキペディア ([[w:bbc:|<code>w:bbc:</code>]]) [https://phabricator.wikimedia.org/T350320]
** [[d:Q33151|バンジャル語版]]ウィキクォート ([[q:bjn:|<code>q:bjn:</code>]]) [https://phabricator.wikimedia.org/T350217]
'''問題点'''
* 先週、メタウィキまたはウィキメディア・コモンズにアクセスを行い、そのウィキでログアウトを行った利用者は再ログインできない状態になりました。現在この問題は解決済みです。 [https://phabricator.wikimedia.org/T350695]
* 先週、一部ポップアップダイアログやメニューが間違ったフォントサイズで表示されました。この問題は解決されました。 [https://phabricator.wikimedia.org/T350544]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-11-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-15|ja}}に、その他のウィキには{{#time:n月j日|2023-11-16|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 多くのウィキで脚注ポップアップ機能が標準機能として導入される予定です。これは[[mw:Special:MyLanguage/Page Previews|ページのプレビュー昨日]]に似たもので、脚注の内容をポップアップ表示します。この機能が不要であれば[[m:WMDE Technical Wishes/ReferencePreviews#Opt-out feature|オプトアウトすることも可能]]です。[[Special:Preferences#mw-prefsection-gadgets|個人設定]]にて脚注ツールチップやナビゲーション・ポップアップを有効にしている場合、脚注ポップアップ機能は無効化されます。[[phab:T282999|この機能の展開]]は2023年11月22日を予定しています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] カナリアリリース(ハートビートとも呼ばれる)イベントが12月11日から[https://stream.wikimedia.org/?doc#/streams ウィキメディアのイベントストリーム]で配信されます。ストリームのユーザーにはイベントのフィルタリングをおすすめします。<bdi lang="zxx" dir="ltr"><code><nowiki>meta.domain == "canary"</nowiki></code></bdi> のイベントを全てフィルタリングにより非表示にしてください。[[mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]] や[https://github.com/ChlodAlejandro/wikimedia-streams ウィキメディアのストリーム]がアップデートされ、ユーザーにこれらのイベントが配信されなくなります。 [https://phabricator.wikimedia.org/T266798]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月13日 (月) 23:52 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25859263 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-47 ==
<section begin="technews-2023-W47"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/47|翻訳]]されています。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-quwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rmywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-roa_rupwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-roa_tarawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ruewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rwwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sahwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-satwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-scwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-scnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-scowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-shwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-siwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-skwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-slwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-smwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sqwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-srwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-srnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-stwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-stqwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-suwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-szlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tcywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tetwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-thwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-towiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tpiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-trwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ttwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-twwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tyvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-udmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ugwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-uzwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vecwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vepwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vlswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vowiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308141][https://phabricator.wikimedia.org/T308142][https://phabricator.wikimedia.org/T308143]
* 2022年版ベクター外装はドロップダウンメニューやカラム幅その他、表示に若干の変更を導入します。先週、ウィキペディアの言語版4件に展開しました。問題が検出されない場合、今週、当該の変更を全ての言語版に反映する予定です。今後、ダークモード用や、読みやすさに役立つメニュー類を追加できるようにするためです。[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements/Updates#November_2023:_Visual_changes,_more_deployments,_and_shifting_focus|詳細はこちら]]。 [https://phabricator.wikimedia.org/T347711]
'''今後の予定'''
* [[mw:Extension talk:Graph/Plans#Update: 15 November|グラフ拡張機能(Graph Extension)を再び有効にする件で更新を追加しました]]。段取りを迅速化するため、立ち上げ時にVega 2 の対応をやめて[https://phabricator.wikimedia.org/T335325 複数のプロトコル]を有効にします。この計画に関する皆さんの考えをぜひ共有して、ご協力願います。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月21日 (火) 00:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25884616 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-48 ==
<section begin="technews-2023-W48"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/48|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-11-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-29|ja}}に、その他のウィキには{{#time:n月j日|2023-11-30|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 今週は MediaWiki の更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MediaWikiの JavaScript はガジェットやユーザースクリプトで <bdi lang="zxx" dir="ltr"><code>async</code>/<code>await</code></bdi> 構文が利用できるようになります。利用者のブラウザによっては対応していない可能性があるため、ガジェット作成者は適切に利用する必要があります。 [https://phabricator.wikimedia.org/T343499]
* [[m:Special:MyLanguage/Tech/News/2023/47|先週]]発表された「[[mw:Special:MyLanguage/Help:Growth/Tools/Add_a_link|リンクを追加]]」機能は展開を延期していましたが、今週再開の予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月27日 (月) 23:09 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25906379 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-49 ==
<section begin="technews-2023-W49"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/49|翻訳]]されています。
'''最近の更新'''
* 2022年版ベクター外装の段落同士の間隔は、文字の大きさに合わせて7pxから14pxに変更しました。これにより文か段落かが区別しやすくなります。 [https://phabricator.wikimedia.org/T351754]
* ビジュアル編集の「{{int:Visualeditor-dialog-meta-categories-defaultsort-label}}」機能の不具合が解消しています。<bdi lang="zxx" dir="ltr"><code><nowiki>{{DEFAULTSORT:...}}</nowiki></code></bdi> のキーワードを編集するためにソース編集へ切り替える必要がなくなりました。 [https://phabricator.wikimedia.org/T337398]
'''今週の更新'''
* 今週は MediaWiki の更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 12月6日以降、個人設定で「{{int:Discussiontools-preference-visualenhancements}}」を有効にしている人は、マジックワードの<bdi lang="zxx" dir="ltr"><code><nowiki>__NEWSECTIONLINK__</nowiki></code></bdi> を有効にしてあるページで[[mw:Special:MyLanguage/Talk pages project/Usability|トークページの機能性改善]]というお知らせが表示されます。問題点に気づいた場合、ぜひ[[phab:T352232|Phabricator に投稿して当チームと共有してください]]。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] Toolforge の[[wikitech:News/Toolforge Grid Engine deprecation|Grid Engine のシャットダウンプロセス]]を12月14日から開始する予定です。[[toolforge:grid-deprecation|この旧式のシステムを採用するツールのメンテナ]]は、必ず当日までに Kubernetes への移植を済ませるか、担当ツールのタスクの計画を Phabricator に投稿し当チームに連絡してください。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/VIWWQKMSQO2ED3TVUR7KPPWRTOBYBVOA/]
* [[mw:Special:MyLanguage/Structured_Discussions|構造化された議論]]の機能を採用するコミュニティには[[mw:Special:MyLanguage/Structured_Discussions/Deprecation|今後の使用が非推奨になる]]という通知を行っています。プロジェクトの詳細やコメントは[[mw:Special:MyLanguage/Structured_Discussions/Deprecation|プロジェクトのページで確認できます]]。
'''イベント'''
* 5月3–5日にエストニアのタリンで開催する[[mw:Special:MyLanguage/Wikimedia Hackathon 2024|ウィキメディア・ハッカソン2024]]は、参加登録と旅費滞在費補助の申込みを受け付けています。同補助金の申請〆切は2024年1月5日です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年12月4日 (月) 23:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25914435 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-50 ==
<section begin="technews-2023-W50"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/50|翻訳]]されています。
'''最近の更新'''
* ウィキメディア・コモンズのアップロードウィザードで「自分の作品か他人の作品の選択」を選択するステップについて、ユーザーインターフェースに微細な改善が行われました。 これは構造化コンテンツチームの[[:commons:Commons:WMF support for Commons/Upload Wizard Improvements|コモンズのアップロードウィザードを改善する]]プロジェクトの一環です。 [https://phabricator.wikimedia.org/T352707][https://phabricator.wikimedia.org/T352709]
'''問題点'''
* 12月初旬の数日間、[[mw:Special:MyLanguage/Growth/Personalized first day/Newcomer homepage|編集初学者用のホームページ]]がページ閲覧グラフと「影響度モジュール」と同時に表示できない問題がありました。この問題は解決済みです。 [https://phabricator.wikimedia.org/T352352][https://phabricator.wikimedia.org/T352349]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-12-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-12-13|ja}}に、その他のウィキには{{#time:n月j日|2023-12-14|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=]] [https://wikimediafoundation.limesurvey.net/796964 2023年開発者 満足度調査]ではウィキメディアの開発者コミュニティの意見を募集中です。ウィキメディアのエコシステムのためのソフトウェア開発に関わる役割がある場合はアンケートにご協力してください。〆切は2024年1月5日、この調査には[[foundation:Legal:December_2023_Developer_Satisfaction_Survey|個人情報保護の声明]]があります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年12月12日 (火) 02:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25945501 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-51 ==
<section begin="technews-2023-W51"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/51|翻訳]]されています。
'''技術ニュース'''
* 技術週報の次号は [[w:Special:MyLanguage/en:Christmas and holiday season|年末年始]]の休暇のため、2024年1月8日配信の予定です。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-12-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-12-20|ja}}に、その他のウィキには{{#time:n月j日|2023-12-21|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 今週、MediaWikiのバージョン更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 2023年12月18日以降、ベータ機能を使っても構造化した議論( Structured Discussions)の有効化はできなくなります。ベータ機能オプションの利用は、無効化したい利用者のために残してあります。これは[[mw:Structured Discussions/Deprecation|Structured Discussions の廃止作業]]の一環です。 [https://phabricator.wikimedia.org/T248309]
* [[File:Octicons-tools.svg|12px|link=|alt=|<span lang="en" dir="ltr" class="mw-content-ltr">Advanced item</span>]] <span lang="en" dir="ltr" class="mw-content-ltr">There will be full support for redirects in the Module namespace. The "Move Page" feature will leave an appropriate redirect behind, and such redirects will be appropriately recognized by the software (e.g. hidden from [[{{#special:UnconnectedPages}}]]). There will also be support for [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Renaming or moving modules|manual redirects]].</span> [https://phabricator.wikimedia.org/T120794]
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The MediaWiki JavaScript documentation is moving to a new format. During the move, you can read the old docs using [https://doc.wikimedia.org/mediawiki-core/REL1_41/js/ version 1.41]. Feedback about [https://doc.wikimedia.org/mediawiki-core/master/js/ the new site] is welcome on the [[mw:Talk:JSDoc_WMF_theme|project talk page]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The Wishathon is a new initiative that encourages collaboration across the Wikimedia community to develop solutions for wishes collected through the [[m:Special:MyLanguage/Community Wishlist Survey|Community Wishlist Survey]]. The first community Wishathon will take place from 15–17 March. If you are interested in a project proposal as a user, developer, designer, or product lead, you can [[m:Special:MyLanguage/Event:WishathonMarch2024|register for the event and read more]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年12月18日 (月) 16:18 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25959059 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-02 ==
<section begin="technews-2024-W02"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/02|翻訳]]されています。
'''最近の更新'''
* [https://mediawiki2latex.wmflabs.org/ mediawiki2latex]は、ウィキコンテンツをLaTeX、PDF、ODT、EPUBの各形式に変換するツールです。このたびの改善により、コードは多くの場面で高速化されました。また、ローカルマシンに[[b:de:Benutzer:Dirk_Hünniger/wb2pdf/install#Using_Docker|インストール]]できるDockerコンテナのオプションも提供されています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] おまかせ表示のページ選択方法がアップデートされました。一部のページが表示されにくい問題が徐々に減少するでしょう。 [https://phabricator.wikimedia.org/T309477]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-10|ja}}に、その他のウィキには{{#time:n月j日|2024-01-11|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W02"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月9日 (火) 01:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26026251 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-03 ==
<section begin="technews-2024-W03"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/03|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] JSONの[[mw:Special:MyLanguage/Manual:ContentHandler|コンテンツモデル]]を使用するページで、従来はスペースが使用されていた自動インデントをタブ文字にしました。これによりページサイズが大幅に削減されます。 [https://phabricator.wikimedia.org/T326065]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]と個人のユーザースクリプトで今後、ES6(別名ES2015)とES7(別名ES2016)導入されたJavaScript構文を使用できるようになりました。MediaWikiはソースコードの検証を行い、構文エラーから他のサイトの機能を保護し、すべての[[mw:Special:MyLanguage/Compatibility#Browsers|サポート対象となるブラウザ]]でスクリプトが有効であることを確認します。以前はガジェットで <bdi lang="zxx" dir="ltr"><code><nowiki>requiresES6</nowiki></code></bdi> オプションを利用可能でしたが、こちらは不要となるため将来的に削除される予定です。 [https://phabricator.wikimedia.org/T75714]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Special:MyLanguage/Manual:Bot passwords|ボットのパスワード]]と[[mw:Special:MyLanguage/OAuth/Owner-only consumers|所有者専用のOAuthコンシューマ]]は特定のページのみの編集を許可できるようになりました。 [https://phabricator.wikimedia.org/T349957]
* ボットが行った編集にも[[mw:Special:MyLanguage/Extension:Thanks|感謝]]を送れるようになりました。 [https://phabricator.wikimedia.org/T341388]
* 2024年版コミュニティ要望調査がアップデートされ、進捗状況が[[m:Special:MyLanguage/Community Wishlist Survey/Future Of The Wishlist/January 4, 2024 Update|公開されました]]。内容を確認してフィードバックをお寄せください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-17|ja}}に、その他のウィキには{{#time:n月j日|2024-01-18|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 1月17日以降、Chromeブラウザの特定の古いバージョン(バージョン51から66、2016年から2018年にかけてリリース)からウィキメディアウィキへログインできなくなります。また、iOS 12やMac OS 10.14のSafariユーザーは各ウィキに個別にログインする必要があるかもしれません。 [https://phabricator.wikimedia.org/T344791]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 昨年 <bdi lang="zxx" dir="ltr"><code>jquery.cookie</code></bdi> モジュールは非推奨となり、<bdi lang="zxx" dir="ltr"><code>mediawiki.cookie</code></bdi> モジュールに置き換えられました。旧モジュールを引き続き使用している部分に対して置換スクリプトが実行され、今週中にエイリアスが削除されます。 [https://phabricator.wikimedia.org/T354966]
'''今後の予定'''
* ウィキメディアドイツ支部は[[m:WMDE Technical Wishes/Reusing references|脚注の利用を簡単にする]]ための取り組みを進めています。[https://wikimedia.sslsurvey.de/User-research-into-Reusing-References-Sign-up-Form-2024/en/ 1月と2月にユーザーリサーチのための個別ビデオ通話]に参加したい人を募集中です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月16日 (火) 00:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26074460 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-04</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W04"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/04|Translations]] are available.
'''Problems'''
* A bug in UploadWizard prevented linking to the userpage of the uploader when uploading. It has now been fixed. [https://phabricator.wikimedia.org/T354529]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.42/wmf.15|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-01-23|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-01-24|en}}. It will be on all wikis from {{#time:j xg|2024-01-25|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/04|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W04"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月23日 (火) 01:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26096197 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-05 ==
<section begin="technews-2024-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/05|翻訳]]されています。
'''最近の更新'''
* 1月29日(月)以降、すべてのトークページのメッセージのタイムスタンプがリンク形式に変更されました。これはコメントへの固定リンクとなり、他の場所へ移動されたときでもコメントを探しやすくなります。この変更は英語版ウィキペディアを除くすべてのウィキに影響します。変更内容の詳細は[https://diff.wikimedia.org/2024/01/29/talk-page-permalinks-dont-lose-your-threads/ Diff]や[[mw:Special:MyLanguage/Help:DiscussionTools#Talk_pages_permalinking|MediaWiki.org]]を御覧ください。<!-- The Diff post will be published on Monday morning UTC--> [https://phabricator.wikimedia.org/T302011]
* CHAPTCHA の改善が行われ、ボットやスクリプトによるスパムを回避しやすくなりました。この変更に関するフィードバックがある場合は[[phab:T141490|タスク]]へのコメントをお願いします。スタッフは CAPTCHA に関するメトリクスのみならず、アカウント作成や編集回数などの副次的なメトリクスのモニタリングも行っています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-31|ja}}に、その他のウィキには{{#time:n月j日|2024-02-01|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項]] 2月1日から、閲覧中のページへのリンクを含んだ[[w:ja:QRコード|QRコード]]をダウンロードする項目が「ツール」メニューに追加されます。また、任意のウィキメディアのページへのQRコードを生成するための新しいページ [[{{#special:QrCode}}]] も導入されます。この機能は[[m:Community Wishlist Survey 2023/Results|コミュニティ要望リスト]]で[[m:Community Wishlist Survey 2023/Mobile and apps/Add ability to share QR code for a page in any Wikimedia project|19番目に上がっていた要望]]に基づくものです。 [https://phabricator.wikimedia.org/T329973]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 特定のスキンでのみ動作する[[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]は、しばし <bdi lang="zxx" dir="ltr"><code>targets</code></bdi> の設定項目により使用できる環境を制限していました。今週からこの機能は使用できなくなります。<bdi lang="zxx" dir="ltr"><code>skins</code></bdi> という設定項目を代わりに使用してください。 [https://phabricator.wikimedia.org/T328497]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月29日 (月) 19:31 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26137870 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-06 ==
<section begin="technews-2024-W06"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/06|翻訳]]されています。
'''最近の更新'''
*モバイル版履歴ページも、デスクトップ版と同じ HTML を採用しました。モバイル版の履歴表示の使用に問題があった場合は、[[phab:T353388|phabricator のタスク]]に報告してください。
*ほとんどのウィキで管理者は利用者対して特定の操作をブロックできるようになりました。規制できる操作はファイルのアップロード、ページの新規作成、ページの移動(改名)、感謝ボタンの使用などです。この機能の目的は管理者が対象利用者の活動に即したブロックを適用できるようにすることです。[[m:Special:MyLanguage/Community health initiative/Partial blocks#action-blocks|「操作をブロック」の詳細はこちら]]。 [https://phabricator.wikimedia.org/T242541][https://phabricator.wikimedia.org/T280531]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-02-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-02-07|ja}}に、その他のウィキには{{#time:n月j日|2024-02-08|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* トークページの固定リンクは、URLの文字列内に発音記号もしくはラテン文字以外の文字が使われていた場合エラーを起こしていました。この問題は解決済みです。 [https://phabricator.wikimedia.org/T356199]
'''今後の予定'''
* [[mw:Special:MyLanguage/Reference_Tooltips|Reference Tooltips]](参照ツールチップ)ガジェットを規定で全利用者に有効にしている[[m:WMDE Technical Wishes/ReferencePreviews#24WPs|24件のウィキペディア]]は、既定で有効のフラグを除去するよう推奨されています。これにより[[mw:Special:MyLanguage/Help:Reference_Previews|参照プレビュー]]が既定の脚注ポップアップとして使われるようになり、ウィキ間の体験をより標準化するためです。[[m:Talk:WMDE Technical Wishes/ReferencePreviews#Reference Previews to become the default for previewing references on more wikis.|懸念事項がない限り]]、インタフェース管理者が4名未満の[[m:WMDE Technical Wishes/ReferencePreviews#46WPs|ウィキペディア46 件]]は実施日程を2月中旬に変更を実施予定です。従来の参照ツールチップも引き続き有効で、個人設定でガジェットを有効にしている場合、参照プレビューの機能を上書きします。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/ReferencePreviews#Reference_Previews_to_become_the_default_for_previewing_references_on_more_wikis][https://phabricator.wikimedia.org/T355312]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月5日 (月) 19:22 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26180971 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-07</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W07"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/07|Translations]] are available.
'''Recent changes'''
* The [[d:Wikidata:SPARQL query service/WDQS graph split|WDQS Graph Split experiment]] is working and loaded onto 3 test servers. The team in charge is testing the split's impact and requires feedback from WDQS users through the UI or programmatically in different channels. [https://www.wikidata.org/wiki/Wikidata_talk:SPARQL_query_service/WDQS_graph_split][https://phabricator.wikimedia.org/T356773][https://www.wikidata.org/wiki/User:Sannita_(WMF)] Users' feedback will validate the impact of various use cases and workflows around the Wikidata Query service. [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/WDQS_backend_update/October_2023_scaling_update][https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual#Federation]
'''Problems'''
*There was a bug that affected the appearance of visited links when using mobile device to access wiki sites. It made the links appear black; [[phab:T356928|this issue]] is fixed.
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.42/wmf.18|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-02-13|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-02-14|en}}. It will be on all wikis from {{#time:j xg|2024-02-15|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|Advanced item]] As work continues on the grid engine deprecation,[https://wikitech.wikimedia.org/wiki/News/Toolforge_Grid_Engine_deprecation] tools on the grid engine will be stopped starting on February 14th, 2024. If you have tools actively migrating you can ask for an extension so they are not stopped. [https://wikitech.wikimedia.org/wiki/Portal:Toolforge/About_Toolforge#Communication_and_support]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/07|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W07"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月13日 (火) 05:49 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26223994 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-08 ==
<section begin="technews-2024-W08"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/08|翻訳]]されています。
'''最近の更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">If you have the "{{int:Tog-enotifwatchlistpages}}" option enabled, edits by bot accounts no longer trigger notification emails. Previously, only minor edits would not trigger the notification emails.</span> [https://phabricator.wikimedia.org/T356984]
* <span lang="en" dir="ltr" class="mw-content-ltr">There are changes to how user and site scripts load for [[mw:Special:MyLanguage/Skin:Vector/2022| Vector 2022]] on specific wikis. The changes impacted the following Wikis: all projects with [[mw:Special:MyLanguage/Skin:Vector|Vector legacy]] as the default skin, Wikivoyage, and Wikibooks. Other wikis will be affected over the course of the next three months. Gadgets are not impacted. If you have been affected or want to minimize the impact on your project, see [[Phab:T357580| this ticket]]. Please coordinate and take action proactively.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Newly auto-created accounts (the accounts you get when you visit a new wiki) now have the same local notification preferences as users who freshly register on that wiki. It is effected in four notification types listed in the [[phab:T353225|task's description]].</span>
*[[c:Special:MyLanguage/Commons:Upload_Wizard|アップロード・ウィザード]]を使って処理できるファイルサイズの上限は 5 ギガバイトになりました。 [https://phabricator.wikimedia.org/T191804]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:MediaWiki 1.42/wmf.19|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-02-20|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-02-21|en}}. It will be on all wikis from {{#time:j xg|2024-02-22|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]).</span> [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 2024年3月14日付けでグリッドを閉鎖するにあたり、グリットエンジン上の選択されたツールは[[wikitech:News/Toolforge_Grid_Engine_deprecation|停止]]しました。ツールのコードとデータは削除していません。メンテナーの皆さんのうちツールを再度、有効にしたい人は当[[wikitech:Portal:Toolforge/About_Toolforge#Communication_and_support|チーム]]にご連絡ください。グリッド上で動いているツールは、延長の申し入れを受けたものに限定しています。
* CSSのプロパティ <bdi lang="zxx" dir="ltr"><code>[https://developer.mozilla.org/en-US/docs/Web/CSS/filter filter]</code></bdi> は ウィキ文の記述で HTML <bdi lang="zxx" dir="ltr"><code>style</code></bdi> 属性を採用できるようになりました。 [https://phabricator.wikimedia.org/T308160]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月19日 (月) 15:37 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26254282 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-09</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W09"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/09|Translations]] are available.
'''Recent changes'''
* The [[mw:Special:MyLanguage/VisualEditor_on_mobile|mobile visual editor]] is now the default editor for users who never edited before, at a small group of wikis. [[mw:Special:MyLanguage/VisualEditor_on_mobile/VE_mobile_default#A/B_test_results| Research ]] shows that users using this editor are slightly more successful publishing the edits they started, and slightly less successful publishing non-reverted edits. Users who defined the wikitext editor as their default on desktop will get the wikitext editor on mobile for their first edit on mobile as well. [https://phabricator.wikimedia.org/T352127]
* [[File:Octicons-tools.svg|12px|link=|alt=|Advanced item]] The [[mw:Special:MyLanguage/ResourceLoader/Core modules#mw.config|mw.config]] value <code>wgGlobalGroups</code> now only contains groups that are active in the wiki. Scripts no longer have to check whether the group is active on the wiki via an API request. A code example of the above is: <bdi lang="zxx" dir="ltr"><code>if (/globalgroupname/.test(mw.config.get("wgGlobalGroups")))</code></bdi>. [https://phabricator.wikimedia.org/T356008]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.42/wmf.20|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-02-27|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-02-28|en}}. It will be on all wikis from {{#time:j xg|2024-02-29|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''Future changes'''
* The right to change [[mw:Special:MyLanguage/Manual:Tags|edit tags]] (<bdi lang="zxx" dir="ltr"><code>changetags</code></bdi>) will be removed from users in Wikimedia sites, keeping it by default for admins and bots only. Your community can ask to retain the old configuration on your wiki before this change happens. Please indicate in [[phab:T355639|this ticket]] to keep it for your community before the end of March 2024.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/09|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W09"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月26日 (月) 19:23 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26294125 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-10 ==
<section begin="technews-2024-W10"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/10|翻訳]]されています。
'''最近の更新'''
* 古い[[mw:Special:MyLanguage/Extension:Collection|Collection拡張機能]]によって提供されていた特別ページ<bdi lang="zxx" dir="ltr"><code>Special:Book</code></bdi>(および「ブックを作成する」関連機能)は全てのウィキソースのウィキから削除されました。機能が壊れていたためです。[[mw:Special:MyLanguage/Extension:Wikisource|ウィキソース拡張機能]]によって提供される通常のブックのダウンロード機能には影響しません。 [https://phabricator.wikimedia.org/T358437]
* [[m:Wikitech|Wikitech]]は全てのトーク名前空間のページを生成するために、次世代型の[[mw:Special:MyLanguage/Parsoid|Parsoid]]パーサーを既定で使用しています。問題が生じた場合は[[mw:Talk:Parsoid/Parser_Unification/Known_Issues|既知の問題点と議論のためのページ]]へ報告をお願いします。Parsoidを制御するために[[mw:Special:MyLanguage/Extension:ParserMigration|ParserMigration]]拡張機能を使用できます。詳細は[[mw:Special:MyLanguage/Help:Extension:ParserMigration|ParserMigrationのヘルプ文書]]を参照ください。
* [https://etherpad.wikimedia.org Etherpad]のメンテナンスが完了しました。問題が生じた場合は[[phab:T316421|チケット]]への報告をお願いします。
* [[File:Octicons-tools.svg|12px|link=|alt=| 高度]] [[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]はインターフェース管理者がCSSとJavaScriptを使用してカスタム機能を作成できるようにするものです。<bdi lang="zxx" dir="ltr"><code>Gadget</code></bdi> および <bdi lang="zxx" dir="ltr"><code>Gadget_definition</code></bdi> 名前空間と利用者権限 <bdi lang="zxx" dir="ltr"><code>gadgets-definition-edit</code></bdi> は、2015年に実験的に予約名として登録されましたが、実際に使用されることはありませんでした。これは Special:Search と Special:ListGroupRights で見ることができます。未使用の名前空間と権限はこのたび削除されます。ページの移動は行われず、変更は必要ありません。 [https://phabricator.wikimedia.org/T31272]
* Wikipediaの「引用」ワークフローが改善しました。挿入ボタンがポップアップのヘッダー部分へと移動されました。 [https://phabricator.wikimedia.org/T354847]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-06|ja}}に、その他のウィキには{{#time:n月j日|2024-03-07|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* 3月20日に数分間、すべてのウィキが読み取り専用になります。時刻は14:00 UTCを予定しています。詳細は技術ニュースで発表され、今後数週間で個別のウィキにも告知されます。 [https://phabricator.wikimedia.org/T358233]
* 今年後半に見出しとセクション編集リンクのマークアップが改善され、アクセシビリティが向上します。詳細は[[mw:Special:MyLanguage/Heading_HTML_changes|Heading HTML changes]]を参照ください。新しいマークアップはParsoidウィキテキストパーサーと同じになります。新しいマークアップを使用してガジェットやスタイルシートを確認したい場合はURLに <bdi lang="zxx" dir="ltr"><code>?useparsoid=1</code></bdi> を追加してください([[mw:Special:MyLanguage/Help:Extension:ParserMigration#Selecting_a_parser_using_a_URL_query_string|詳細はこちら]])。または個人設定でParsoidの読み取りビューを有効にしてください([[mw:Special:MyLanguage/Help:Extension:ParserMigration#Enabling_via_user_preference|詳細はこちら]])。
*
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月4日 (月) 19:47 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26329807 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-11 ==
<section begin="technews-2024-W11"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/11|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-13|ja}}に、その他のウィキには{{#time:n月j日|2024-03-14|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 様々なコミュニティと協議を行った結果、[[mw:Special:MyLanguage/Skin:Minerva Neue|Minervaスキン]]の行間は従来適用されていた1.65に増加しました。必要に応じてメニューの個人設定から異なるタイポグラフィも設定できます。 [https://phabricator.wikimedia.org/T358498]
*[[mw:Special:MyLanguage/Skin:Minerva Neue|Minerva]]の選択リンク色が変更され、他のプラットフォームとの一貫性が向上します。 [https://phabricator.wikimedia.org/T358516]
* <span lang="en" dir="ltr" class="mw-content-ltr">[[c:Special:MyLanguage/Commons:Structured data|Structured data on Commons]] will no longer ask whether you want to leave the page without saving. This will prevent the “information you’ve entered may not be saved” popups from appearing when no information have been entered. It will also make file pages on Commons load faster in certain cases. However, the popups will be hidden even if information has indeed been entered. If you accidentally close the page before saving the structured data you entered, that data will be lost.</span> [https://phabricator.wikimedia.org/T312315]
'''今後の予定'''
* 3月20日に数分間、すべてのウィキが読み取り専用になります。時刻は14:00 UTCを予定しています。詳細は技術ニュースで発表され、今後数週間で個別のウィキにも告知されます。 [https://phabricator.wikimedia.org/T358233][https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月11日 (月) 23:04 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26374013 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-12 ==
<section begin="technews-2024-W12"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/12|翻訳]]されています。
'''最近の更新'''
* 利用者への十分な周知が行えたものとして、[[mw:Special:MyLanguage/Skin:Vector/2022|2022年版ベクタースキン]]のメインメニューにあった「言語間リンクはページの先頭部にあります」という告知メッセージが削除されました。 [https://phabricator.wikimedia.org/T353619]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[m:Special:MyLanguage/IP_Editing:_Privacy_Enhancement_and_Abuse_Mitigation/IP_Info_feature|IP情報機能]]はSpurのデータベースからもIPアドレスの情報を参照して表示するようになります。従来はMaxMindの情報のみを参照していました。IP情報ツールが巡回者にとってより有用なものになります。 [https://phabricator.wikimedia.org/T341395]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ToolforgeのGridエンジンサービスはKubernetesへの最終移行プロセス完了後にシャットダウンされました。 [https://wikitech.wikimedia.org/wiki/Obsolete:Toolforge/Grid][https://wikitech.wikimedia.org/wiki/News/Toolforge_Grid_Engine_deprecation][https://techblog.wikimedia.org/2022/03/14/toolforge-and-grid-engine/]
* [[MediaWiki:Undelete-comment-dropdown]] を作成することで、ページの復帰を行う際のデフォルトの理由をカスタマイズすることができるようになりました。 [https://phabricator.wikimedia.org/T326746]
'''問題点'''
* [[m:Special:MyLanguage/WMDE_Technical_Wishes/RevisionSlider|リビジョンスライダー]]はページの履歴を相互に閲覧するためのインターフェースです。[[mw:Special:MyLanguage/Extension:RevisionSlider/Developing_a_RTL-accessible_feature_in_MediaWiki_-_what_we%27ve_learned_while_creating_the_RevisionSlider|右横書き]]の言語でリビジョンスライダーがマウスクリックに誤って反応するという問題が報告されていました。この問題は現在修正済みです。 [https://phabricator.wikimedia.org/T352169]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-20|ja}}に、その他のウィキには{{#time:n月j日|2024-03-21|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 3月20日に数分間、すべてのウィキが読み取り専用の状態になります。時刻は[https://zonestamp.toolforge.org/1710943200 14:00 UTC]を予定しています。 [https://phabricator.wikimedia.org/T358233][https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月18日 (月) 17:40 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26410165 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-13 ==
<section begin="technews-2024-W13"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/13|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 2024年3月18日、[[mw:Special:MyLanguage/Skin:Vector/2022|2022年版ベクタースキン]]のサイト、ユーザーJavaScript及びCSSの読み込み方法に変更が加えられました。サイト管理者のための[[phab:T360384|チェックリスト]]が提供されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-27|ja}}に、その他のウィキには{{#time:n月j日|2024-03-28|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月25日 (月) 18:57 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26446209 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-14 ==
<section begin="technews-2024-W14"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/14|翻訳]]されています。
'''最近の更新'''
* ベータ版機能の[[mw:Special:MyLanguage/Reading/Web/Accessibility_for_reading|読み取りアクセシビリティ]]の標準テキストと大きめテキストのオプションのデフォルト行間が変更されました。 [https://phabricator.wikimedia.org/T359030]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-04-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-04-03|ja}}に、その他のウィキには{{#time:n月j日|2024-04-04|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* ウィキメディア・コモンズ財団の年次計画を策定します。年次計画の中では財団が取り組む事柄を決定します。現在、プロダクト及びテクノロジー部門の[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2024-2025/Product & Technology OKRs#Draft Key Results|成果草案]]が公開されています。これは2024年7月から2025年6月までに財団が行う大規模な技術的変更とそれに対して望む成果の提案です。[[m:Talk:Wikimedia Foundation Annual Plan/2024-2025/Product & Technology OKRs|トークページへのご意見をお待ちしています]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月2日 (火) 03:36 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26462933 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-15 ==
<section begin="technews-2024-W15"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/15|翻訳]]されています。
'''最近の更新'''
* ウェブブラウザには[[:w:ja:ブラウザ拡張機能|拡張機能]]と呼ばれるツールを使用することができます。[[m:Future Audiences/Experiment:Citation Needed|Citation Needed]]と呼ばれるChrome拡張機能があります。これを使用することでウィキペディアの記事がオンライン上の意見を支持しているかどうかを確認することができます。これはウィキペディアをこのような方法で検証できるかどうかの小規模な実験です。小規模な実験を目的としているため、拡張機能はChrome用の英語版しかありません。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] <span class="mw-translate-fuzzy">すべてのウィキに[[mw:Special:MyLanguage/Help:Edit Recovery|編集の復旧]]機能が追加されました。[[Special:Preferences#mw-prefsection-editing|個人設定]]から有効にすることができます。機能を有効にしていた場合、編集内容がウェブブラウザに保存され、編集画面を誤って閉じたり、ブラウザやコンピュータがクラッシュした際に、未保存のテキストを復旧するよう促されます。この機能について[[m:Special:MyLanguage/Talk:Community Wishlist Survey 2023/Edit-recovery feature|プロジェクトのトークページ]]にフィードバックをお願いします。この機能は2023年のコミュニティ要望調査で8番目に挙がっていた項目でした。</span>
* [[mw:Special:MyLanguage/Edit check|編集チェック]]の初期結果が[[mw:Special:MyLanguage/Edit_check#4_April_2024|公開されました]]。[[phab:T342930#9538364|編集チェックの試験に参加したウィキ]]ではこれをデフォルトの機能として提供しています。次回の編集チェックに参加したいウィキがありましたら[[mw:Talk:Edit check|お知らせください。]] [https://phabricator.wikimedia.org/T342930][https://phabricator.wikimedia.org/T361727]
* モバイルモードで[[mw:Special:MyLanguage/Skin:Minerva Neue|ミネルバスキン]]を使用しているユーザーはに行間設定が変更されたことにお気づきいただけると思います。 [https://phabricator.wikimedia.org/T359029]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-04-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-04-10|ja}}に、その他のウィキには{{#time:n月j日|2024-04-11|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 新規アカウントとログアウトしたユーザーは[[mw:Special:MyLanguage/VisualEditor|ビジュアルエディター]]をモバイル版デフォルトのエディタとして利用できるようになります。英語版ウィキペディアを除く全てのウィキにこの設定が展開されます。 [https://phabricator.wikimedia.org/T361134]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月8日 (月) 23:38 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26564838 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-16</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W16"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/16|Translations]] are available.
'''Problems'''
* Between 2 April and 8 April, on wikis using [[mw:Special:MyLanguage/Extension:FlaggedRevs|Flagged Revisions]], the "{{Int:tag-mw-reverted}}" tag was not applied to undone edits. In addition, page moves, protections and imports were not autoreviewed. This problem is now fixed. [https://phabricator.wikimedia.org/T361918][https://phabricator.wikimedia.org/T361940]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.43/wmf.1|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-04-16|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-04-17|en}}. It will be on all wikis from {{#time:j xg|2024-04-18|en}} ([[mw:MediaWiki 1.43/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[mw:Special:MyLanguage/Help:Magic words#DEFAULTSORT|Default category sort keys]] will now affect categories added by templates placed in [[mw:Special:MyLanguage/Help:Cite|footnotes]]. Previously footnotes used the page title as the default sort key even if a different default sort key was specified (category-specific sort keys already worked). [https://phabricator.wikimedia.org/T40435]
* A new variable <bdi lang="zxx" dir="ltr"><code>page_last_edit_age</code></bdi> will be added to [[Special:AbuseFilter|abuse filters]]. It tells how many seconds ago the last edit to a page was made. [https://phabricator.wikimedia.org/T269769]
'''Future changes'''
* Volunteer developers are kindly asked to update the code of their tools and features to handle [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]]. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers/2024-04 CTA|Learn more]].
* [[File:Octicons-tools.svg|12px|link=|alt=|Advanced item]] Four database fields will be removed from database replicas (including [[quarry:|Quarry]]). This affects only the <bdi lang="zxx" dir="ltr"><code>abuse_filter</code></bdi> and <bdi lang="zxx" dir="ltr"><code>abuse_filter_history</code></bdi> tables. Some queries might need to be updated. [https://phabricator.wikimedia.org/T361996]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/16|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W16"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月15日 (月) 23:29 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26564838 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-17</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W17"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/17|Translations]] are available.
'''Recent changes'''
* Starting this week, newcomers editing Wikipedia [[mw:Special:MyLanguage/Growth/Positive reinforcement#Leveling up 3|will be encouraged]] to try structured tasks. [[mw:Special:MyLanguage/Growth/Feature summary#Newcomer tasks|Structured tasks]] have been shown to [[mw:Special:MyLanguage/Growth/Personalized first day/Structured tasks/Add a link/Experiment analysis, December 2021|improve newcomer activation and retention]]. [https://phabricator.wikimedia.org/T348086]
* You can [[m:Special:MyLanguage/Coolest Tool Award|nominate your favorite tools]] for the fifth edition of the Coolest Tool Award. Nominations will be open until May 10.
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.43/wmf.2|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-04-23|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-04-24|en}}. It will be on all wikis from {{#time:j xg|2024-04-25|en}} ([[mw:MediaWiki 1.43/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''Future changes'''
* This is the last warning that by the end of May 2024 the Vector 2022 skin will no longer share site and user scripts/styles with old Vector. For user-scripts that you want to keep using on Vector 2022, copy the contents of [[{{#special:MyPage}}/vector.js]] to [[{{#special:MyPage}}/vector-2022.js]]. There are [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Loading Vector 2010 scripts|more technical details]] available. Interface administrators who foresee this leading to lots of technical support questions may wish to send a mass message to your community, as was done on French Wikipedia. [https://phabricator.wikimedia.org/T362701]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/17|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W17"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月22日 (月) 20:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26647188 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-18</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W18"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/18|Translations]] are available.
'''Recent changes'''
[[File:Talk_pages_default_look_(April_2023).jpg|thumb|alt=Screenshot of the visual improvements made on talk pages|Example of a talk page with the new design, in French.]]
* The appearance of talk pages changed for the following wikis: {{int:project-localized-name-azwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-bnwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-dewiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-fawiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-hewiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-hiwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-idwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-kowiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-nlwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-ptwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-rowiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-thwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-trwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-ukwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-viwiki/en}}. These wikis participated to a test, where 50% of users got the new design, for one year. As this test [[Mw:Special:MyLanguage/Talk pages project/Usability/Analysis|gave positive results]], the new design is deployed on these wikis as the default design. It is possible to opt-out these changes [[Special:Preferences#mw-prefsection-editing|in user preferences]] ("{{int:discussiontools-preference-visualenhancements}}"). The deployment will happen at all wikis in the coming weeks. [https://phabricator.wikimedia.org/T341491]
* Seven new wikis have been created:
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q33014|Betawi]] ([[w:bew:|<code>w:bew:</code>]]) [https://phabricator.wikimedia.org/T357866]
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q35708|Kusaal]] ([[w:kus:|<code>w:kus:</code>]]) [https://phabricator.wikimedia.org/T359757]
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q35513|Igala]] ([[w:igl:|<code>w:igl:</code>]]) [https://phabricator.wikimedia.org/T361644]
** a {{int:project-localized-name-group-wiktionary}} in [[d:Q33541|Karakalpak]] ([[wikt:kaa:|<code>wikt:kaa:</code>]]) [https://phabricator.wikimedia.org/T362135]
** a {{int:project-localized-name-group-wikisource}} in [[d:Q9228|Burmese]] ([[s:my:|<code>s:my:</code>]]) [https://phabricator.wikimedia.org/T361085]
** a {{int:project-localized-name-group-wikisource}} in [[d:Q9237|Malay]] ([[s:ms:|<code>s:ms:</code>]]) [https://phabricator.wikimedia.org/T363039]
** a {{int:project-localized-name-group-wikisource}} in [[d:Q8108|Georgian]] ([[s:ka:|<code>s:ka:</code>]]) [https://phabricator.wikimedia.org/T363085]
* You can now [https://translatewiki.net/wiki/Support#Early_access:_Watch_Message_Groups_on_Translatewiki.net watch message groups/projects] on [[m:Special:MyLanguage/translatewiki.net|Translatewiki.net]]. Initially, this feature will notify you of added or deleted messages in these groups. [https://phabricator.wikimedia.org/T348501]
* Dark mode is now available on all wikis, on mobile web for logged-in users who opt into the [[Special:MobileOptions|advanced mode]]. This is the early release of the feature. Technical editors are invited to [https://night-mode-checker.wmcloud.org/ check for accessibility issues on wikis]. See [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|more detailed guidelines]].
'''Problems'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] maps can use an alternative visual style without labels, by using <bdi lang="zxx" dir="ltr"><code><nowiki>mapstyle="osm"</nowiki></code></bdi>. This wasn't working in previews, creating the wrong impression that it wasn't supported. This has now been fixed. [https://phabricator.wikimedia.org/T362531]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.43/wmf.3|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-04-30|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-05-01|en}}. It will be on all wikis from {{#time:j xg|2024-05-02|en}} ([[mw:MediaWiki 1.43/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/18|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W18"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月30日 (火) 03:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26689057 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-19 ==
<section begin="technews-2024-W19"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/19|翻訳]]されています。
'''最近の更新'''
[[File:Talk_pages_default_look_(April_2023).jpg|thumb|alt=外観の改善がされたトークページのスクリーンショット|新デザインのトークページの例(フランス語)。]]
* コモンズ、ウィキデータ、および大半のウィキペディア([[m:Special:MyLanguage/Tech/News/2024/18|一部]]はすでにデザイン変更済み)を除く全てのウィキで、トークページの外観が変更されました。変更の詳細は[[diffblog:2024/05/02/making-talk-pages-better-for-everyone/|Diff]]をご覧ください。[[Special:Preferences#mw-prefsection-editing|個人設定]]("{{int:discussiontools-preference-visualenhancements}}")でこの変更を無効にすることができます。今後数週間のうちに他のウィキにも展開される予定です。 [https://phabricator.wikimedia.org/T352087][https://phabricator.wikimedia.org/T319146]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] インターフェース管理者は、<code>SiteAdminHelper</code>の導入により、携帯端末での記事構成要素のスタイルをより管理しやすくなりました。スタイルの無効化の詳細については、[[mw:Special:MyLanguage/Extension:WikimediaMessages#Site_admin_helper|拡張機能のページ]]をご覧ください。 [https://phabricator.wikimedia.org/T363932]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Wikimedia Enterprise|Wikimedia Enterprise]] has added article body sections in JSON format and a curated short description field to the existing parsed Infobox. This expansion to the API is also available via Wikimedia Cloud Services.</span> [https://enterprise.wikimedia.com/blog/article-sections-and-description/]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-08|ja}}に、その他のウィキには{{#time:n月j日|2024-05-09|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 特別:ログ を開いた時、最初に表示されているラベルは "全ての公開記録" となっていますが、実際には一部の記録しか表示されません。今後、ラベルは "主な公開ログ" と表記されます。 [https://phabricator.wikimedia.org/T237729]
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:Graph|グラフ拡張機能]]に代わる新しいサービスが開発される予定です。詳細はこの拡張機能に関する[[mw:Special:MyLanguage/Extension:Graph/Plans|最新の更新]]をご覧ください。
* 5月21日から、英語版ウィキペディアとドイツ語版ウィキペディアで「[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクを追加]]」機能を有効化できるようになります。これは[[phab:T304110|このツールをすべてのウィキペディアに段階的に展開する]]一環として行われます。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能を有効化し、設定することができます]]。 [https://phabricator.wikimedia.org/T308144]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月6日 (月) 16:45 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26729363 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-20 ==
<section begin="technews-2024-W20"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/20|翻訳]]されています。
'''最近の更新'''
* Wikisource(ウィキソース)に特別ページがあり、保存されたページのうち対応するはずのスキャン画像が存在しないページ類をまとめてあります。新しくマジックワード <bdi lang="zxx" dir="ltr"><code>__EXPECTWITHOUTSCANS__</code></bdi> を使うと、指定したページ群を除外することができるようになりました(たとえば発行の版数一覧やその一覧の他言語版など)。 [https://phabricator.wikimedia.org/T344214]
* [[Special:Preferences#mw-prefsection-editing|個人設定]]の「{{int:tog-uselivepreview}}」を有効にしている場合、ページを再読み込みしなくても「{{int:Templatesandbox-editform-legend}}」というテンプレートページの機能が実行できるようになりました。 [https://phabricator.wikimedia.org/T136907]
* [[mw:Special:Mylanguage/Extension:Kartographer|Kartographer]] で作成した地図内に<bdi lang="zxx" dir="ltr"><code><nowiki>alt=</nowiki></code></bdi> 属性を介して代替文字列を指定できるようになりました。使用方法は[[mw:Special:MyLanguage/Help:Images#Syntax|画像およびギャラリー構文]]の <bdi lang="zxx" dir="ltr"><code><nowiki>alt=</nowiki></code></bdi> 属性と同じです。例外は Wikivoyage など、ミニチュア・マップを双方向に使えるウィキ・プロジェクトではこの限りではありません。 [https://phabricator.wikimedia.org/T328137]
* 「[[mw:Special:MyLanguage/Edit Review Improvements/New filters for edit review|編集レビューの新フィルター]]」機能("[[mw:Special:MyLanguage/Edit Review Improvements/New filters for edit review|New Filters for Edit Review]]" )において、従来の[[mw:Special:MyLanguage/Extension:GuidedTour|ガイドツアー]]を除去しました。作成した2017年には利用者アカウントが古い利用者を対象に、インターフェースの変更点を紹介したものでしたが、対象となるはずの利用者層のほとんどがすでに視聴済みです。 [https://phabricator.wikimedia.org/T217451]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-15|ja}}に、その他のウィキには{{#time:n月j日|2024-05-16|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[{{#special:search}}]] 結果ページは使いやすさを向上させるため、表組みの代わりに CSS フレックス属性を採用します。検索結果を調整するガジェットまたはスクリプトを使用中の場合は、スクリプトを新しい HTML 構造に必ず更新してください。 [https://phabricator.wikimedia.org/T320295]
'''今後の予定'''
* 2022年ベクター外装の場合、メインページの表示幅がウィンドウいっぱいに変更の予定です(特別ページと同様)。目的は、1行あたりの文字数をできるだけ多くするためです。これは同外装に展開予定の文字組みの更新と連携しています。[[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates|詳細はこちら]]。 [https://phabricator.wikimedia.org/T357706]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:pagelinks table|pagelinks]]</code></bdi> データベース・テーブルの2列(<bdi lang="zxx" dir="ltr"><code>pl_namespace</code></bdi> と <bdi lang="zxx" dir="ltr"><code>pl_title</code></bdi>)をまもなく削除の予定です。今後は必ず新規の<bdi lang="zxx" dir="ltr"><code>[[mw:special:MyLanguage/Manual:linktarget table|linktarget]]</code></bdi> テーブルの2列を使用してください(<bdi lang="zxx" dir="ltr"><code>lt_namespace</code></bdi> と <bdi lang="zxx" dir="ltr"><code>lt_title</code></bdi>)。既存の SQL クエリに当てはめると以下のとおり。
*# <bdi lang="zxx" dir="ltr"><code>ON</code></bdi> の記述で、$ 1 は <bdi lang="zxx" dir="ltr"><code>JOIN linktarget</code></bdi> に、 <bdi lang="zxx" dir="ltr"><code>pl_</code></bdi> は $ 4 に置換する
*# その下の行に <bdi lang="zxx" dir="ltr"><code>JOIN pagelinks ON lt_id = pl_target_id</code></bdi> を追加する
** 技術的な理由は<bdi lang="en" dir="ltr">[[phab:T222224]]</bdi>でご確認ください。 [https://phabricator.wikimedia.org/T222224][https://phabricator.wikimedia.org/T299947]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月13日 (月) 23:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26762074 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-21 ==
<section begin="technews-2024-W21"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/21|翻訳]]されています。
'''最近の更新'''
* 管理者がページを一括削除できる[[mw:Special:MyLanguage/Extension:Nuke|Nuke]]拡張機能で、移動されたページが正しく削除されるようになりました。 [https://phabricator.wikimedia.org/T43351]
* <span lang="en" dir="ltr" class="mw-content-ltr">New changes have been made to the UploadWizard in Wikimedia Commons: the overall layout has been improved, by following new styling and spacing for the form and its fields; the headers and helper text for each of the fields was changed; the Caption field is now a required field, and there is an option for users to copy their caption into the media description.</span> [https://commons.wikimedia.org/wiki/Commons:WMF_support_for_Commons/Upload_Wizard_Improvements#Changes_to_%22Describe%22_workflow][https://phabricator.wikimedia.org/T361049]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-22|ja}}に、その他のウィキには{{#time:n月j日|2024-05-23|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The HTML used to render all headings [[mw:Heading_HTML_changes|is being changed to improve accessibility]]. It will change on 22 May in some skins (Timeless, Modern, CologneBlue, Nostalgia, and Monobook). Please test gadgets on your wiki on these skins and [[phab:T13555|report any related problems]] so that they can be resolved before this change is made in all other skins. The developers are also considering the introduction of a [[phab:T337286|Gadget API for adding buttons to section titles]] if that would be helpful to tool creators, and would appreciate any input you have on that.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W21"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月20日 (月) 23:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26786311 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-22 ==
<section begin="technews-2024-W22"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/22|翻訳]]されています。
'''最近の更新'''
* ウィキメディア・コモンズでのアップロードウィザードのアップデートに関連するいくつかのバグが修正されました。詳細については、[[:phab:T365107|T365107]]と[[:phab:T365119|T365119]]を参照してください。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 2024年3月、ガジェットがスキン内に新しいポートレットを作成できるようにする、[[mw:ResourceLoader/Core_modules#addPortlet|addPortlet]] APIが追加されました。特定のスキンでは、これを利用してドロップダウンを作成できます。ぜひお試しいただき、[[phab:T361661|フィードバックをお寄せください]]。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MinervaスキンのいくつかのCSSが削除され、コミュニティの設定が簡単になりました。インターフェース管理者は、モバイルデバイスでのクラス: <bdi lang="zxx" dir="ltr"><code>.collapsible</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.multicol</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.reflist</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.coordinates</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.topicon</code></bdi>に関連する要素のレンダリングを確認してください。必要に応じて[[phab:T361659|代替CSSに関する詳細を参照してください]]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-29|ja}}に、その他のウィキには{{#time:n月j日|2024-05-30|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* ローカルアカウントがまだ作成されていないウィキにアクセスすると、ローカルルールにより、編集フィルターなどでアカウントが自動作成できない場合があります。 今週から、MediaWikiは、そのようなローカルルールを上書きできるかどうかを評価する際、グローバル権限を考慮します。 [https://phabricator.wikimedia.org/T316303]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月28日 (火) 00:15 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26832205 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-23 ==
<section begin="technews-2024-W23"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/23|翻訳]]されています。
'''最近の更新'''
* 管理者は、JavaScriptを使用せずにツールメニューに項目を追加できるようになりました。[[mw:Manual:Interface/Sidebar#Add or remove toolbox sections|マニュアルをご覧ください]]。 [https://phabricator.wikimedia.org/T6086]
* WikiHieroの追跡カテゴリの定義のメッセージ名が<bdi lang="zxx" dir="ltr"><code>MediaWiki:Wikhiero-usage-tracking-category</code></bdi>から<bdi lang="zxx" dir="ltr"><code>MediaWiki:Wikihiero-usage-tracking-category</code></bdi>に変更されました。 [https://gerrit.wikimedia.org/r/c/mediawiki/extensions/wikihiero/+/1035855]
* 新しいウィキが作成されました: [[d:Q5317225|中央ドゥスン語]]版{{int:project-localized-name-group-wikipedia}} ([[w:dtp:|<code>w:dtp:</code>]]) [https://phabricator.wikimedia.org/T365220]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-05|ja}}に、その他のウィキには{{#time:n月j日|2024-06-06|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* 来週、2022年版ベクター外装を規定で使用しているウィキでは、ログアウト状態のデスクトップ利用者がフォントサイズを選べるようになり、規定のフォントサイズも大きくなります。これは、ウィキメディアプロジェクトの可読性向上を目的としています。[[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-06 deployments|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月3日 (月) 22:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26844397 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-24 ==
<section begin="technews-2024-W24"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/24|翻訳]]されています。
'''最近の更新'''
* SVGファイルのレンダリングに使うソフトウェアは更新され、SVGレンダリングに関する長年のバグが多数、修正済みです。 [https://phabricator.wikimedia.org/T265549]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] アクセシビリティ向上の一環として、全ての見出しに使われるHTMLが[[mw:Heading HTML changes|変更されます]]。先週、一部の外装(レガシー ベクター (2010年版)とMinervaNeue)で変更されました。これらの外装でガジェットをそれぞれのウィキでテストし、[[phab:T13555|問題があれば報告して]]、ベクター (2022年版)でこの変更が行われる前に解決できるようご協力ください。開発者はツール開発者の役に立つようなら[[phab:T337286|節見出しにボタンを追加するガジェットAPI]]導入を引き続き検討中で、この点についてどんな情報でも提供をお待ちしています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 先週、[[mw:Special:MyLanguage/Parsoid|Parsoid]]による引用に使われるHTMLマークアップが変更されました。Parsoidが以前<bdi lang="zxx" dir="ltr"><code>mw-reference-text</code></bdi>クラスを生成していた場所には、現在では古いパーサーとの互換性を高めるために<bdi lang="zxx" dir="ltr"><code>reference-text</code></bdi>クラスも生成します。[[mw:Specs/HTML/2.8.0/Extensions/Cite/Announcement|詳細は発表を参照してください]]。 [https://gerrit.wikimedia.org/r/1036705]
'''問題点'''
* コンテンツ翻訳拡張機能にバグが見つかり、影響でツールのメニューの表示位置が正しくありませんでした。これは修正済みです。 [https://phabricator.wikimedia.org/T366374]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-12|ja}}に、その他のウィキには{{#time:n月j日|2024-06-13|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MediaWikiの新しいバージョンではHTMLマークアップが変更されています: [[mw:Special:MyLanguage/Parsoid|Parsoid]]は、古いパーサーとの互換性を高めるために名前付き参照と名前なし参照の両方に対して<bdi lang="zxx" dir="ltr"><code><nowiki><span class="mw-cite-backlink"></nowiki></code></bdi>を生成するようになりました。インターフェース管理者は、引用に関するガジェットが新しいマークアップに互換性があることを確認してください。[[mw:Specs/HTML/2.8.0/Extensions/Cite/Announcement|詳細は発表を参照してください]]。 [https://gerrit.wikimedia.org/r/1035809]
* <bdi lang="zxx" dir="ltr"><code><nowiki><translate></nowiki></code></bdi> システムを採用する多言語版のウィキ類には、陳腐化したであろう翻訳文をピンクの背景で示し更新または査読が済むと解除する機能があります。今週から翻訳査読を記録しており、またコミュニティから[[m:Special:MyLanguage/Requesting wiki configuration changes|要請がある]]場合には、翻訳査読に必要な新しいユーザー権限を設定します。 [https://phabricator.wikimedia.org/T49177]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月10日 (月) 20:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26893898 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-25 ==
<section begin="technews-2024-W25"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/25|翻訳]]されています。
'''最近の更新'''
* ビジュアルエディターで外部リンクを追加する際、リンク先のドメインが当該ウィキプロジェクト上でブラックリスト登録されている場合、通知が表示されるようになりました。詳細は[[mw:Special:MyLanguage/Edit_check#11_June_2024|編集チェック]]をご覧ください。 [https://phabricator.wikimedia.org/T366751]
* 新しい拡張機能である[[mw:Special:MyLanguage/Extension:CommunityConfiguration|CommunityConfiguration]]が[[testwiki:Special:CommunityConfiguration|テストウィキ]]で使用可能になりました。これを使うと、ウィキのニーズに合わせてローカルコミュニティが特定の機能をカスタマイズできます。現在はGrowthの機能にのみ対応していますが、将来的には[[mw:Special:MyLanguage/Community_configuration#Use_cases|CommunityConfiguration使用ケース]]にリストアップされた機能にも対応します。 [https://phabricator.wikimedia.org/T323811][https://phabricator.wikimedia.org/T360954]
* ダークモードの[[Special:Preferences#mw-prefsection-betafeatures|ベータ機能]]がカテゴリおよびヘルプページで使用可能になり、より多くの特別ページにも対応しました。ただし、現在のバージョンではコントラスト比に問題がある場合があります。バグを発見した場合は[[mw:Talk:Reading/Web/Accessibility_for_reading|開発プロジェクトのトークページ]]へ報告をお願いします。 [https://phabricator.wikimedia.org/T366370]
'''問題点'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 先週、クラウドサービスのツールが25分間使用不能になりました。これは、データセンター内のハードウェアケーブルの故障によるものでした。 [https://wikitech.wikimedia.org/wiki/Incidents/2024-06-11_WMCS_Ceph]
* 先週、Vector 2022外装のスタイル更新がありました。テンプレート、ハットノート、画像に想定外の不具合を生じさせたため、関連した一部の変更は差し戻されました。なお、画像関連の不具合については概ね解消済みです。残存した不具合を発見した場合、[[phab:T367463|こちらに報告してください]]。 [https://phabricator.wikimedia.org/T367480]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-19|ja}}に、その他のウィキには{{#time:n月j日|2024-06-20|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 6月18日から、[[mw:Special:MyLanguage/Help:Edit check#ref|出典編集チェック]]が[[phab:T361843|特定のウィキペディアプロジェクト]]に導入されます。この機能は、初心者の手助けおよび編集パトローラーの補助を目的としており、無出典で記事に内容を追加する編集者に対し出典の明記を案内できます。11のウィキ上で行ったテストでは、出典チェックが表示される環境下において出典の追加数が2倍以上になりました。[[mw:Special:MyLanguage/Edit check/Configuration|コミュニティによる設定変更]]にも対応しています。 [https://phabricator.wikimedia.org/T361843]<!-- NOTE: THE DIFF BLOG WILL BE PUBLISHED ON MONDAY -->
* 火曜日の10~12時 (UTC) 頃、約2時間[[m:Special:MyLanguage/Mailing_lists|メーリングリスト]]が使用不能になります。これは、新しいサーバーへの移行作業とソフトウェアのアップグレードによるものです。 [https://phabricator.wikimedia.org/T367521]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月17日 (月) 23:49 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26911987 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-26 ==
<section begin="technews-2024-W26"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/26|翻訳]]されています。
'''最近の更新'''
* 先週、差分で表示されるテキストの背景色と、バイト数変更を表示する文字の色が変更されました。これらの変更は、ライトモードとダークモードの両方で文字を読みやすくすることを目的としており、アクセシビリティを向上させるための大きな取り組みの一部です。コメントや質問は、[[mw:Talk:Reading/Web/Accessibility for reading|プロジェクトの議論ページ]]で共有できます。 [https://phabricator.wikimedia.org/T361717]
* 先週、訪問済みリンク<!--visited-links-->、ホバーリンク<!--hovered-links-->、アクティブリンク<!--active-links-->に使用されるテキストの色もわずかに変更され、ライトモードとダークモードの両方でアクセシビリティが向上しました。 [https://phabricator.wikimedia.org/T366515]
'''問題点'''
* コメントのタイムスタンプをクリックすると、[[mw:Special:MyLanguage/Help:DiscussionTools#Talk pages permalinking|そのコメント固有のリンク]]をコピーできます。しかし[[mw:Talk pages project/Permalinks|この機能]]はトピックのタイトルが長く、リンクがウィキテキストリンクとして使用されている場合は必ずしも機能しませんでした。この問題は修正されました。バグを報告してくださったLofhi氏に感謝します。 [https://phabricator.wikimedia.org/T356196]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-26|ja}}に、その他のウィキには{{#time:n月j日|2024-06-27|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 6月26日から英語版ウィキペディアでもすべての議論ページのコメントのタイムスタンプがリンクとなり、すべてのウィキでこの機能が利用できるようになります。このリンクはそのコメントへの固有のリンクになっています。そのため、コメントが別の場所に移動されたとしても、リンク先のコメントを見つけることができます。この機能の詳細については、[[DiffBlog:/2024/01/29/talk-page-permalinks-dont-lose-your-threads/|Diff]]または[[mw:Special:MyLanguage/Help:DiscussionTools#Talk pages permalinking|MediaWiki]]を参照してください。 [https://phabricator.wikimedia.org/T365974]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月24日 (月) 22:33 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26989424 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-27 ==
<section begin="technews-2024-W27"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/27|翻訳]]されています。
'''最近の更新'''
* 今後の3週間で、非ログイン利用者を含む全ての利用者がダークモードを使用可能になります。(機能導入はモバイルウェブ版から開始します。)これにより、[[m:Special:MyLanguage/Community_Wishlist_Survey_2023/Reading/Dark_mode|コミュニティ要望調査で高優先度の項目]]の1つが達成され、低コントラスト下および低画面光度下での閲覧環境が向上します。この更新の一環として、ダークモードは利用者ページおよびポータル上でも使用可能になります。詳しくは、[[mw:Special:MyLanguage/Reading/Web/Accessibility_for_reading/Updates#June_2024:_Typography_and_dark_mode_deployments,_new_global_preferences|ウェブチームによるアップデート情報]]をご覧ください。 [https://phabricator.wikimedia.org/T366364]
* 財団の開発者チームにより、[[m:Special:GlobalPreferences#mw-prefsection-rendering-skin-skin-prefs|テキストサイズとダークモードのグローバル個人設定]]がログイン利用者向けに導入されました。これにより、グローバルに活動をしている利用者は、一度の設定変更で全てのウィキの閲覧環境を整えることができます。例として、グローバル個人設定でライトモードまたはダークモードの選択を一度行えば、その設定を全てのウィキに反映させることができます。 [https://phabricator.wikimedia.org/T341278]
* 直近のコードフレームワークのアップデートにより、あなたが非常に古いウェブブラウザを使用している場合、今後ウィキメディアのウィキで一部の機能が動作しなくなる可能性があります。影響を受けるブラウザは、Internet Explorer 11や、2016年以前のバージョンのChrome、Firefox、Safariなどが該当します。一方、この変更により新しい[[d:Q46441|CSS]]機能が使用可能になり、バックグラウンドで実行されるコードの容量も減少します。 [https://phabricator.wikimedia.org/T288287][https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:How_to_make_a_MediaWiki_skin#Using_CSS_variables_for_supporting_different_themes_e.g._dark_mode]
* 管理者は、[[mw:Special:MyLanguage/Community Configuration|CommunityConfiguration]]を使用してローカルウィキの設定の一部をカスタマイズできます。CommunityConfigurationは、それぞれのウィキには固有のニーズが存在することを受け作成されました。現時点では、管理者は[[mw:Special:MyLanguage/Growth/Feature_summary|Growth機能]]の設定を変更できるため、新規利用者の勧誘や存置に役立ててください。今後数か月の間に、Growth以外の機能にも対応予定です。 [https://phabricator.wikimedia.org/T366458]
* [[w:ja:Unicode|ユニコード規格]]関連の言語課題に興味がある方向けに、[[mw:Talk:WMF membership with Unicode Consortium|議論の場(MediaWiki.org)]]が設けられました。ウィキメディア財団は現在[[mw:Special:MyLanguage/WMF membership with Unicode Consortium|ユニコード・コンソーシアムのメンバー]]となっており、上記の場で提示された課題をレビューの上、適宜コンソーシアムに提起することができます。
* 新しいウィキが作成されました: [[d:Q2891049|バタク・マンダイリン語]]版{{int:project-localized-name-group-wikipedia}} ([[w:btm:|<code>w:btm:</code>]]) [https://phabricator.wikimedia.org/T368038]
'''問題点'''
* 開発チームのバグ修正により、ビジュアルエディターの出典プレピュー内に表示されるリンクがクリック可能な状態に戻りました。 [https://phabricator.wikimedia.org/T368119]
'''今後の予定'''
* [https://wikimediafoundation.limesurvey.net/758713?lang=ja 技術ニュースの向上を目的とした短いアンケートにご協力ください]。様々な閲覧者のニーズにより良く応えることを目標にしています。このアンケートは2週間回答可能で、[https://foundation.wikimedia.org/wiki/Legal:Tech_News_Survey_2024_Privacy_Statement プライバシー声明]が適用されます。一部については、翻訳版も利用可能です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月1日 (月) 23:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27038456 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-28 ==
<section begin="technews-2024-W28"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/28|翻訳]]されています。
'''最近の更新'''
* ウィキメディア財団は新しいタスクフォースを結成し、無効化されたグラフを[[mw:Special:MyLanguage/Extension:Chart/Project|より安全で使いやすく拡張可能なチャート]]で置き換えようと取り組んでいます。[[mw:Special:MyLanguage/Newsletter:Chart Project|ニュースレターに登録する]]と、プロジェクトの新しいアップデートやチャートに関するその他のニュースを受け取ることができます。
* [[m:Special:MyLanguage/CampaignEvents|CampaignEvents]]の拡張機能がメタウィキ、イグボ語版ウィキペディア、スワヒリ語版ウィキペディアで利用可能になり、リクエストに応じて他のウィキにも導入することができます。この拡張機能はイベントの管理と可視化を支援し、イベント登録ツールなどのツールを主催者が使用できるようになります。この拡張機能の導入状況、および導入リクエストの方法についての詳細はメタウィキの[[m:Special:MyLanguage/CampaignEvents/Deployment_status|CampaignEventsページ]]をご覧ください。
* iOS版ウィキペディアアプリに[[mw:Special:MyLanguage/Wikimedia Apps/iOS Suggested edits#Add an image|画像の追加]]機能が追加されました。この機能は、50回超の編集歴のある方が利用可能です。「規模は小さくても有益な編集」の手助けになるでしょう。
* MediaWikiコアの開発にお力添えいただき、誠にありがとうございます。昨年と比較し、[[mw:MediaWiki Product Insights/Contributor retention and growth|5パッチ超の貢献のある開発者の割合が25%増加しました]]。ウィキメディアプロジェクトのプラットフォームは、維持管理の面でこれらの貢献に大きく支えられています。
'''問題点'''
* ベクター (2022年版)外装のタブバーに表示される存在しない議論ページへのリンクが、赤色ではなく青色になっていた問題は[[phab:T367982|修正されました]]。
'''今後の予定'''
* 信頼と安全製品チームはツールやワークフローにできるだけ影響を与えずに[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|臨時アカウント]]を導入したいと考えています。ガジェットやユーザースクリプトのメンテナンス者を含む開発者は、臨時アカウントに対応できるようにツールの機能やコードを更新してください。チームは更新方法を説明する[[mw:Trust and Safety Product/Temporary Accounts/For developers|ドキュメントを作成しました]]。[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers/2024-04 CTA|詳細はこちら]]。
'''技術ニュース調査'''
* [https://wikimediafoundation.limesurvey.net/758713?lang=ja 技術ニュースの向上を目的とした短いアンケートにご協力ください]。様々な閲覧者のニーズにより良く応えることを目標にしています。このアンケートはあと1週間回答可能で、[https://foundation.wikimedia.org/wiki/Legal:Tech_News_Survey_2024_Privacy_Statement プライバシー声明]が適用されます。一部については、翻訳版も利用可能です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W28"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月8日 (月) 21:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27080357 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-29 ==
<section begin="technews-2024-W29"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/29|翻訳]]されています。
'''技術ニュースのアンケート'''
* [https://wikimediafoundation.limesurvey.net/758713?lang=ja 技術ニュースの向上を目的とした短いアンケートにご協力ください]。様々な閲覧者のニーズにより良く応えることを目標にしています。このアンケートはあと3日回答可能で、[https://foundation.wikimedia.org/wiki/Legal:Tech_News_Survey_2024_Privacy_Statement プライバシー声明]が適用されます。一部については、翻訳版も利用可能です。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] ウィキメディア財団は、ソフトウェアの開発プラットフォームとして引き続き[[mw:Special:MyLanguage/Gerrit|Gerrit]]と[[mw:Special:MyLanguage/GitLab|GitLab]]の両方をサポートすることを、6月24日付けで公式に決定しました。GerritとGitLabは、ウィキプロジェクトを構築するMediaWikiソフトウェアの開発、レビュー、展開に用いられているコードリポジトリで、編集者がコンテンツを作成し改善するためにも用いられています。この決定により、開発者の生産性が確保され、コードレビューにおける様々な異なるニーズへの対応が可能になります。詳細は[[mw:GitLab/Migration status|移行状況]]ページを参照してください。
* ウィキメディア財団は、[[m:Special:MyLanguage/Product and Technology Advisory Council/Proposal|製品・技術評議委員会]] (Product and Technology Advisory Council; PTAC) のメンバーを募集しています。このグループは技術系の貢献者とウィキメディア財団を結び、より強固で将来性のある技術プラットフォームを共同で定義することを目標としています。委員メンバーは、ウィキメディア運動の製品と技術活動を評価し、助言することで、複数世代にわたるプロジェクトの開発を支援します。評議委員会は、世界中のあらゆる地域・あらゆるウィキメディアプロジェクトからの技術者を歓迎します。[[m:Special:MyLanguage/Product and Technology Advisory Council/Proposal#Joining the PTAC as a technical volunteer|8月10日まで応募が可能です]]。
* Android版ウィキペディアアプリに[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Anti Vandalism|編集巡回]]機能が追加されました。この機能は、巻き戻し者権限を持つ利用者が使用可能で、最近の更新の新しいフィード、関連する取り消しや巻き戻しリンク、トークページ投稿用の固定メッセージ作成・保存機能などを備えています。巻き戻し者以外も当機能を開放する要望がご利用のウィキプロジェクトで出た場合、[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android#Contact us|開発チームへご連絡ください]]。[[diffblog:2024/07/10/ِaddressing-vandalism-with-a-tap-the-journey-of-introducing-the-patrolling-feature-in-the-mobile-app/|『ディフ』の公式ブログに当機能に関する詳細記事があります]]。
* [[m:Special:MyLanguage/The_Wikipedia_Library|ウィキペディア図書館]]へのアクセス権を持つ方は、SpringerLinksの非オープンアクセスコンテンツを再び利用することができるようになりました。これは、財団による[[phab:T368865|先方への交渉]]により実現しました。[[m:Tech/News/Recently_resolved_community_tasks|本件および先週対応が完了したコミュニティ提出の21件のタスクの詳細をこちらで確認できます]]。
'''今週の更新'''
* 今週、[[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-07 deployments|様々なウィキペディアプロジェクトでダークモードが使用可能になります]]。これは、デスクトップ版、モバイル版、ログイン利用者、IP利用者に関わらず全ての環境で使用できます。インターフェース管理者およびユーザースクリプトの開発者は、ガジェット及びスクリプトをダークモード環境下で使用した際、独自の色指定などがダークモードと競合しないかの確認をお願いします。[[mw:Special:MyLanguage/Recommendations for night mode compatibility on Wikimedia wikis|ダークモード互換に関する推奨事項]]もご確認ください。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 職員、ツールメンテナ、ソフトウェア開発チームの方々は、来週テストウィキで行われる[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|仮アカウント]]機能のテストにご参加ください。仮アカウントは、ユーザーのプライバシー向上を目的とした新機能です。ただし、各プロジェクトへの展開スケジュールは現時点では未確定です。[[mw:Talk:Trust and Safety Product/Temporary Accounts|この機能に関するご意見・ご質問をプロジェクトのトークページで受け付けています]]。 [https://phabricator.wikimedia.org/T348895]
* クロスウィキにファイルをアップロードされた経験のある方や、他者にその方法を指南した経験のある方は、ウィキメディア・コモンズにおける議論に是非ご参加ください。現在、コモンズコミュニティは、クロスウィキアップロード機能およびアップロードダイアログの機能の使用権限を自動承認利用者に制限することを検討しています。これは、当該機能を使いアップロードされたファイルが頻繁に著作権侵害を含んでいることに起因しています。本問題の要約は[[c:Special:MyLanguage/Commons:Cross-wiki upload|Commons:クロスウィキアップロード]]にて、議論は[[c:Commons:Village pump/Proposals#Deactivate cross-wiki uploads for new users|Commons:井戸端]]にて参照可能です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]'' [[m:Special:MyLanguage/Wikimedia Foundation Bulletin|ウィキメディア財団ニュースレター]]にてその他のニュースも入手可能です。
</div><section end="technews-2024-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月16日 (火) 01:31 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27124561 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-30 ==
<section begin="technews-2024-W30"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/30|翻訳]]されています。
<span lang="en" dir="ltr" class="mw-content-ltr">'''Feature News'''</span>
* スチュワードがアカウントを[[:m:Special:MyLanguage/Global_blocks|グローバルブロック]]できるようになりました。([[phab:T17294|変更前]]、グローバルブロックはIPアドレスとIPレンジのみを対象として指定可能でした。)アカウントのグローバルブロックは、対象ユーザーをログアウトさせたくない場合に有用です。なお、機能は似ているものの対象ユーザーを強制ログアウトさせる[[:m:Special:MyLanguage/Global_locks|グローバルロック]]は、今回の変更による影響を受けません(以降もそのまま使用できます)。新しいグローバルブロック機能は、非登録編集者のプライバシー向上を目指しIPアドレスを別名称に置換する、[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|仮アカウント]]プロジェクトの一部です。
* 今週中に、(「承認待ちの変更」で知られる)[[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevs]]のインタフェースが改善され、MediaWikiの他のインターフェースや[[mw:Special:MyLanguage/Codex|ウィキメディアのデザインシステム]]と一貫性があるかたちに修正されます。FlaggedRevsのインターフェースは、モバイル版および[[mw:Special:MyLanguage/Skin:MinervaNeue|Minervaスキン]]で一貫性がなかったため、WMF Growthチームとボランティア開発者によってこれが修正され、[[mw:Special:MyLanguage/Codex|Codex]]への移植が行われました。 [https://phabricator.wikimedia.org/T191156]
* ウィキメディアのサイト利用者は、[[m:Special:GlobalVanishRequest|GlobalVanishRequest]]にてアカウントの消去依頼ができるようになりました。この機能は、利用者が永久に編集を中止する場合に使用可能です。この操作を行うと、過去の編集履歴などを隠す助けとなり、プライバシーが保護されます。処理が完了すると、アカウントはロックされ名前が変更されます。 [https://phabricator.wikimedia.org/T367329]
* 携帯端末を使用してウィキペディアにおける荒らしの監視や対抗措置を講じたことがある方は、[https://diff.wikimedia.org/2024/07/10/%d9%90addressing-vandalism-with-a-tap-the-journey-of-introducing-the-patrolling-feature-in-the-mobile-app/ Diffブログにおけるモバイル版アプリのパトロール機能に関する記事]を是非ご覧ください。最近の更新フィードにおけるスワイプ機能や、利用者トークページ用の固定メッセージライブラリ機能について解説しています。
* <span lang="en" dir="ltr" class="mw-content-ltr">Wikimedia contributors and GLAM (galleries, libraries, archives, and museums) organisations can now learn and measure the impact Wikimedia Commons is having towards creating quality encyclopedic content using the [https://doc.wikimedia.org/generated-data-platform/aqs/analytics-api/reference/commons.html Commons Impact Metrics] analytics dashboard. The dashboard offers organizations analytics on things like monthly edits in a category, the most viewed files, and which Wikimedia articles are using Commons images. As a result of these new data dumps, GLAM organisation can more reliably measure their return on investment for programs bringing content into the digital Commons.</span> [https://diff.wikimedia.org/2024/07/19/commons-impact-metrics-now-available-via-data-dumps-and-api/]
<span lang="en" dir="ltr" class="mw-content-ltr">'''Project Updates'''</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Come share your ideas for improving the wikis on the newly reopened [[m:Special:MyLanguage/Community Wishlist|Community Wishlist]]. The Community Wishlist is Wikimedia’s forum for volunteers to share ideas (called wishes) to improve how the wikis work. The new version of the wishlist is always open, works with both wikitext and Visual Editor, and allows wishes in any language.</span>
<span lang="en" dir="ltr" class="mw-content-ltr">'''Learn more'''</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Have you ever wondered how Wikimedia software works across over 300 languages? This is 253 languages more than the Google Chrome interface, and it's no accident. The Language and Product Localization Team at the Wikimedia Foundation supports your work by adapting all the tools and interfaces in the MediaWiki software so that contributors in our movement who translate pages and strings can translate them and have the sites in all languages. Read more about the team and their upcoming work on [https://diff.wikimedia.org/2024/07/17/building-towards-a-robust-multilingual-knowledge-ecosystem-for-the-wikimedia-movement/ Diff].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">How can Wikimedia build innovative and experimental products while maintaining such heavily used websites? A recent [https://diff.wikimedia.org/2024/07/09/on-the-value-of-experimentation/ blog post] by WMF staff Johan Jönsson highlights the work of the [[m:Future Audiences#Objectives and Key Results|WMF Future Audience initiative]], where the goal is not to build polished products but test out new ideas, such as a [[m:Future_Audiences/Experiments: conversational/generative AI|ChatGPT plugin]] and [[m:Future_Audiences/Experiment:Add a Fact|Add a Fact]], to help take Wikimedia into the future.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]'' [[m:Special:MyLanguage/Wikimedia Foundation Bulletin|ウィキメディア財団ニュースレター]]にてその他のニュースも入手可能です。
</div><section end="technews-2024-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月23日 (火) 00:05 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27142915 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-31 ==
<section begin="technews-2024-W31"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/31|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Feature news</span>'''
* ヒンディー語やマニプリ語、東アラビア語など、数字にラテン文字以外の文字を使用する言語でビジュアルエディターを使用している編集者は、脚注番号のフォーマットが変更されていることにお気づきかもしれません。これは、新しいサブ・リファレンス機能の準備に伴うもので、また、ビジュアルエディターでの一般的なナンバリングの問題も修正されます。もしこの変更に関連する問題があなたのウィキで発生した場合、[[m:Talk:WMDE Technical Wishes/Sub-referencing|プロジェクトの議論ページ]]で詳細を共有してください。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Bugs status</span>'''
* 先週、一部のログイン利用者が一時的にページを編集したり読み込んだりすることができませんでした。[[phab:T370304|これらのエラー]]は、主に新しい[[mw:Special:MyLanguage/Help:Extension:Linter|linter]]ルールの追加によるもので、これによりキャッシュの問題を引き起こしたことで発生しました。現在は修正が適用されており、調査が続けられています。
* 利用者は[[mw:Special:MyLanguage/Trust and Safety Product/IP Info|IP情報ツール]]を使用して、IPアドレスに関する情報を手に入れることができます。このツールは、個人設定のベータ版機能に提供されています。このツールは先週、数日間利用ができませんでしたが、修正され、現在は利用できます。バグを報告してくださったShizhaoさんに感謝します。これについておよび先週解決された[[m:Tech/News/Recently resolved community tasks#2024-07-25|ほかの28個のタスク]]を読むことができます。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Project updates</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">There are new features and improvements to Phabricator from the Release Engineering and Collaboration Services teams, and some volunteers, including: the search systems, the new task creation system, the login systems, the translation setup which has resulted in support for more languages (thanks to Pppery), and fixes for many edge-case errors. You can [[phab:phame/post/view/316/iterative_improvements/|read details about these and other improvements in this summary]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">There is an [[mw:Special:MyLanguage/Extension:Chart/Project/Updates|update on the Charts project]]. The team has decided which visualization library to use, which chart types to start focusing on, and where to store chart definitions.</span>
* 新しいウィキが作成されました: [[d:Q9056|チェコ語]]版{{int:project-localized-name-group-wikivoyage}} ([[voy:cs:|<code>voy:cs:</code>]]) [https://phabricator.wikimedia.org/T370905]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Learn more</span>'''
* [[diffblog:2024/07/26/the-journey-to-open-our-first-data-center-in-south-america/|新しいウィキメディア財団データセンター]]がブラジルのサンパウロにつくられ、読み込み時間を短縮するのに役立たれています。
* <span lang="en" dir="ltr" class="mw-content-ltr">There is new [[diffblog:2024/07/22/the-perplexing-process-of-uploading-images-to-wikipedia/|user research]] on problems with the process of uploading images.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Commons Impact Metrics are [[diffblog:2024/07/19/commons-impact-metrics-now-available-via-data-dumps-and-api/|now available]] via data dumps and API.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The latest quarterly [[mw:Technical Community Newsletter/2024/July|Technical Community Newsletter]] is now available.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月29日 (月) 23:11 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27164109 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-32 ==
<section begin="technews-2024-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/32|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Feature news</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Two new parser functions will be available this week: <code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#dir|#dir]]<nowiki>}}</nowiki></code> and <code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#bcp47|#bcp47]]<nowiki>}}</nowiki></code>. These will reduce the need for <code>Template:Dir</code> and <code>Template:BCP47</code> on Commons and allow us to [[phab:T343131|drop 100 million rows]] from the "what links here" database. Editors at any wiki that use these templates, can help by replacing the templates with these new functions. The templates at Commons will be updated during the Hackathon at Wikimania.</span> [https://phabricator.wikimedia.org/T359761][https://phabricator.wikimedia.org/T366623]
* コミュニティは[[mw:Special:MyLanguage/Help:VisualEditor/FAQ#WPNS|既知の制限]]を理解していれば、議論系名前区間全体(''Wikipedia:''や''Wikisource:''など)でのビジュアルエディターの使用を有効化することを依頼できます。議論では、これらの名前空間で既に[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]を利用できます。
* 翻訳作業の [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3ATimeline-tracking-category&namespace=8 TranslateWiki]では、追跡カテゴリの「タイムラインを使用するページ」 "Pages using Timeline" を改名して「EasyTimeline拡張機能を使用するページ」も呼ぶことになりました。ローカルでカテゴリを自作したウィキでは、この変更に合わせてローカルの製作物の改名をお願いします。
'''プロジェクト更新'''
* ウィキプロジェクトや同様のウィキ上のコラボレーションの組織化に協力する利用者は、キャンペーンチームやプログラムチームにコラボレーションの成功例をぜひ共有してください。[[m:Special:MyLanguage/Campaigns/WikiProjects|簡単なアンケート]]に回答するか、[[m:Talk:Campaigns/WikiProjects|議論ページ]]で共有できます。チームは特に、英語版以外のウィキで成功したコラボレーションに興味があります。
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 新しいパーサーは、今後数カ月以内に{{int:project-localized-name-group-wikivoyage}}のウィキに展開されます。{{int:project-localized-name-enwikivoyage}}と{{int:project-localized-name-hewikivoyage}}では先週、Parsoidに切り替えられました。詳細は[[mw:Parsoid/Parser_Unification|Parsoid/Parser Unification]]にあります。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Learn more</span>'''
* 今週開かれるウィキマニアには、200件超のセッションが組まれています。[[diffblog:2024/08/05/interested-in-product-and-tech-here-are-some-wikimania-sessions-you-dont-want-to-miss/|主要セッションのうち 製品技術分野に関連するものをまとめておきました]]。
* 最新の[[m:Special:MyLanguage/Wikimedia Foundation Bulletin/2024/07-02|ウィキメディア財団ニュースレター]]をご覧いただけます。
* 旬刊(年4回発行)の [[mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2024/July|言語と国際化ニュースレター]]の最新号が出ました。内容は右に通り。 翻訳対象ページの新しい設計の見た目。ウィキリーダーに対応した機械翻訳機能 MinT とは。翻訳ダンプの展開について。他にも盛りだくさん。
* 四半期ごとに発行される[[mw:Special:MyLanguage/Growth/Newsletters/31|Growth ニュース]]の最新版をご覧いただけます。
* 月ごとに発行される[[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/July 2024|MediaWiki Product Insights newsletter]]の最新版をご覧いただけます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月5日 (月) 20:44 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27233905 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-32 ==
<section begin="technews-2024-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/32|翻訳]]されています。
'''機能の改変'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 今週、パーサ函数2件を新規に導入予定です:<code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#dir|#dir]]<nowiki>}}</nowiki></code> および <code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#bcp47|#bcp47]]<nowiki>}}</nowiki></code>。ウィキメディア・コモンズでは <code>Template:Dir</code> ならびに <code>Template:BCP47</code> の頻度を減らせるもので、「リンク元の記事」データベースから[[phab:T343131|除去できるのは 100 百万列]]にのぼる見込みです。コモンズのテンプレート類はウィキマニア会期中のハッカソンで作業の予定です。その他のウィキで活動する編集者には、これらのテンプレートが採用されている場合、既存のテンプレート類をこれら新規の函数と置換する作業をお願いします。 [https://phabricator.wikimedia.org/T359761][https://phabricator.wikimedia.org/T366623]
* コミュニティからビジュアル・エディターに関して、しばしば議論が発生する名前空間の全ページで有効化を依頼する場合は(たとえば接頭辞 ''Wikipedia:''や ''Wikisource:'' の名前空間で)、まず[[mw:Special:MyLanguage/Help:VisualEditor/FAQ#WPNS|既知の制限]]を理解してください。これらの名前空間では既に、議論用に[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]を導入済みです。
* 翻訳作業の [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3ATimeline-tracking-category&namespace=8 TranslateWiki]では、追跡カテゴリの「タイムラインを使用するページ」 "Pages using Timeline" を改名して「EasyTimeline拡張機能を使用するページ」と呼ぶことになりました。ローカルでカテゴリを自作したウィキでは、この変更に合わせてローカルの製作物の改名をお願いします。
'''プロジェクト更新'''
* ウィキプロジェクトや同様のウィキ上のコラボレーションの組織化に協力する利用者は、キャンペーンチームやプログラムチームにコラボレーションの成功例をぜひ共有してください。[[m:Special:MyLanguage/Campaigns/WikiProjects|簡単なアンケート]]に回答するか、[[m:Talk:Campaigns/WikiProjects|議論ページ]]で共有できます。チームは特に、英語版以外のウィキで成功したコラボレーションに興味があります。
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 新しいパーサーは、今後数カ月以内に{{int:project-localized-name-group-wikivoyage}}のウィキに展開されます。{{int:project-localized-name-enwikivoyage}}と{{int:project-localized-name-hewikivoyage}}では先週、Parsoidに切り替えられました。詳細は[[mw:Parsoid/Parser_Unification|Parsoid/Parser Unification]]にあります。
'''詳細はこちら'''
* 今週開かれるウィキマニアには、200件超のセッションが組まれています。[[diffblog:2024/08/05/interested-in-product-and-tech-here-are-some-wikimania-sessions-you-dont-want-to-miss/|主要セッションのうち 製品技術分野に関連するものをまとめておきました]]。
* 最新の[[m:Special:MyLanguage/Wikimedia Foundation Bulletin/2024/07-02|ウィキメディア財団ニュースレター]]をご覧いただけます。
* 旬刊(年4回発行)の [[mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2024/July|言語と国際化ニュースレター]]の最新号が出ました。内容は右に通り。 翻訳対象ページの新しい設計の見た目。ウィキリーダーに対応した機械翻訳機能 MinT とは。翻訳ダンプの展開について。他にも盛りだくさん。
* 四半期ごとに発行される[[mw:Special:MyLanguage/Growth/Newsletters/31|Growth ニュース]]の最新版をご覧いただけます。
* 製品関連の月刊情報「[[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/July 2024|MediaWiki Product Insights newsletter]]」の最新版をご覧いただけます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月6日 (火) 05:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27233905 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-33</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W33"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/33|Translations]] are available.
'''Feature news'''
* [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]] editors and maintainers can now [[mw:Special:MyLanguage/Extension:AbuseFilter/Actions#Show a CAPTCHA|make a CAPTCHA show if a filter matches an edit]]. This allows communities to quickly respond to spamming by automated bots. [https://phabricator.wikimedia.org/T20110]
* [[m:Special:MyLanguage/Stewards|Stewards]] can now specify if global blocks should prevent account creation. Before [[phab:T17273|this change]] by the [[mw:Special:MyLanguage/Trust and Safety Product|Trust and Safety Product]] Team, all global blocks would prevent account creation. This will allow stewards to reduce the unintended side-effects of global blocks on IP addresses.
'''Project updates'''
* [[wikitech:Help talk:Toolforge/Toolforge standards committee#August_2024_committee_nominations|Nominations are open on Wikitech]] for new members to refresh the [[wikitech:Help:Toolforge/Toolforge standards committee|Toolforge standards committee]]. The committee oversees the Toolforge [[wikitech:Help:Toolforge/Right to fork policy|Right to fork policy]] and [[wikitech:Help:Toolforge/Abandoned tool policy|Abandoned tool policy]] among other duties. Nominations will remain open until at least 2024-08-26.
* One new wiki has been created: a {{int:project-localized-name-group-wikipedia}} in [[d:Q2880037|West Coast Bajau]] ([[w:bdr:|<code>w:bdr:</code>]]) [https://phabricator.wikimedia.org/T371757]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/33|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W33"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月12日 (月) 23:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27253654 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-34 ==
<section begin="technews-2024-W34"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/34|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Feature news</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors who want to re-use references but with different details such as page numbers, will be able to do so by the end of 2024, using a new [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Sub-referencing in a nutshell|sub-referencing]] feature. You can read more [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|about the project]] and [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Test|how to test the prototype]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors using tracking categories to identify which pages use specific extensions may notice that six of the categories have been renamed to make them more easily understood and consistent. These categories are automatically added to pages that use specialized MediaWiki extensions. The affected names are for: [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Aintersection-category&namespace=8 DynamicPageList], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Akartographer-tracking-category&namespace=8 Kartographer], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Aphonos-tracking-category&namespace=8 Phonos], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Arss-tracking-category&namespace=8 RSS], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Ascore-use-category&namespace=8 Score], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Awikihiero-usage-tracking-category&namespace=8 WikiHiero]. Wikis that have created the category locally should rename their local creation to match. Thanks to Pppery for these improvements.</span> [https://phabricator.wikimedia.org/T347324]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Technical volunteers who edit modules and want to get a list of the categories used on a page, can now do so using the <code><bdi lang="zxx" dir="ltr">categories</bdi></code> property of <code><bdi lang="zxx" dir="ltr">[[mediawikiwiki:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Title objects|mw.title objects]]</bdi></code>. This enables wikis to configure workflows such as category-specific edit notices. Thanks to SD001 for these improvements.</span> [https://phabricator.wikimedia.org/T50175][https://phabricator.wikimedia.org/T85372]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Bugs status</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Your help is needed to check if any pages need to be moved or deleted. A maintenance script was run to clean up unreachable pages (due to Unicode issues or introduction of new namespaces/namespace aliases). The script tried to find appropriate names for the pages (e.g. by following the Unicode changes or by moving pages whose titles on Wikipedia start with <code>Talk:WP:</code> so that their titles start with <code>Wikipedia talk:</code>), but it may have failed for some pages, and moved them to <bdi lang="zxx" dir="ltr">[[Special:PrefixIndex/T195546/]]</bdi> instead. Your community should check if any pages are listed there, and move them to the correct titles, or delete them if they are no longer needed. A full log (including pages for which appropriate names could be found) is available in [[phab:P67388]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors who volunteer as [[mw:Special:MyLanguage/Help:Growth/Mentorship|mentors]] to newcomers on their wiki are once again able to access lists of potential mentees who they can connect with to offer help and guidance. This functionality was restored thanks to [[phab:T372164|a bug fix]]. Thank you to Mbch331 for filing the bug report. You can read about that, and 18 other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].</span>
'''プロジェクトの最新ニュース'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The application deadline for the [[m:Special:MyLanguage/Product and Technology Advisory Council/Proposal|Product & Technology Advisory Council]] (PTAC) has been extended to September 16. Members will help by providing advice to Foundation Product and Technology leadership on short and long term plans, on complex strategic problems, and help to get feedback from more contributors and technical communities. Selected members should expect to spend roughly 5 hours per month for the Council, during the one year pilot. Please consider applying, and spread the word to volunteers you think would make a positive contribution to the committee.</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Learn more</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:MyLanguage/Coolest Tool Award#2024 Winners|2024 Coolest Tool Awards]] were awarded at Wikimania, in seven categories. For example, one award went to the ISA Tool, used for adding structured data to files on Commons, which was recently improved during the [[m:Event:Wiki Mentor Africa ISA Hackathon 2024|Wiki Mentor Africa Hackathon]]. You can see video demonstrations of each tool at the awards page. Congratulations to this year's recipients, and thank you to all tool creators and maintainers.</span>
* [[m:Special:MyLanguage/Wikimedia Foundation Bulletin/2024/08-01|ウィキメディア財団ニュースレター]]の最新号が発行され、ウィキマニアのハイライトあれこれ、言語コミュニティの会議の予定やウィキメデイア運動から発信するその他のニュースが含まれています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W34"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月20日 (火) 00:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27307284 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-35</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W35"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/35|Translations]] are available.
'''Feature news'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Administrators can now test the [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] feature on test2wiki. This was done to allow cross-wiki testing of temporary accounts, for when temporary accounts switch between projects. The feature was enabled on testwiki a few weeks ago. No further temporary account deployments are scheduled yet. Temporary Accounts is a project to create a new type of user account that replaces IP addresses of unregistered editors which are no longer made public. Please [[mw:Talk:Trust and Safety Product/Temporary Accounts|share your opinions and questions on the project talk page]].
* Later this week, editors at wikis that use [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevs]] (also known as "Pending Changes") may notice that the indicators at the top of articles have changed. This change makes the system more consistent with the rest of the MediaWiki interface. [https://phabricator.wikimedia.org/T191156]
'''Bugs status'''
* Editors who use the 2010 wikitext editor, and use the Character Insert buttons, will [[phab:T361465|no longer]] experience problems with the buttons adding content into the edit-summary instead of the edit-window. You can read more about that, and 26 other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].
'''Project updates'''
* [[File:Octicons-gift.svg|12px|link=|class=skin-invert|Wishlist item]] Please review and vote on [[m:Special:MyLanguage/Community Wishlist/Focus areas|Focus Areas]], which are groups of wishes that share a problem. Focus Areas were created for the newly reopened Community Wishlist, which is now open year-round for submissions. The first batch of focus areas are specific to moderator workflows, around welcoming newcomers, minimizing repetitive tasks, and prioritizing tasks. Once volunteers have reviewed and voted on focus areas, the Foundation will then review and select focus areas for prioritization.
* Do you have a project and are willing to provide a three (3) month mentorship for an intern? [[mw:Special:MyLanguage/Outreachy|Outreachy]] is a twice a year program for people to participate in a paid internship that will start in December 2024 and end in early March 2025, and they need mentors and projects to work on. Projects can be focused on coding or non-coding (design, documentation, translation, research). See the Outreachy page for more details, and a list of past projects since 2013.
'''Learn more'''
* If you're curious about the product and technology improvements made by the Wikimedia Foundation last year, read [[diffblog:2024/08/21/wikimedia-foundation-product-technology-improving-the-user-experience/|this recent highlights summary on Diff]].
* To learn more about the technology behind the Wikimedia projects, you can now watch sessions from the technology track at Wikimania 2024 on Commons. This week, check out:
** [[c:File:Wikimania 2024 - Ohrid - Day 2 - Community Configuration - Shaping On-Wiki Functionality Together.webm|Community Configuration - Shaping On-Wiki Functionality Together]] (55 mins) - about the [[mw:Special:MyLanguage/Community Configuration|Community Configuration]] project.
** [[c:File:Wikimania 2024 - Belgrade - Day 1 - Future of MediaWiki. A sustainable platform to support a collaborative user base and billions of page views.webm|Future of MediaWiki. A sustainable platform to support a collaborative user base and billions of page views]] (30 mins) - an overview for both technical and non technical audiences, covering some of the challenges and open questions, related to the [[mw:MediaWiki Product Insights|platform evolution, stewardship and developer experiences]] research.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/35|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W35"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月26日 (月) 20:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27341211 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-36</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W36"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/36|Translations]] are available.
'''Weekly highlight'''
* Editors and volunteer developers interested in data visualisation can now test the new software for charts. Its early version is available on beta Commons and beta Wikipedia. This is an important milestone before making charts available on regular wikis. You can [[mw:Special:MyLanguage/Extension:Chart/Project/Updates|read more about this project update]] and help to test the charts.
'''Feature news'''
* Editors who use the [[{{#special:Unusedtemplates}}]] page can now filter out pages which are expected to be there permanently, such as sandboxes, test-cases, and templates that are always substituted. Editors can add the new magic word [[mw:Special:MyLanguage/Help:Magic words#EXPECTUNUSEDTEMPLATE|<code dir="ltr"><nowiki>__EXPECTUNUSEDTEMPLATE__</nowiki></code>]] to a template page to hide it from the listing. Thanks to Sophivorus and DannyS712 for these improvements. [https://phabricator.wikimedia.org/T184633]
* Editors who use the New Topic tool on discussion pages, will [[phab:T334163|now be reminded]] to add a section header, which should help reduce the quantity of newcomers who add sections without a header. You can read more about that, and {{formatnum:28}} other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].
* Last week, some Toolforge tools had occasional connection problems. The cause is still being investigated, but the problems have been resolved for now. [https://phabricator.wikimedia.org/T373243]
* Translation administrators at multilingual wikis, when editing multiple translation units, can now easily mark which changes require updates to the translation. This is possible with the [[phab:T298852#10087288|new dropdown menu]].
'''Project updates'''
* A new draft text of a policy discussing the use of Wikimedia's APIs [[m:Special:MyLanguage/API Policy Update 2024|has been published on Meta-Wiki]]. The draft text does not reflect a change in policy around the APIs; instead, it is an attempt to codify existing API rules. Comments, questions, and suggestions are welcome on [[m:Talk:API Policy Update 2024|the proposed update’s talk page]] until September 13 or until those discussions have concluded.
'''Learn more'''
* To learn more about the technology behind the Wikimedia projects, you can now watch sessions from the technology track at Wikimania 2024 on Commons. This week, check out:
** [[c:File:Wikimania 2024 - Ohrid - Day 2 - Charts, the successor of Graphs - A secure and extensible tool for data visualization.webm|Charts, the successor of Graphs - A secure and extensible tool for data visualization]] (25 mins) – about the above-mentioned Charts project.
** [[c:File:Wikimania 2024 - Ohrid - Day 3 - State of Language Technology and Onboarding at Wikimedia.webm|State of Language Technology and Onboarding at Wikimedia]] (90 mins) – about some of the language tools that support Wikimedia sites, such as [[mw:Special:MyLanguage/Content translation|Content]]/[[mw:Special:MyLanguage/Content translation/Section translation|Section Translation]], [[mw:Special:MyLanguage/MinT|MinT]], and LanguageConverter; also the current state and future of languages onboarding. [https://phabricator.wikimedia.org/T368772]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/36|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W36"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月3日 (火) 01:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27390268 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-37</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W37"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/37|Translations]] are available.
'''Feature news'''
* Starting this week, the standard [[mw:Special:MyLanguage/Extension:CodeMirror|syntax highlighter]] will receive new colors that make them compatible in dark mode. This is the first of many changes to come as part of a major upgrade to syntax highlighting. You can learn more about what's to come on the [[mw:Special:MyLanguage/Help:Extension:CodeMirror|help page]]. [https://phabricator.wikimedia.org/T365311][https://phabricator.wikimedia.org/T259059]
* Editors of wikis using Wikidata will now be notified of only relevant Wikidata changes in their watchlist. This is because the Lua functions <bdi lang="zxx" dir="ltr"><code>entity:getSitelink()</code></bdi> and <bdi lang="zxx" dir="ltr"><code>mw.wikibase.getSitelink(qid)</code></bdi> will have their logic unified for tracking different aspects of sitelinks to reduce junk notifications from [[m:Wikidata For Wikimedia Projects/Projects/Watchlist Wikidata Sitelinks Tracking|inconsistent sitelinks tracking]]. [https://phabricator.wikimedia.org/T295356]
'''Project updates'''
* Users of all Wikis will have access to Wikimedia sites as read-only for a few minutes on September 25, starting at 15:00 UTC. This is a planned datacenter switchover for maintenance purposes. More information will be published in Tech News and will also be posted on individual wikis in the coming weeks. [https://phabricator.wikimedia.org/T370962]
* Contributors of [[phab:T363538#10123348|11 Wikipedias]], including English will have a new <bdi lang="zxx" dir="ltr"><code>MOS</code></bdi> namespace added to their Wikipedias. This improvement ensures that links beginning with <bdi lang="zxx" dir="ltr"><code>MOS:</code></bdi> (usually shortcuts to the [[w:en:Wikipedia:Manual of Style|Manual of Style]]) are not broken by [[w:en:Mooré|Mooré]] Wikipedia (language code <bdi lang="zxx" dir="ltr"><code>mos</code></bdi>). [https://phabricator.wikimedia.org/T363538]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/37|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W37"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月9日 (月) 18:53 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27424457 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-38 ==
<section begin="technews-2024-W38"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/38|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Improvements and Maintenance</span>'''
* [[File:Octicons-gift.svg|12px|link=|class=skin-invert|要望リスト]] <span lang="en" dir="ltr" class="mw-content-ltr">Editors interested in templates can help by reading the latest Wishlist focus area, [[m:Special:MyLanguage/Community Wishlist/Focus areas/Template recall and discovery|Template recall and discovery]], and share your feedback on the talkpage. This input helps the Community Tech team to decide the right technical approach to build. Everyone is also encouraged to continue adding [[m:Special:MyLanguage/Community Wishlist|new wishes]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The new automated [[{{#special:NamespaceInfo}}]] page helps editors understand which [[mw:Special:MyLanguage/Help:Namespaces|namespaces]] exist on each wiki, and some details about how they are configured. Thanks to DannyS712 for these improvements.</span> [https://phabricator.wikimedia.org/T263513]
* <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:Special:MyLanguage/Help:Edit check#Reference check|References Check]] is a feature that encourages editors to add a citation when they add a new paragraph to a Wikipedia article. For a short time, the corresponding tag "Edit Check (references) activated" was erroneously being applied to some edits outside of the main namespace. This has been fixed.</span> [https://phabricator.wikimedia.org/T373692]
* <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible for a wiki community to change the order in which a page’s categories are displayed on their wiki. By default, categories are displayed in the order they appear in the wikitext. Now, wikis with a consensus to do so can [[m:Special:MyLanguage/Requesting wiki configuration changes|request]] a configuration change to display them in alphabetical order.</span> [https://phabricator.wikimedia.org/T373480]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Tool authors can now access ToolsDB's [[wikitech:Portal:Data Services#ToolsDB|public databases]] from both [[m:Special:MyLanguage/Research:Quarry|Quarry]] and [[wikitech:Superset|Superset]]. Those databases have always been accessible to every [[wikitech:Portal:Toolforge|Toolforge]] user, but they are now more broadly accessible, as Quarry can be accessed by anyone with a Wikimedia account. In addition, Quarry's internal database can now be [[m:Special:MyLanguage/Research:Quarry#Querying Quarry's own database|queried from Quarry itself]]. This database contains information about all queries that are being run and starred by users in Quarry. This information was already public through the web interface, but you can now query it using SQL.</span> <span lang="en" dir="ltr" class="mw-content-ltr">You can read more about that, and {{formatnum:20}} other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Any pages or tools that still use the very old CSS classes <bdi lang="zxx" dir="ltr"><code>mw-message-box</code></bdi> need to be updated. These old classes will be removed next week or soon afterwards. Editors can use a [https://global-search.toolforge.org/?q=mw-message-box®ex=1&namespaces=&title= global-search] to determine what needs to be changed. It is possible to use the newer <bdi lang="zxx" dir="ltr"><code>cdx-message</code></bdi> group of classes as a replacement (see [https://doc.wikimedia.org/codex/latest/components/demos/message.html#css-only-version the relevant Codex documentation], and [https://meta.wikimedia.org/w/index.php?title=Tech/Header&diff=prev&oldid=27449042 an example update]), but using locally defined onwiki classes would be best.</span> [https://phabricator.wikimedia.org/T374499]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Technical project updates</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Next week, all Wikimedia wikis will be read-only for a few minutes. This will start on September 25 at [https://zonestamp.toolforge.org/1727276400 15:00 UTC]. This is a planned datacenter switchover for maintenance purposes. [[m:Special:MyLanguage/Tech/Server switch|This maintenance process also targets other services.]]</span> <span lang="en" dir="ltr" class="mw-content-ltr">The previous switchover took 3 minutes, and the Site Reliability Engineering teams use many tools to make sure that this essential maintenance work happens as quickly as possible.</span> [https://phabricator.wikimedia.org/T370962]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Tech in depth</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The latest monthly [[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/August 2024|MediaWiki Product Insights newsletter]] is available.</span> <span lang="en" dir="ltr" class="mw-content-ltr">This edition includes details about: research about [[mw:Special:MyLanguage/Manual:Hooks|hook]] handlers to help simplify development, research about performance improvements, work to improve the REST API for end-users, and more.</span>
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">To learn more about the technology behind the Wikimedia projects, you can now watch sessions from the technology track at Wikimania 2024 on Commons. This week, check out:</span>
** [[c:File:Wikimania 2024 - Auditorium Kyiv - Day 4 - Hackathon Showcase.webm|ハッカソンのショーケース]](45 分) - ハッカソン参加者による合計19件の短い発表をまとめ、それぞれが取り組むプロジェクトの解説として、たとえば管理スクリプトの自動試験法、動画切り出し用のコマンドライン・ツールや、さまざまなツール用のインターフェース改善など。Phabricator タスクには[[phab:T369234|詳細とリンク類を掲載しています]]。
** [[c:File:Co-Creating a Sustainable Future for the Toolforge Ecosystem.webm|Toolforge エコシステムの持続可能な将来を共同で築く]] (40 分) - Toolforge のツール管理者と利用者、サポーター対象の円卓会議で、主題はこのプラットフォームを持続可能に保ち提供するツール類の評価方法とは。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月17日 (火) 00:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27460876 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-39 ==
<section begin="technews-2024-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/39|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Weekly highlight</span>'''
* どのウィキでも9月25日(水曜) [https://zonestamp.toolforge.org/1727276400 15:00 UTC] から数分間、[[m:Special:MyLanguage/Tech/Server switch|閲覧限定]]になる予定です。ウィキ類の閲覧に支障はありませんが、編集作業は停止します。ウィキメディア財団のサイト信頼性技術チームはこのように年に2回ずつ点検を実施して、自前のデータセンターのどれかに万一の事態が発生しても、ウィキ類の機能を保持するよう備えを整えています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Updates for editors</span>'''
[[File:Add alt text from a halfsheet, with the article behind.png|thumb|代替文おすすめ編集用のインターフェースの見た目]]
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors who use the iOS Wikipedia app in Spanish, Portuguese, French, or Chinese, may see the [[mw:Special:MyLanguage/Wikimedia Apps/iOS Suggested edits project/Alt Text Experiment|Alt Text suggested-edit experiment]] after editing an article, or completing a suggested edit using "[[mw:Special:MyLanguage/Wikimedia Apps/iOS Suggested edits project#Hypothesis 2 Add an Image Suggested Edit|Add an image]]". Alt-text helps people with visual impairments to read Wikipedia articles. The team aims to learn if adding alt-text to images is a task that editors can be successful with. Please share any feedback on [[mw:Talk:Wikimedia Apps/iOS Suggested edits project/Alt Text Experiment|the discussion page]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The Codex color palette has been updated with new and revised colors for the MediaWiki user interfaces. The [[mw:Special:MyLanguage/Design System Team/Color/Design documentation#Updates|most noticeable changes]] for editors include updates for: dark mode colors for Links and for quiet Buttons (progressive and destructive), visited Link colors for both light and dark modes, and background colors for system-messages in both light and dark modes.</span>
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible to include clickable wikilinks and external links inside code blocks. This includes links that are used within <code><nowiki><syntaxhighlight></nowiki></code> tags and on code pages (JavaScript, CSS, Scribunto and Sanitized CSS). Uses of template syntax <code><nowiki>{{…}}</nowiki></code> are also linked to the template page. Thanks to SD0001 for these improvements.</span> [https://phabricator.wikimedia.org/T368166]
* <span lang="en" dir="ltr" class="mw-content-ltr">Two bugs were fixed in the [[m:Special:MyLanguage/Account vanishing|GlobalVanishRequest]] system by improving the logging and by removing an incorrect placeholder message.</span> [https://phabricator.wikimedia.org/T370595][https://phabricator.wikimedia.org/T372223]
* <span lang="en" dir="ltr" class="mw-content-ltr">View all {{formatnum:25}} community-submitted {{PLURAL:25|task|tasks}} that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].</span>
'''技術系貢献者への情報更新'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">From [[m:Special:MyLanguage/Wikimedia Enterprise|Wikimedia Enterprise]]:</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">The API now enables 5,000 on-demand API requests per month and twice-monthly HTML snapshots freely (gratis and libre). More information on the updates and also improvements to the software development kits (SDK) are explained on [https://enterprise.wikimedia.com/blog/enhanced-free-api/ the project's blog post]. While Wikimedia Enterprise APIs are designed for high-volume commercial reusers, this change enables many more community use-cases to be built on the service too.</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">The Snapshot API (html dumps) have added beta Structured Contents endpoints ([https://enterprise.wikimedia.com/blog/structured-contents-snapshot-api/ blog post on that]) as well as released two beta datasets (English and French Wikipedia) from that endpoint to Hugging Face for public use and feedback ([https://enterprise.wikimedia.com/blog/hugging-face-dataset/ blog post on that]). These pre-parsed data sets enable new options for researchers, developers, and data scientists to use and study the content.</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">In depth</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The Wikidata Query Service (WDQS) is used to get answers to questions using the Wikidata data set. As Wikidata grows, we had to make a major architectural change so that WDQS could remain performant. As part of the [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS graph split|WDQS Graph Split project]], we have new SPARQL endpoints available for serving the "[https://query-scholarly.wikidata.org scholarly]" and "[https://query-main.wikidata.org main]" subgraphs of Wikidata. The [http://query.wikidata.org query.wikidata.org endpoint] will continue to serve the full Wikidata graph until March 2025. After this date, it will only serve the main graph. For more information, please see [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS backend update/September 2024 scaling update|the announcement on Wikidata]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月23日 (月) 23:37 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27493779 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-40 ==
<section begin="technews-2024-W40"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/40|翻訳]]されています。
'''編集者対象の情報更新'''
* ダークモードを利用できる[[phab:T375401|ウィキ42 件を追加]]しました。皆さんのウィキでログアウトした利用者が、まだこのモードを使えない状態の場合は、ダークモードではまだ多くのテンプレートが正しく表示できないことが原因かもしれません。問題点の解消に関心を持たれたら、[https://night-mode-checker.wmcloud.org/ ナイトモード用チェック・ツール]を使ってください。[[mw:Special:MyLanguage/Recommendations for night mode compatibility on Wikimedia wikis|推奨事項ページ]]には、これに関するガイダンスがあります。ダークモードは月間1回、使えるウィキを増やしていきます。
* 2010年版ウィキ文エディタを既定で使っている人は、URL末尾に <code dir=ltr>?veaction=editsource</code> と加筆すると、同2017年版の機能を利用できます。規定のエディタを2017年版にするには、[[Special:Preferences#mw-input-wpvisualeditor-newwikitext|各自の個人設定]]で切り替えてください。 [https://phabricator.wikimedia.org/T239796]
* <span lang="en" dir="ltr" class="mw-content-ltr">For logged-out readers using the Vector 2022 skin, the "donate" link has been moved from a collapsible menu next to the content area into a more prominent top menu, next to "Create an account". This restores the link to the level of prominence it had in the Vector 2010 skin. [[mw:Readers/2024 Reader and Donor Experiences#Donor Experiences (Key Result WE 3.2 and the related hypotheses)|Learn more]] about the changes related to donor experiences.</span> [https://phabricator.wikimedia.org/T373585]
* <span lang="en" dir="ltr" class="mw-content-ltr">The CampaignEvents extension provides tools for organizers to more easily manage events, communicate with participants, and promote their events on the wikis. The extension has been [[m:Special:MyLanguage/CampaignEvents/Deployment status|enabled]] on Arabic Wikipedia, Igbo Wikipedia, Swahili Wikipedia, and Meta-Wiki. [[w:zh:Wikipedia:互助客栈/其他#引進CampaignEvents擴充功能|Chinese Wikipedia has decided]] to enable the extension, and discussions on the extension are in progress [[w:es:Wikipedia:Votaciones/2024/Sobre la política de Organizadores de Eventos|on Spanish Wikipedia]] and [[d:Wikidata:Project chat#Enabling the CampaignEvents Extention on Wikidata|on Wikidata]]. To learn how to enable the extension on your wiki, you can visit [[m:Special:MyLanguage/CampaignEvents|the CampaignEvents page on Meta-Wiki]].</span>
* コミュニティが提出した{{PLURAL:22|タスク類}}のうち[[m:Tech/News/Recently resolved community tasks|先週の解決分]] {{formatnum:22}} 件に目を通してください。
'''技術系貢献者への情報更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Developers with an account on Wikitech-wiki should [[wikitech:Wikitech/SUL-migration|check if any action is required]] for their accounts. The wiki is being changed to use the single-user-login (SUL) system, and other configuration changes. This change will help reduce the overall complexity for the weekly software updates across all our wikis.</span>
'''掘り下げると'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:MyLanguage/Tech/Server switch|server switch]] was completed successfully last week with a read-only time of [[wikitech:Switch Datacenter#Past Switches|only 2 minutes 46 seconds]]. This periodic process makes sure that engineers can switch data centers and keep all of the wikis available for readers, even if there are major technical issues. It also gives engineers a chance to do maintenance and upgrades on systems that normally run 24 hours a day, and often helps to reveal weaknesses in the infrastructure. The process involves dozens of software services and hundreds of hardware servers, and requires multiple teams working together. Work over the past few years has reduced the time from 17 minutes down to 2–3 minutes.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/66ZW7B2MG63AESQVTXDIFQBDBS766JGW/]
'''ミーティングとイベント'''
* 10月4日–6日:[[m:Special:MyLanguage/WikiIndaba conference 2024|ウィキ・インダバ・カンファレンス併設のハッカソン]]の開催地は南アフリカのヨハネルブルグ。
* 11月4日–6日:[[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Fall 2024|MediaWiki 利用者・開発者カンファレンス2024年秋]]の開催地はオーストリアのウィーン
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月30日 (月) 22:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27530062 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-41</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W41"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/41|Translations]] are available.
'''Weekly highlight'''
* Communities can now request installation of [[mw:Special:MyLanguage/Moderator Tools/Automoderator|Automoderator]] on their wiki. Automoderator is an automated anti-vandalism tool that reverts bad edits based on scores from the new "Revert Risk" machine learning model. You can [[mw:Special:MyLanguage/Extension:AutoModerator/Deploying|read details about the necessary steps]] for installation and configuration. [https://phabricator.wikimedia.org/T336934]
'''Updates for editors'''
* Translators in wikis where [[mw:Special:MyLanguage/Content translation/Section translation#Try the tool|the mobile experience of Content Translation is available]], can now customize their articles suggestion list from 41 filtering options when using the tool. This topic-based article suggestion feature makes it easy for translators to self-discover relevant articles based on their area of interest and translate them. You can [https://test.wikipedia.org/w/index.php?title=Special:ContentTranslation&active-list=suggestions try it with your mobile device]. [https://phabricator.wikimedia.org/T368422]
* View all {{formatnum:12}} community-submitted {{PLURAL:12|task|tasks}} that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].
'''Updates for technical contributors'''
* It is now possible for <bdi lang="zxx" dir="ltr"><code><nowiki><syntaxhighlight></nowiki></code></bdi> code blocks to offer readers a "Copy" button if the <bdi lang="zxx" dir="ltr"><code><nowiki>copy=1</nowiki></code></bdi> attribute is [[mw:Special:MyLanguage/Extension:SyntaxHighlight#copy|set on the tag]]. Thanks to SD0001 for these improvements. [https://phabricator.wikimedia.org/T40932]
* Customized copyright footer messages on all wikis will be updated. The new versions will use wikitext markup instead of requiring editing raw HTML. [https://phabricator.wikimedia.org/T375789]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Later this month, [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] will be rolled out on several pilot wikis. The final list of the wikis will be published in the second half of the month. If you maintain any tools, bots, or gadgets on [[phab:T376499|these 11 wikis]], and your software is using data about IP addresses or is available for logged-out users, please check if it needs to be updated to work with temporary accounts. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers|Guidance on how to update the code is available]].
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Rate limiting has been enabled for the code review tools [[Wikitech:Gerrit|Gerrit]] and [[Wikitech:GitLab|GitLab]] to address ongoing issues caused by malicious traffic and scraping. Clients that open too many concurrent connections will be restricted for a few minutes. This rate limiting is managed through [[Wikitech:nftables|nftables]] firewall rules. For more details, see Wikitech's pages on [[Wikitech:Firewall#Throttling with nftables|Firewall]], [[Wikitech:GitLab/Abuse and rate limiting|GitLab limits]] and [[Wikitech:Gerrit/Operations#Throttling IPs|Gerrit operations]].
* Five new wikis have been created:
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q49224|Komering]] ([[w:kge:|<code>w:kge:</code>]]) [https://phabricator.wikimedia.org/T374813]
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q36096|Mooré]] ([[m:mos:|<code>m:mos:</code>]]) [https://phabricator.wikimedia.org/T374641]
** a {{int:project-localized-name-group-wiktionary}} in [[d:Q36213|Madurese]] ([[wikt:mad:|<code>wikt:mad:</code>]]) [https://phabricator.wikimedia.org/T374968]
** a {{int:project-localized-name-group-wikiquote}} in [[d:Q2501174|Gorontalo]] ([[q:gor:|<code>q:gor:</code>]]) [https://phabricator.wikimedia.org/T375088]
** a {{int:project-localized-name-group-wikinews}} in [[d:Q56482|Shan]] ([[n:shn:|<code>n:shn:</code>]]) [https://phabricator.wikimedia.org/T375430]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/41|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W41"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月7日 (月) 23:43 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27557422 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-42</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W42"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/42|Translations]] are available.
'''Updates for editors'''
* The Structured Discussion extension (also known as Flow) is starting to be removed. This extension is unmaintained and causes issues. It will be replaced by [[mw:Special:MyLanguage/Help:DiscussionTools|DiscussionTools]], which is used on any regular talk page. [[mw:Special:MyLanguage/Structured Discussions/Deprecation#Deprecation timeline|A first set of wikis]] are being contacted. These wikis are invited to stop using Flow, and to move all Flow boards to sub-pages, as archives. At these wikis, a script will move all Flow pages that aren't a sub-page to a sub-page automatically, starting on 22 October 2024. On 28 October 2024, all Flow boards at these wikis will be set in read-only mode. [https://www.mediawiki.org/wiki/Structured_Discussions/Deprecation][https://phabricator.wikimedia.org/T370722]
* WMF's Search Platform team is working on making it easier for readers to perform text searches in their language. A [[phab:T332342|change last week]] on over 30 languages makes it easier to find words with accents and other diacritics. This applies to both full-text search and to types of advanced search such as the <bdi lang="en" dir="ltr">''hastemplate''</bdi> and <bdi lang="en" dir="ltr">''incategory''</bdi> keywords. More technical details (including a few other minor search upgrades) are available. [https://www.mediawiki.org/wiki/User:TJones_%28WMF%29/Notes/Language_Analyzer_Harmonization_Notes#ASCII-folding/ICU-folding_%28T332342%29]
* View all {{formatnum:20}} community-submitted {{PLURAL:20|task|tasks}} that were [[m:Tech/News/Recently resolved community tasks|resolved last week]]. For example, [[mw:Special:MyLanguage/Help:Edit check|EditCheck]] was installed at Russian Wikipedia, and fixes were made for some missing user interface styles.
'''Updates for technical contributors'''
* Editors who use the Toolforge tool [[toolforge:copyvios|Earwig's Copyright Violation Detector]] will now be required to log in with their Wikimedia account before running checks using the "search engine" option. This change is needed to help prevent external bots from misusing the system. Thanks to Chlod for these improvements. [https://en.wikipedia.org/wiki/Wikipedia_talk:New_pages_patrol/Reviewers#Authentication_is_now_required_for_search_engine_checks_on_Earwig's_Copyvio_Tool]
* [[m:Special:MyLanguage/Phabricator|Phabricator]] users can create tickets and add comments on existing tickets via Email again. [[mw:Special:MyLanguage/Phabricator/Help#Using email|Sending email to Phabricator]] has been fixed. [https://phabricator.wikimedia.org/T356077]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Some HTML elements in the interface are now wrapped with a <code><nowiki><bdi></nowiki></code> element, to make our HTML output more aligned with Web standards. More changes like this will be coming in future weeks. This change might break some tools that rely on the previous HTML structure of the interface. Note that relying on the HTML structure of the interface is [[mw:Special:MyLanguage/Stable interface policy/Frontend#What is not stable?|not recommended]] and might break at any time. [https://phabricator.wikimedia.org/T375975]
'''In depth'''
* The latest monthly [[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/September 2024|MediaWiki Product Insights newsletter]] is available. This edition includes: updates on Wikimedia's authentication system, research to simplify feature development in the MediaWiki platform, updates on Parser Unification and MathML rollout, and more.
* The latest quarterly [[mw:Technical Community Newsletter/2024/October|Technical Community Newsletter]] is now available. This edition include: research about improving topic suggestions related to countries, improvements to PHPUnit tests, and more.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/42|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W42"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月14日 (月) 21:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27597254 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-43 ==
<section begin="technews-2024-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/43|翻訳]]されています。
'''今週のハイライト'''
* モバイルアプリ・チームよりiOS 版アプリの[[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Navigation Refresh#Phase 1: Creating a user Profile Menu (T373714)|更新]]により、ナビゲーションは App ストアからダウンロードする最新版に繁栄しました。プロフィール(Profile)という新しいメニューを追加、記事の閲覧画面で通知やウォッチリストなど編集機能をさっと開けるようになった点と、「寄付する」ボタンは閲覧者が使いやすい位置に移動しました。これは規模の大きな[[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Navigation Refresh|ナビゲーション刷新]]計画の一部であり、閲覧者優先で進めてきた iOS アプリを閲覧も編集もしやすなるようサポートを深めます。ウィキメディア財団ではボランティアの皆さんからこの数年の間に寄せられた要望に基づき、オンウィキの意思疎通において編集機能の追加とサポートを重ねています。
[[File:IOS App Navigation refresh first phase 05.png|thumb|プロフィールメニューと内容、ウィキペディアの iOS アプリ]]
'''編集者対象の更新'''
* ウィキペディアの読者の皆さんはブラウザ拡張機能をダウンロードすると、記事の閲覧お勧め、記事のまとめを自動生成、検索の機能改善など、機能導入を検討中の早期の発案を試験してみることができます。詳細情報を読むにはウェブチームの[[mw:Special:MyLanguage/Reading/Web/Content Discovery Experiments|コンテンツ発見実験ページ]](Content Discovery Experiments)を、更新情報を受信するには[[mw:Special:MyLanguage/Newsletter:Web team's projects|ニュースレターの購読]]をお勧めします。
* 10月末に向かって、[[phab:T376499|これら 12 件のウィキ]]ではログアウトした編集者に[[mw:Special:Mylanguage/Trust and Safety Product/Temporary Accounts|臨時アカウント]]の発行を始めます。当該の一覧は変更を見込んでおり - ウィキによっては対象から除外するかもしれない点と追加はない点があります。臨時アカウントは新規の[[mw:Special:MyLanguage/User account types|利用者アカウントの種別]]です。ログアウト編集者の個人情報保護、コミュニティ参加者との意思疎通の円滑化を目指します。対象のウィキ 12 件でツールやボット、ガジェット類の管理をされる皆さんは、そのソフトウェアがログアウト利用者の IP アドレスを参照している場合は、臨時アカウントへの対応が必要かどうかチェックをお願いします。[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers|コード更新のガイダンスがあります]]。詳細は[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|全ウィキへの導入計画]]をご一読ください。
* コミュニティが提出した{{PLURAL:33|タスク類}}のうち[[m:Tech/News/Recently resolved community tasks|先週の解決分]] {{formatnum:33}} 件に目を通してください。 <span lang="en" dir="ltr" class="mw-content-ltr">For example, the [[w:nr:Main Page|South Ndebele]], [[w:rsk:Главни бок|Pannonian Rusyn]], [[w:ann:Uwu|Obolo]], [[w:iba:Lambar Keterubah|Iban]] and [[w:tdd:ᥞᥨᥝᥴ ᥘᥣᥲ ᥖᥥᥰ|Tai Nüa]] Wikipedia languages were created last week.</span> [https://www.wikidata.org/wiki/Q36785][https://www.wikidata.org/wiki/Q35660][https://www.wikidata.org/wiki/Q36614][https://www.wikidata.org/wiki/Q33424][https://www.wikidata.org/wiki/Q36556]
* <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible to create functions on Wikifunctions using Wikidata lexemes, through the new [[f:Z6005|Wikidata lexeme type]] launched last week. When you go to one of these functions, the user interface provides a lexeme selector that helps you pick a lexeme from Wikidata that matches the word you type. After hitting run, your selected lexeme is retrieved from Wikidata, transformed into a Wikidata lexeme type, and passed into the selected function. Read more about this in [[f:Special:MyLanguage/Wikifunctions:Status updates/2024-10-17#Function of the Week: select representation from lexeme|the latest Wikifunctions newsletter]].</span>
'''技術系貢献者への情報更新'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Users of the Wikimedia sites can now format dates more easily in different languages with the new <code dir="ltr">{{[[mw:Special:MyLanguage/Help:Extension:ParserFunctions##timef|#timef]]:…}}</code> parser function. For example, <code dir="ltr"><nowiki>{{#timef:now|date|en}}</nowiki></code> will show as "<bdi lang="en" dir="ltr">{{#timef:now|date|en}}</bdi>". Previously, <code dir="ltr"><nowiki>{{#time:…}}</nowiki></code> could be used to format dates, but this required knowledge of the order of the time and date components and their intervening punctuation. <code dir="ltr">#timef</code> (or <code dir="ltr">#timefl</code> for local time) provides access to the standard date formats that MediaWiki uses in its user interface. This may help to simplify some templates on multi-lingual wikis like Commons and Meta.</span> [https://phabricator.wikimedia.org/T223772][https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:ParserFunctions##timef]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Commons and Meta users can now efficiently [[mw:Special:MyLanguage/Help:Magic words#Localization|retrieve the user's language]] using <code dir="ltr"><nowiki>{{USERLANGUAGE}}</nowiki></code> instead of using <code dir="ltr"><nowiki>{{int:lang}}</nowiki></code>.</span> [https://phabricator.wikimedia.org/T4085]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:MyLanguage/Product and Technology Advisory Council|Product and Tech Advisory Council]] (PTAC) now has its pilot members with representation across Africa, Asia, Europe, North America and South America. They will work to address the [[Special:MyLanguage/Movement Strategy/Initiatives/Technology Council|Movement Strategy's Technology Council]] initiative of having a co-defined and more resilient technological platform.</span> [https://meta.wikimedia.org/wiki/Movement_Strategy/Initiatives/Technology_Council]
'''掘り下げると'''
* 年4回発行の [[mw:Special:MyLanguage/Growth/Newsletters/32|Growth ニュースレター]]を発行しました。内容とは:新規参加者ホームページのコミュニティ更新モジュール、新規のコミュニティ設定のオプション、新規プロジェクトの詳細情報ほか。
* ウィキメディア財団では[[mw:Special:MyLanguage/Wikimedia Security Team#CNA Partnership| CVE プログラムの正式パートナー]]になり、サイバーセキュリティの公開済み脆弱性をカタログ化する国際的な取り組みに参加しました。セキュリティ・チームはこのパートナー関係により、[[w:en:Common Vulnerabilities and Exposures|共通脆弱性識別子とその露出]] (CVE) レコードという、当財団の管理下にあるその他のコードばかりかメディアウィキ・コアや拡張機能ならびに外装に影響するコードを即座に公開できるようになります。
* [[m:Special:MyLanguage/Community Wishlist|コミュニティ要望リスト]]では要望リストの内容に[[m:Community Wishlist/Updates#October 16, 2024: Conversations Made Easier: Machine-Translated Wishes Are Here!|機械翻訳の適用を試験中]]です。ボランティアの皆さんは要望を機械翻訳したものを閲覧し、翻訳者が内容の翻訳を終えるより以前に、議論に直行できます。
'''ミーティングとイベント'''
* 10月24日 - ウィキ教育講演者シリーズのウェビナー - [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/N4XTB4G55BUY3M3PNGUAKQWJ7A4UOPAK/ オープンソース技術:ウィキ教育ダッシュボードの構築]、パネル登壇はウィキメディアのインターン生とウェブ開発者(Wiki Education Speaker Series Webinar)。
* 2024年12月20–22日 - [[m:Special:MyLanguage/Indic Wikimedia Hackathon Bhubaneswar 2024|ウィキメディア・インド諸語ハッカソン・ブヴァネーシュヴァル大会2024]]をインドのオリッサ州で開催(Wikimedia Hackathon Bhubaneswar)。このハッカソンの目的はコミュニティに参加する開発者やデザイナー、コンテンツ編集者などが集まり、貢献者の経験向上を対象とした技術的ソリューションを構築することです。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月21日 (月) 20:53 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27634672 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-44</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W44"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/44|Translations]] are available.
'''Updates for editors'''
* Later in November, the Charts extension will be deployed to the test wikis in order to help identify and fix any issue. A security review is underway to then enable deployment to pilot wikis for broader testing. You can read [[mw:Special:MyLanguage/Extension:Chart/Project/Updates#October 2024: Working towards production deployment|the October project update]] and see the [https://en.wikipedia.beta.wmflabs.org/wiki/Charts latest documentation and examples on Beta Wikipedia].
* View all {{formatnum:32}} community-submitted {{PLURAL:32|task|tasks}} that were [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|resolved last week]]. For example, [[w:en:PediaPress|Pediapress.com]], an external service that creates books from Wikipedia, can now use [[mw:Special:MyLanguage/Wikimedia Maps|Wikimedia Maps]] to include existing pre-rendered infobox map images in their printed books on Wikipedia. [https://phabricator.wikimedia.org/T375761]
'''Updates for technical contributors'''
* Wikis can use [[:mw:Special:MyLanguage/Extension:GuidedTour|the Guided Tour extension]] to help newcomers understand how to edit. The Guided Tours extension now works with [[mw:Special:MyLanguage/Manual:Dark mode|dark mode]]. Guided Tour maintainers can check their tours to see that nothing looks odd. They can also set <code>emitTransitionOnStep</code> to <code>true</code> to fix an old bug. They can use the new flag <code>allowAutomaticBack</code> to avoid back-buttons they don't want. [https://phabricator.wikimedia.org/T73927#10241528]
* Administrators in the Wikimedia projects who use the [[mw:Special:MyLanguage/Help:Extension:Nuke|Nuke Extension]] will notice that mass deletions done with this tool have the "Nuke" tag. This change will make reviewing and analyzing deletions performed with the tool easier. [https://phabricator.wikimedia.org/T366068]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/44|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W44"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月28日 (月) 20:57 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27668811 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-45 ==
<section begin="technews-2024-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/45|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Updates for editors</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Stewards can now make [[m:Special:MyLanguage/Global blocks|global account blocks]] cause global [[mw:Special:MyLanguage/Autoblock|autoblocks]]. This will assist stewards in preventing abuse from users who have been globally blocked. This includes preventing globally blocked temporary accounts from exiting their session or switching browsers to make subsequent edits for 24 hours. Previously, temporary accounts could exit their current session or switch browsers to continue editing. This is an anti-abuse tool improvement for the [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|Temporary Accounts]] project. You can read more about the [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|progress on key features for temporary accounts]].</span> [https://phabricator.wikimedia.org/T368949]
* キャンペーン・イベント用の [[m:Special:MyLanguage/CampaignEvents/Deployment status|CampaignEvents 拡張機能を有効にした]]ウィキでは今後、共同作業用の [[m:Special:MyLanguage/Campaigns/Foundation Product Team/Event list#October 29, 2024: Collaboration List launched|Collaboration List]] 一覧機能を使えるようになります。これは投稿者がそれぞれのウィキにおいて、ウィキプロジェクト群の総体を簡単に把握できる新機能です。担当したキャンペーン・チームは[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2024-2025/Product %26 Technology OKRs#WE KRs|2024/25年次計画]]の一環としてこの企画に取り組みました。この CampaignEvents 拡張機能を皆さんのウィキにも導入したい場合は、[[m:Special:MyLanguage/CampaignEvents/Deployment status#How to Request the CampaignEvents Extension for your wiki|こちらの手順に従う]]もしくは補佐が必要なら User:Udehb-WMF と打ち合わせてください。
* 赤リンクを示す文字色は今週後半にわずかに色味を変え、ライトモードでコントラストを改善します。 [https://phabricator.wikimedia.org/T370446]
* コミュニティが提出した{{PLURAL:32|タスク類}}のうち[[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|先週の解決分]] {{formatnum:32}} 件に目を通してください。 たとえば 多言語対応のウィキ群では[[phab:T216368|今後]]、利用者がリンク元を示す特別ページ WhatLinksHere で翻訳版を非表示にできます。
'''技術系貢献者への情報更新'''
* XML [[m:Special:MyLanguage/Data dumps|データダンプ]]はバグ検証のため一時的に停止しました。 [https://lists.wikimedia.org/hyperkitty/list/xmldatadumps-l@lists.wikimedia.org/message/BXWJDPO5QI2QMBCY7HO36ELDCRO6HRM4/]
'''掘り下げると'''
* 仮アカウントを6件のウィキに導入しました(Temporary Accounts)。この[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|企画]]を信頼安全製品チームが完成させた(Trust and Safety Product team)ので、[[phab:T340001|実装の日程]]を確かめてください。仮リンクは来週以降、[[phab:T378336|他のプロジェクト7件]]でも使えるようになります。これらのウィキで活動中の皆さんでツールの統合に補佐を希望される場合は、担当の [[m:User:Udehb-WMF|User:Udehb-WMF]] に連絡をして打ち合わせ願います。
* 四半期ごとに発行される[[mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2024/October|言語と国際化ニュースレター]]の最新版をご覧いただけます。 掲載内容は次のとおり:翻訳用の translatewiki やメディアウィキで対応する言語が増えました。複数言語でキーボード入力欄の方法が変わりました。開催予定および直近で開いたミーティングの情報その他。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Meetings and events</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Fall 2024|MediaWiki Users and Developers Conference Fall 2024]] is happening in Vienna, Austria and online from 4 to 6 November 2024. The conference will feature discussions around the usage of MediaWiki software by and within companies in different industries and will inspire and onboard new users.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年11月4日 (月) 20:51 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27693917 のリストを使用して送信したメッセージ -->
3jrseqn4oznpxh42ifabnuio4vbpqhs
ガリア戦記/注解編/写本と校訂版
0
27746
263022
261324
2024-11-04T12:27:34Z
Linguae
449
/* おもな校訂者(校訂版)などの人名 */
263022
wikitext
text/x-wiki
{| id="toc" style="align:center;clear:all;" align="center" cellpadding="5"
|-
! style="background:#ccf; text-align:center;" | [[ガリア戦記/注解編|ガリア戦記 注解編]]
| style="background:#eef; text-align:center;" |
[[ガリア戦記 第1巻/注解|第1巻]] |
[[ガリア戦記 第2巻/注解|第2巻]] |
[[ガリア戦記 第3巻/注解|第3巻]] |
[[ガリア戦記 第4巻/注解|第4巻]] |
[[ガリア戦記 第5巻/注解|第5巻]] |
|}
『[[ガリア戦記]]』の主要な写本、参照したおもな校訂版や[[#クリティカル・アパラトゥスとその略号|アパラトゥス]]、校訂者や文献学者などを紹介する。
# [[#主要な写本]]
#* [[#写本の系図]]
# [[#クリティカル・アパラトゥスとその略号]]
#* [[#Editio princeps]]
# [[#校訂版]]
# [[#おもな校訂者(校訂版)などの人名]]
# [[#注釈書等]]
# [[#外部リンク]]
#* [[#オンライン注釈書等]]
== 主要な写本 ==
下表に、『ガリア戦記』の校訂に用いられる主要な写本を一覧する。用いられる写本は、<u>[[#クリティカル・アパラトゥスとその略号|アパラトゥス]]が詳しい</u> クロッツ(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Klotz</span>)とゼール(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Seel</span>)による<span style="font-size:13pt;">トイプナー叢書(<span style="font-family:Times New Roman;">[[w:la:Bibliotheca scriptorum Graecorum et Romanorum Teubneriana|Bibliotheca Teubneriana]]</span>)版 </span> および コンスタン(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Constans</span>)による<span style="font-size:13pt;">ビュデ叢書(<span style="font-family:Times New Roman;font-size:15pt;">[[w:la:Collection des Universités de France|Collection Budé]]</span>)版</span> でほぼ同じであるが、写本を示す略記号がいくらか異なるので、併記した。
{| class="wikitable" cellspacing=1
|- style="font-family:Times New Roman;"
! colspan="2" style="font-size:18pt;" |Bibliotheca Teubneriana
! rowspan="15" |
! colspan="2" style="font-size:18pt;" |Collection Budé
! rowspan="15"|
! colspan="2" |日本語説明<ref name="kunihara">『ガリア戦記』の写本の事情については、日本語では[[w:国原吉之助|國原吉之助]]訳 『ガリア戦記』 ([[w:講談社学術文庫|講談社学術文庫]]、1994年)の巻末解説を参照。</ref>
|-
!記号
! style="width:23em;" |写本説明 (ラテン語)
!記号
! style="width:23em;" |写本説明 (ラテン語・仏語)
! style="width:5em;" |写本名
! style="width:8em;" |所蔵図書館・登録番号、年代
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |A
| style="font-size:12pt;background-color:#ffd;" |codex Amstelodamensis 81 s. IX/X
! style="font-size:15pt;" |A
| style="font-size:12pt;background-color:#ffd;" |''Bongarsianus''. Amsterdam, 81. IX<sup>e</sup>-X<sup>e</sup> siècle.
!アムステ<br>ルダム本
| style="font-size:9pt;" |アムステルダム図書館蔵、81番、9~10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |Q
| style="font-size:13pt;background-color:#ffd;" |codex Parisinus<br> (olim Moysiacensis) Lat. 5056 s. XII
! style="font-size:15pt;color:#f55;" |M
| style="font-size:12pt;background-color:#ffd;" |''Moysiacensis''. Paris, [[w:fr:Bibliothèque nationale de France|Bibl. Nat.]], lat.5056. XII<sup>e</sup> siècle.
!パリ本
| style="font-size:9pt;" |パリ、[[w:フランス国立図書館|仏国立図書館]]蔵、5056番、12世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |B
| style="font-size:13pt;background-color:#ffd;" |codex Parisinus Lat. 5763 s. X
! style="font-size:15pt;" |B
| style="font-size:12pt;background-color:#ffd;" |''Parisinus''. Paris, [[w:fr:Bibliothèque nationale de France|Bibl. Nat.]], lat.5763. IX<sup>e</sup>-X<sup>e</sup> siècle.
!パリ本
| style="font-size:9pt;" |パリ、[[w:フランス国立図書館|仏国立図書館]]蔵、5763番、9~10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |C
| style="font-size:13pt;background-color:#ffd;" |codex Vossianus Leidensis 53 s. XI
| colspan="2"|
!ライデン本
| style="font-size:9pt;" |[[w:ライデン|ライデン]]、[[:c:Category:Leiden University Library|図書館蔵]]、53番、11世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |M
| style="font-size:13pt;background-color:#ffd;" |codex Vaticanus Lat. 3864 s. X
! style="font-size:15pt;color:#f55;" |R
| style="font-size:12pt;background-color:#ffd;" |''Romanus''. [[w:fr:Rome|Rome]], [[w:fr:Bibliothèque apostolique vaticane|Bibl. Vat.]], 3864. X<sup>e</sup> siècle.
!ヴァチカン本
| style="font-size:9pt;" |ローマ、[[w:バチカン図書館|バチカン図書館]]蔵、3864番、10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |S
| style="font-size:13pt;background-color:#ffd;" |codex Laurentianus<br> (olim Ashburnhamensis) R33 s. X
! style="font-size:15pt;" |S
| style="font-size:12pt;background-color:#ffd;" |''Ashburnhamianus''. [[w:fr:Florence|Florence]], [[w:fr:Bibliothèque Laurentienne|Bibl. Laur.]], Ashburn. R. 33. X<sup>e</sup> siècle.
!アッシュバ<br>ンハム本
| style="font-size:9pt;" |フィレンツェ、[[w:en:Laurentian Library|メディチ・ロレンツォ図書館]]蔵、R33番、10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |L
| style="font-size:13pt;background-color:#ffd;" |codex [[w:la:Museum Britannicum|musei Britannici]]<br> (olim Lovaniensis) Add. 10084 s. XI
! style="font-size:15pt;" |L
| style="font-size:12pt;background-color:#ffd;" |''Louaniensis''. [[w:fr:Londres|Londres]], [[w:fr:British Museum|Brit. Mus.]], Add. MSS. 10084. XI<sup>e</sup> siècle.
!大英博物館本
| style="font-size:9pt;" |ロンドン、[[w:大英博物館|大英博物館]]蔵、追加10084番、11世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |N
| style="font-size:13pt;background-color:#ffd;" |codex Neapolitanus IV c.11 s. XII/XIII
! style="font-size:15pt;" |N
| style="font-size:12pt;background-color:#ffd;" |''Neapolitanus''. [[w:fr:Naples|Naples]], [[w:fr:Biblioteca nazionale Vittorio Emanuele III|Bibl. Nat.]], IV, c. 11. XII<sup>e</sup> siècle.
!ナポリ本
| style="font-size:9pt;" |ナポリ、[[w:en:Biblioteca Nazionale Vittorio Emanuele III|国立図書館]]蔵、IV c.11番、12~13世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |T
| style="font-size:13pt;background-color:#ffd;" |codex Parisinus<br> (olim I.A.Thuani) Lat. 5764 s. XI
! style="font-size:15pt;" |T
| style="font-size:12pt;background-color:#ffd;" |''Thuaneus''. Paris, [[w:fr:Bibliothèque nationale de France|Bibl. Nat.]], lat. 5764. XI<sup>e</sup> siècle.
!トゥー本
| style="font-size:9pt;" |パリ、[[w:フランス国立図書館|仏国立図書館]]蔵、5764番、11世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |V
| style="font-size:13pt;background-color:#ffd;" |codex Vindobonensis 95 s. XII
! style="font-size:15pt;color:#f55;" |''f''
| style="font-size:12pt;background-color:#ffd;" |''Vindobonensis''. [[w:fr:Vienne (Autriche)|Vienne]], 95. XII<sup>e</sup> siècle.
!ウィーン本
| style="font-size:9pt;" |ウィーン、[[w:オーストリア国立図書館|国立図書館]]、95番、12世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |U
| style="font-size:13pt;background-color:#ffd;" |codex Vaticanus<br> (olim Fulvii Ursicini) Lat. 3324 s. XI/XII
! style="font-size:15pt;" |U
| style="font-size:12pt;background-color:#ffd;" |''Ursinianus''. [[w:fr:Rome|Rome]], [[w:fr:Bibliothèque apostolique vaticane|Bibl. Vat.]], 3324. XI<sup>e</sup> siècle.
!ウルシヌス本
| style="font-size:9pt;" |ローマ、[[w:バチカン図書館|バチカン図書館]]蔵、3324番、11~12世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |R
| style="font-size:13pt;background-color:#ffd;" |codex Laurentianus Riccardianus 541 s. XI/XII
! style="font-size:15pt;color:#f55;" |''l''
| style="font-size:12pt;background-color:#ffd;" |''Riccardianus''. [[w:fr:Florence|Florence]], [[w:fr:Bibliothèque Laurentienne|Bibl. Laur.]], Riccard. 541. XI<sup>e</sup>-XII<sup>e</sup> siècle.
!リッカルド本
| style="font-size:9pt;" |フィレンツェ、図書館蔵、541番、11~12世紀
|}
=== 写本の系図 ===
『ガリア戦記』に関する写本の系図理論は、20世紀においてはトイプナー版もビュデ版もおおむね同じである。以下、トイプナー版の記号を用いて系図にふれる。
{| class="wikitable"
|+
|-
! colspan="4" style="color:#f0f; font-family:Times New Roman;font-style:oblique;font-size:30pt;" |ω
|-
! colspan="2" style="color:#80f; font-family:Times New Roman;font-style:oblique;font-size:30pt;" |α
! colspan="2" style="color:#80f; font-family:Times New Roman;font-style:oblique;font-size:30pt;" |β
|-
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |χ
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |φ
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |π
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |ρ
|-
| style="font-family:Times New Roman;font-size:20pt;" |A · Q
| style="font-family:Times New Roman;font-size:20pt;" |B · M · S · L · N
| style="font-family:Times New Roman;font-size:20pt;" |T · V
| style="font-family:Times New Roman;font-size:20pt;" |U · R
|}
*<span style="color:#f0f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:30pt;">ω</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum omnium</span></span> : <span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">α</span>系と<span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">β</span>系、すなわち、主要写本のほぼ全てが一致していることを示す。ビュデ版などでは <span style="font-family:Times New Roman;font-style:oblique;font-size:13pt;">codd.</span> と記す。
**<span style="color:#80f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">α</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">χφ</span></span> : <span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">χ</span>系と<span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">φ</span>系の写本がほぼ一致していることを示す。
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">χ</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">AQ</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">A Q</span> が一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">A = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Amstelodamensis (''Bongarsianus'') 81</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">Q = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Parisinus (''Moysiacensis'') lat. 5056</span> :
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">φ</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">BCMSLN</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">B C M S L N</span> がおおむね一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">B = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Parisinus lat. 5763</span> :
****:<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">C = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vossianus Leidensis 53</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">M = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vaticanus (''Romanus'') 3864</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">S = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Laurentianus Ashburnhamensis (''Ashburnhamianus'') R. 33</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">L = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Lovaniensis Add. 10084</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">N = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Neapolitanus IV, c. 11</span> :
**<span style="color:#80f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">β</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">πρ</span></span> : <span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">π</span>系と<span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">ρ</span>系の写本がほぼ一致していることを示す。
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">π</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">TV</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">T V</span> が一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">T = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Parisinus (''Thuaneus'') lat. 5764</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">V = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vindobonensis 95</span> :
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">ρ</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">UR</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">U R</span> が一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">U = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vaticanus (''Ursinianus'') 3324</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">R = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex (Laurentianus) Riccardianus 541</span> :
*<span style="color:#090;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">'''ζ'''</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat recentiores codicum </span></span> : 上記の主要な諸写本よりも後代の写本を示す。
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;"></span>
== クリティカル・アパラトゥスとその略号 ==
クリティカル・アパラトゥス(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Critical apparatus|critical apparatus]]</span>) とは、テクストクリティーク(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Textual criticism|textual criticism]]</span>、[[w:本文批評|本文批評]]) についての注釈。古典作品のテキストにおける写本間の異同、校訂者による修正提案などを記したもの('''異読一覧''')。単に'''アパラトゥス'''とも呼ばれ、テキスト本文に対して、脚注欄に記されることが多い。以下に、よく使われる略号を挙げる<ref>「critical apparatus abbreviations」 等で検索すれば、詳しく知ることができる。</ref><ref>
例えば、[https://www.loebclassics.com/page/abbreviations/common-abbreviations Common Abbreviations Loeb Classical Library] 参照。</ref><ref>例えば、[http://nttextualcriticism.blogspot.com/2014/11/standard-apparatus-latin-symbols-and.html NT Textual Criticism Standard Apparatus Latin Symbols and Lingo] 参照。</ref><ref>例えば、[https://udallasclassics.org/wp-content/uploads/maurer_files/APPARATUSABBREVIATIONS.pdf COMMONEST ABBREVIATIONS, SIGNS, ETC](PDF) 参照。</ref><ref>例えば、[https://didattica.uniroma2.it/files/scarica/insegnamento/178380-Linguistica-Latina/66007-Abbreviazioni-apparato-critico-in-inglese Abbreviations_in_Apparatus_Critici_(Maurer) (12).pdf](PDF) を参照。</ref>
{| class="wikitable" cellspacing=1
|-
!略号
!ラテン語
!英訳
!和訳
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |add.
| style="font-size:15pt;" |addidit
| style="font-size:12pt;" |''added''
| style="font-size:10pt;" |付け加えた
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |cett.
| style="font-size:15pt;" |[[wikt:en:ceteri#Latin|ceteri]]
| style="font-size:12pt;" |''other manuscripts''
| style="font-size:10pt;" |他の(写本)は
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |cf.
| style="font-size:15pt;" |[[wikt:en:confer#Latin|confer]]
| style="font-size:12pt;" |''compare with'' ~
| style="font-size:10pt;" |~を比較・参照せよ
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |cod.<hr>codd.
| style="font-size:15pt;" |codex<hr>codices
| style="font-size:10pt;" |''MSS''<br> (''manuscripts'')
| style="font-size:10pt;" |写本は
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |corr.
| style="font-size:15pt;" |correctio,<br>correctiones
| style="font-size:12pt;" |''correction<br>(corrected)''
| style="font-size:10pt;" |修正(した)
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |corr. recc.
| style="font-size:13pt;" |correctiones recentiores
| style="font-size:12pt;" |''later correction(s)''
| style="font-size:10pt;" |より後代の修正
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |deest<hr>desunt
| style="font-size:15pt;" |deest<hr>desunt
| style="font-size:12pt;" |''(this word) is missing''<hr>''(these words) are missing''
| style="font-size:10pt;" |欠落している
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |def.
| style="font-size:15pt;" |defendit
| style="font-size:12pt;" |''defends,<br>defended''
| style="font-size:10pt;" |擁護した
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |del.
| style="font-size:15pt;" |delevit
| style="font-size:12pt;" |''deleted''
| style="font-size:10pt;" |削除した
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |dub.
| style="font-size:15pt;" |dubius<hr>dubiter
| style="font-size:12pt;" |''doubtful''<hr>''doubtfully''
| style="font-size:10pt;" |疑わしい
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |ed. pr.
| style="font-size:15pt;" |[[wikt:en:editio princeps|editio princeps,<br> editiones principes]]
| style="font-size:12pt;" |''the first printed edition(s)<br>( of a work previously only<br> published as manuscript)''
| style="font-size:10pt;" |最初の<br>印刷本<ref group="注"><span style="font-size:13pt;">『ガリア戦記』の最初の印刷本(Editio princeps)は、1469年に、<span style="font-style:oblique;">[[w:en:Giovanni Andrea Bussi|Giovanni Andrea Bussi]]</span> 編のものが、ローマで二人の印刷者 <span style="font-style:oblique;">[[w:en:Arnold Pannartz and Konrad Sweynheim|Arnold Pannartz & Konrad Sweynheim]]</span> によって印刷・刊行された([[w:en:Editio_princeps#Latin_works|Editio princeps]] 参照)。</span></ref>
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |edd.
| style="font-size:15pt;" |editores
| style="font-size:12pt;" |''editors''
| style="font-size:10pt;" |編者たち<br>(校訂者たち)
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |edd. recc.
| style="font-size:15pt;" |editores recentiores
| style="font-size:10pt;" |''lated editors'',<br>''lated editions''
| style="font-size:10pt;" |より後代の刊本
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |edd. vett.<hr>edd. vetust.
| style="font-size:15pt;" |editores veteres
| style="font-size:10pt;" |''old editors'',<br>''old editions''
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |m.<hr>man.
| style="font-size:15pt;" |manus
| style="font-size:10pt;" |''hand'' i.e. ''copyist''
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |marg.<hr>mg.
| style="font-size:15pt;" |in [[wikt:en:margine#Latin|margine]]
| style="font-size:12pt;" |''in the margin''
| style="font-size:10pt;" |欄外に
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |om.
| style="font-size:15pt;" |omittit,<br>omisit
| style="font-size:12pt;" |''omits'',<br>''omitted''
| style="font-size:10pt;" |省いた
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |recc.
| style="font-size:15pt;" |recentiores
| style="font-size:12pt;" |''later (MSS)''
| style="font-size:10pt;" |より後代の
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |secl.
| style="font-size:15pt;" |seclusit
| style="font-size:12pt;" |''has bracketed as corrupt''
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |sim.
| style="font-size:15pt;" |similia
| style="font-size:12pt;" |''similar (words)''
| style="font-size:10pt;" |
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |sc.
| style="font-size:15pt;" |scilicet
| style="font-size:12pt;" |''no doubt, certainly''
| style="font-size:10pt;" |疑いなく、確かに
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |sq.<hr>sqq.
| style="font-size:15pt;" |sequens<hr>sequentes
| style="font-size:12pt;" |''following (word(s))''
| style="font-size:10pt;" |引き続く(語)
|-
| colspan="3" |
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |
| style="font-size:15pt;" |
| style="font-size:12pt;" |
| style="font-size:10pt;" |
|}
===Editio princeps===
<span style="font-family:Times New Roman;font-style:normal;font-size:20pt;">[[w:la:Editio princeps|Editio princeps]]</span> (<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:en:Editio princeps|en: Editio princeps]]</span>) 最初の印刷本
<div style="width:55%;background-color:#ffd;"><references group="注" /></div>
<span style="font-family:Times New Roman;font-style:normal;font-size:25pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
== 校訂版 ==
== おもな校訂者(校訂版)などの人名 ==
===Aldus===
{{Wikipedia|アルドゥス・マヌティウス|アルドゥス}}
{{Wikipedia|アルド印刷所|アルド印刷所}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:en:Aldus Manutius|Aldus Manutius]] (1449/1452-1515)</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Ald.</span>) イタリア語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:it:Aldo Manuzio|Aldo Manuzio]]</span>
*:15世紀ルネサンスのヴェネツィアの古典学者で、印刷・出版業者。
*:カエサルなど、多くのギリシア・ラテンの書物を印刷・刊行した。
*:アルドゥス名義で[[w:アルド印刷所|アルド印刷所]]から発行された著作を含む。
:[[#Manutius]] も参照。
===Barwick===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Karl Barwick|Karl Barwick (1883-1965)]]</span> ドイツの古典文献学者。
*:'''著作''': <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Caesars Commentarii und das Corpus Caesarianum (1938)</span> <ref>[https://www.persee.fr/doc/rbph_0035-0818_1941_num_20_1_1604_t1_0135_0000_3 Barwick (Karl). Caesars Commentarii und das Corpus Caesarianum - Persée]</ref>
===Ciacconius===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Petrus Ciacconius <ref>[[w:fr:Pedro Chacón]] などを参照。</ref> (1525-1581)</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Ciacc.</span>) スペイン語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Pedro Chacón|Pedro Chacón]]</span>(ペドロ・チャコン)
*:16世紀、スペインの数学者・神学者、[[w:サラマンカ大学|サラマンカ大学]]ギリシア語教授。
*:著作:<span style="font-family:Times New Roman;">C. Julii Caesaris et Auli Hirtii quae extant omnia</span> <ref>[https://www.worldcat.org/title/c-julii-caesaris-et-auli-hirtii-quae-extant-omnia/oclc/65084468 C. Julii Caesaris et Auli Hirtii quae extant omnia (書籍, 1727) [WorldCat.org] ]</ref>
===Daehne===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Johann Christoph Daehne (1776-1832)</span> : ドイツの文献学者<ref>[http://www.worldcat.org/identities/viaf-273408152/ Daehne, Johann Christoph [WorldCat Identities] ] などを参照。</ref>。
**'''校訂版''': <span style="font-family:Times New Roman;font-size:13pt;">C. Iulii Caesaris Commentarii de bello Gallico et civili. Accedunt libri De bello Alexandrino, Africano et Hispaniensi</span> <ref>[https://www.worldcat.org/title/c-iulii-caesaris-commentarii-de-bello-gallico-et-civili-accedunt-libri-de-bello-alexandrino-africano-et-hispaniensi/oclc/64710439 WorldCat(64710439)]を参照。</ref> <ref>[https://www.worldcat.org/title/ci-caesaris-commentarii-de-bello-gallico-et-civili-accedunt-libri-de-bello-alexandrino-africano-et-hispaniensi-aulus-hirtius/oclc/312032194 WorldCat(312032194)]を参照。</ref> <ref>[https://www.worldcat.org/title/commentarii-de-bello-gallico-et-civili-accedunt-de-bello-alexandrino-africano-et-hispaniensi/oclc/887713890 WorldCat(887713890)]を参照。</ref>
===Davisius===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Iohannes Davisius|Iohannes Davisius (1567-1644)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Dav.</span>) 英語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:John Davies (Mallwyd)|John Davies]]</span> <!-- <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"> </span> -->
*:後期ルネサンス期ウェールズの指導的学者(文法学者・辞書編纂者・翻訳者)。
*:著作:<span style="font-family:Times New Roman;">C. Julii Caesaris et Auli Hirtii quae extant omnia</span> <ref>[https://www.worldcat.org/title/c-julii-caesaris-et-auli-hirtii-quae-extant-omnia/oclc/65084468? C. Julii Caesaris et Auli Hirtii quae extant omnia (書籍, 1727) [WorldCat.org] ]</ref><ref>[https://www.worldcat.org/title/c-julii-caesaris-et-auli-hirtii-quae-exstant-omnia-recensuit-ac-selectis-petri-ciacconii-francisci-hotomanni-joannis-brantii-dionysii-vossii-et-aliorum-notis-suas-addidit-joannes-davisius-accedunt-ejusdem-curae-secundae-nec-non-metaphrasis-graeca-librorum-vii-de-bello-gallico/oclc/221348502? WorldCat]</ref>)
===Dinter===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Bernardus Dinter ; </span> <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">''Gottlob Bernhard Dinter'' (1825-?)</span><ref name="Dinter1">[http://www.worldcat.org/identities/lccn-no2008015312/ Dinter, Gottlob Bernhard 1825- [WorldCat Identities] ]</ref> <ref name="Dinter2">[http://worldcat.org/identities/lccn-no2002109382/ Dinter, Bernhard 1825- [WorldCat Identities] ]</ref>
*:'''校訂版''': <span style="font-family:Times New Roman;">C. Iuli Caesaris Commentarii cum A. Hirti aliorumque supplentis. Recognovit Bernardus Dinter. Lipsiae, sumptibus et typis B. G. Teubneri, MDCCCLXXVI.</span> (トイプナー、1876年)
*:(WorldCat <ref name="Dinter1"/> <ref name="Dinter2"/> などを参照せよ。)
===Ernout===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Alfred Ernout|Alfred Ernout (1879-1973)]]</span> : フランスのラテン語の文献学者。
*:'''執筆記事''':<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">A. Ernout : Revue de Philologie 27, 1953, 192-202</span>
===Estienne===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Robert Estienne (1503-1559)
*:<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[#Stephanus (Estienne)]]</span> を見よ。
===Flodoardus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Flodoardus Remensis|Flodoardus Remensis (894-966)]]</span>(仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Flodoard|Flodoard de Reims]]</span>)
*:[[w:西フランク王国|西フランク王国]]の[[w:フランク人|フランク人]]で、[[w:カロリング朝|カロリング朝]]期の[[w:ランス (マルヌ県)|ランス]]正教会の聖職者・年代記作者・ラテン詩人。
===Frigell===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Andreas Frigell (1820-1897)</span>(略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Frig. ; </span>スウェーデン名<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:sv:Anders Frigell (latinist)|Anders Frigell]]</span>
*:スウェーデンの古典文献学者、[[w:ウプサラ大学|ウプサラ大学]]助教授。著作についてはWorldCat<ref>[http://www.worldcat.org/identities/lccn-no2004048330/ Frigell, A. 1820-1897 (Anders) [WorldCat Identities] ]</ref>等を参照。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris De bello gallico libri septem cum libro octavo A. Hirtii.</u>, Recensuit codices contulit commentationibus, Instruxit <u>Dr. Andreas Frigell</u>, in Reg. Acad. Upsal. Lingu. Lat. Dog., Upsalae, typis descripserunt edquist et socii, MDCCCLXI.</span> <ref>[https://www.worldcat.org/title/c-iulii-caesaris-de-bello-gallico-libri-septem-cum-libro-octavo-a-hirtii/oclc/556360202 C. Iulii Caesaris De bello gallico libri septem cum libro octavo A. Hirtii (電子書籍, 1861) [WorldCat.org] ]</ref>(1861年)
===Fuchs===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Harald Fuchs (Altphilologe)|Harald Fuchs (1900-1985)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Fu.</span>) ドイツの古典文献学者。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julius Caesar: <u>Commentarii Belli Gallici : cum A. Hirtii supplemento</u>, Huber, [[w:en:Frauenfeld|Frauenfeld]], 1944</span> <ref>[https://www.worldcat.org/title/commentarii-belli-gallici-cum-a-hirtii-supplemento/oclc/18460252 Commentarii Belli Gallici cum A. Hirtii supplemento (書籍, 1944) [WorldCat.org] ]</ref>
===Gertz===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Martin Clarentius Gertz (1844-1929)</span><ref>[[w:da:Martin Clarentius Gertz]], [[c:Category:Martin Clarentius Gertz]]</ref>
**19~20世紀デンマークの哲学者<ref>[http://worldcat.org/identities/lccn-n89640008/ Gertz, M. Cl [WorldCat Identities] ]</ref>。
===Glandorpius (Glandorp)===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Johannes Glandorpius</span>(独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Johann Glandorp|Johann Glandorp (1501-1564)]]</span>):ドイツの人文学者・教育者・プロテスタントの神学者<ref>[http://worldcat.org/identities/lccn-nr2002024524/ Glandorp, Johann 1501-1564 [WorldCat Identities] ]</ref><ref>[https://www.deutsche-biographie.de/sfz21096.html Deutsche Biographie - Glandorp, Johann]</ref><ref>[https://www.lagis-hessen.de/pnd/122523806 Hessische Biografie : Erweiterte Suche : LAGIS Hessen]</ref>。
**'''校訂版・注釈書''':
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julii Caesaris quae exstant : ex viri docti [J.J. Scaliger] accuratissima recognitione : accedit nunc vetus interpres Graecus librorum VII de bello Gallico, ex bibliotheca P. Petavii : praeterea notae, adnotationes, commentarii partim veteres, partim novi : adhaec indices rerum, et locorum utiles. ...</span><ref>[https://www.worldcat.org/title/c-julii-caesaris-quae-exstant-ex-viri-docti-jj-scaliger-accuratissima-recognitione-accedit-nunc-vetus-interpres-graecus-librorum-vii-de-bello-gallico-ex-bibliotheca-p-petavii-praeterea-notae-adnotationes-commentarii-partim-veteres-partim-novi-adhaec-indices-rerum-et-locorum-utiles/oclc/13596308 C. Julii Caesaris quae exstant : ex viri docti [J.J. Scaliger] accuratissima recognitione : accedit nunc vetus interpres Graecus librorum VII de bello Gallico, ex bibliotheca P. Petavii : praeterea notae, adnotationes, commentarii partim veteres, partim novi : adhaec indices rerum, et locorum utiles. ... (書籍, 1669) [WorldCat.org] </ref>
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><ref>[https://openlibrary.org/authors/OL4855318A/Johann_Glandorp Johann Glandorp | Open Library]</ref> <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Johannis Glandorpii Adnotationes doctiss. in C. Iulii Caes. et Hircii vel Oppii de bello Gallico, civili, Alexandrino, Africano & Hispaniensi commentariorum et derelictorum libros</span><ref>[https://openlibrary.org/works/OL11537855W/Johannis_Glandorpii_Adnotationes_doctiss._in_C._Iulii_Caes._et_Hircii_vel_Oppii_de_bello_Gallico_civ Johannis Glandorpii Adnotationes doctiss. in C. Iulii Caes. et Hircii vel Oppii de bello Gallico, civili, Alexandrino, Africano & Hispaniensi commentariorum et derelictorum libros (1564 edition) | Open Library]</ref><ref>[https://www.worldcat.org/title/johannis-glandorpii-adnotationes-doctiss-in-c-iulii-caes-et-hircii-vel-oppii-de-bello-gallico-civili-alexandrino-africano-hispaniensi-commentariorum-et-derelictorum-libros/oclc/221818490&referer=brief_results Johannis Glandorpii Adnotationes doctiss. in C. Iulii Caes. et Hircii vel Oppii de bello Gallico, civili, Alexandrino, Africano & Hispaniensi commentariorum et derelictorum libros (マイクロフォーム, 1564) [WorldCat.org] ]</ref>
===Gruter===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Janus Gruterus (1560-1627)</span> <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">; [[w:en:Jan Gruter|Jan Gruter (Gruytère)]]</span> : [[w:南ネーデルラント|南ネーデルラント]]出身の古典文献学者・司書。
===Heller===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Ludwig Heller (Philologe)|Ludwig Heller (1775/6-1826)]]</span> : ドイツの古典文献学者([[w:フリードリヒ・アレクサンダー大学エアランゲン=ニュルンベルク|エアランゲン大学]])。
===Holder===
===Holmes===
===Hotomanus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:de:Franciscus Hotomanus|Franciscus Hotomanus]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Hotm.</span> ; 仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:François Hotman|François Hotman (1524-1590)]]</span>)
*:フランスの法律家・著述家。
===Koller===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Rudolf Koller</span>
*:'''記 事''': <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Wien. Stud. 36(1914)143</span>
*:'''校訂版''': <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Commentarii de bello Gallico (1928, 1939)</span><ref>[https://www.worldcat.org/title/commentarii-de-bello-gallico-auswahl/oclc/720996262 [Commentarii] de bello Gallico Auswahl (書籍, 1928) [WorldCat.org] ]</ref> <ref>[https://www.zvab.com/Julius-Caesar-Bello-Gallico-Sammlung-lateinischer/16208788923/bd https--www.zvab.com-Julius-Caesar-Bello-Gallico-Sammlung-lateinischer-16208788923-bd]</ref>
===Kuebler===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Bernardus Kuebler</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Kue.</span> ; 独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Bernhard Kübler|Bernhard (Gustav Adolf) Kübler (1859-1940)]]</span>)
*:ドイツの古典文献学者、法制史家。著作多数(WorldCat<ref>[http://worldcat.org/identities/lccn-no2011013800/ Kübler, Bernhard 1859-1940 [WorldCat Identities] ]</ref>、Wikisource<ref>[[s:de:Bernhard Kübler]]</ref> を参照)。
**'''校訂版'''(『ガリア戦記』『内乱記』多数):
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris commentarii : cum A. Hirtii aliorumque supplementis 1, Commentarii de bello Gallico</u>, Lipsiae Teubner 1895</span><ref>[https://www.worldcat.org/title/c-iulii-caesaris-commentarii-cum-a-hirtii-aliorumque-supplementis-1-commentarii-de-bello-gallico/oclc/1198880100 C. Iulii Caesaris commentarii : cum A. Hirtii aliorumque supplementis 1, Commentarii de bello Gallico (書籍, 1895) [WorldCat.org] ]</ref>
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris Commentarii cum A. Hirtii aliorumque supplementis. Vol. 1, Commentarii de bello Gallico</u>, Lipsiae : in aedibus B. G. Teubneri, 1908.</span><ref>[https://www.worldcat.org/title/c-iulii-caesaris-commentarii-cum-a-hirtii-aliorumque-supplementis-vol-1-commentarii-de-bello-gallico/oclc/441845921 C. Iulii Caesaris Commentarii cum A. Hirtii aliorumque supplementis. Vol. 1, Commentarii de bello Gallico (書籍, 1908) [WorldCat.]</ref> ほか
===Kübler===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Bernhard Kübler|Bernhard Kübler]]</span> ⇒ <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[#Kuebler]]</span>
===Lipsius===
{{Wikipedia|ユストゥス・リプシウス|リプシウス}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Iustus Lipsius|Iustus Lipsius (1547-1606)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Lips.</span>)
*:現在のベルギーの人文学者・古典文献学者。[[w:フリードリヒ・シラー大学イェーナ|イエナ大学]]、[[w:ライデン大学|ライデン大学]](教授)、[[w:en:Old University of Leuven|ルーヴェン大学]]等で教鞭をとる。<br>タキトゥスやセネカの校訂で知られる<ref>[https://kotobank.jp/word/%E3%83%AA%E3%83%97%E3%82%B7%E3%82%A6%E3%82%B9-149298 リプシウスとは - コトバンク]</ref>
===Manutius===
{{Wikipedia|パウルス・マヌティウス|パウルス・マヌティウス}}
{{Wikipedia|アルド印刷所|アルド印刷所}}
*[[#Aldus]] [[w:アルドゥス・マヌティウス|アルドゥス・マヌティウス]] (<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:en:Aldus Manutius|Aldus Manutius]] 1449/1452-1515</span>) の後継者たち、特に息子の[[w:パウルス・マヌティウス|パウルス・マヌティウス]](<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Paulus Manutius|Paulus Manutius]]</span> 1512-1574)のことか。
*アルドゥスとその後継者たちは、1513年~1588年まで13回にわたってカエサルの『ガリア戦記』を印刷した。1571年の版は、アルドゥスの子パウルスが現役のときに、その息子アルドゥス2世によって印刷された<ref>[https://grolierclub.omeka.net/exhibits/show/aldus-manutius/paulus-manutius Paulus Manutius · Aldus Manutius: A Legacy More Lasting Than Bronze · Grolier Club Exhibitions]等を参照。</ref>。
===Meusel===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Henricus Meusel (1844-1916)</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Meu.</span> : 独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Heinrich Meusel|Heinrich Meusel]]</span> )
*:ドイツの古典文献学者。著作多数(<span style="font-family:Times New Roman;font-size:13pt;">WorldCat<ref>[http://worldcat.org/identities/lccn-no99006368/ Meusel, Heinrich 1844-1916 [WorldCat Identities] ]</ref>, Wikisource<ref>[[s:de:Heinrich Meusel]]</ref></span> 等を参照)。
**'''校訂版''':
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris Belli Gallici libri VII cum A. Hirtii liber VIII.</u> Recensuit apparatu critico instruxit Henricus Meusel, Berlin, Bertolini, W. Weber, 1894.</span><ref>[https://www.worldcat.org/title/c-iuli-caesaris-belli-gallici-libri-vii-cum-a-hirti-liber-viii/oclc/7620704 C. Iuli Caesaris Belli gallici libri VII cum A. Hirti liber VIII (書籍, 1894) [WorldCat.org] ]</ref>
===Mommsen===
{{Wikipedia|テオドール・モムゼン|モムゼン}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Theodorus Mommsen|Theodorus Mommsen (1817-1903)]]</span>(独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Theodor Mommsen|Theodor Mommsen]]</span>)
*:ドイツのローマ史家。1902年ノーベル文学賞受賞。
===Morus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Samuel Fridericus Nathanael Morus|Samuel Fridericus Nathanael Morus (1736-1792)]]</span>(独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Samuel Friedrich Nathanael Morus|Samuel Friedrich Nathanael Morus]]</span>)
*:ドイツの哲学者・神学者。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julii Caesaris de bello Gallico et civili; accedunt libri de bello Alexandrino, Africano et Hispaniensi; e recensione Oudendorpii. Curavit editionem (et adnotationes atque indicem adiecit) etc. S. F. N. M. Lipsiae, 1780</span>
===Nicasius===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Nicasius Ellebodius Casletanus</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Nicas.</span>)
*:<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Nicaise Ellebaudt|Nicaise Ellebaudt (1535-1577)]]</span> : 16世紀の[[w:フランドル伯|フランドル伯]]領出身の人文主義者。
===Nipperdey===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Carl Nipperdey|Carl Nipperdey (1821-1875)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Nipp.</span>) ドイツの古典文献学者。『ガリア戦記』の近代的な校訂版を初めて著した。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julii Caesaris Commentarii cum supplementis A. Hirtii et aliorum. Ex rec. Car. Nipperdeii (1847)</span>
===Oehler===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Franciscus Oehler (1817-1866)</span> (独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Franz Oehler (Öhler)</span>)
*:ドイツの古典文献学者、高校教員。著作については、WorldCat<ref>[http://worldcat.org/identities/lccn-no2007135649/ Oehler, Franz [WorldCat Identities] ]</ref>等を参照。
**'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris Commentarii : cum supplementis A. Hirtii et aliorum.</u>, Recognovit <u>Franciscus Oehler.</u>, Lipsiae., typis et sumptibus B. G. Teubneri. MDCCCLX.</span> (トイプナー、1860年)
**:※Amazon.co.jp<ref>Amazon.co.jp:ペーパーバック版([https://www.amazon.co.jp/C-Iulii-Caesaris-Commentarii-Supplementis/dp/B009JU6ONY C. Iulii Caesaris Commentarii Cum Supplementis A. Hirti Et Aliorum Caesar, Julius, Oehler, Franz])およびハードカバー版。</ref>、Googleブックス<ref>Googleブックスで「C. Iulii Caesaris Commentarii Franz Oehler」で検索せよ。</ref>等で購入・閲覧ができる。
===Orosius===
{{Wikipedia|オロシウス|オロシウス}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Orosius|Paulus Orosius]]</span>(略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Oros.</span>:英 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Orosius|Orosius]] 375/385-420</span>頃)
**4~5世紀頃の現在のスペイン出身のキリスト教の司祭、著述家・史家<ref>[https://kotobank.jp/word/%E3%82%AA%E3%83%AD%E3%82%B7%E3%82%A6%E3%82%B9-41771 オロシウスとは - コトバンク] などを参照。</ref>。
**著作『異教徒に反論する歴史』全7巻(<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Historiae adversum paganos|Historiae adversum paganos]]</span>)の6巻7章10節が参照されている。
===Oudendorp===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Franciscus Oudendorpius</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Oud.</span>) <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Frans van Oudendorp|Frans van Oudendorp (1696-1761)]]</span> オランダの文献学者、[[w:ライデン大学|ライデン大学]]教授。
**'''校訂版''': <span style="font-family:Times New Roman;font-size:13pt;">C. Julii Caesaris Commentarii de bello Gallico et Civili: Accedunt libri De bello Alexandrino, Africano, et Hispaniensi</span>
**: WorldCat <ref>[http://worldcat.org/identities/lccn-n94091268/ Oudendorp, Frans van 1696-1761 [WorldCat Identities] ]</ref>, Vaif.org<ref>[https://viaf.org/viaf/37257920/ viaf.org(37257920)]</ref> などを参照せよ。
===Plutarchus===
{{Wikipedia|プルタルコス|プルタルコス}}
{{Wikipedia|対比列伝|対比列伝}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Plutarchus|Plutarchus (Πλούταρχος)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Plut.</span>:英 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Plutarch|Plutarch]] 46-122</span>頃)
*:プルータルコス:帝政ローマ期のギリシア人著述家・伝記作家<ref>[https://kotobank.jp/word/%E3%83%97%E3%83%AB%E3%82%BF%E3%83%AB%E3%82%B3%E3%82%B9-127292 プルタルコスとは - コトバンク] などを参照。</ref>。
**著作『[[w:対比列伝|対比列伝]]』(希 <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Βίοι παράλληλοι,</span> 羅 <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Vitae parallelae|Vitae parallelae]]</span>)のうち、
***『カエサル伝』(羅 <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:Vita Iulii Caesaris (Plutarchus)la:|Vita Iulii Caesaris]]</span>, 英 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Parallel Lives|Parallel Lives]]</span>)
::などが、『ガリア戦記』の校訂においても重要な史料としてしばしば参照されている。
<!--
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:|]]</span>
-->
===Rhenanus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Beatus Rhenanus|Beatus Rhenanus (1485-1547)]]</span> (独語名も <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:de:Beatus Rhenanus|Beatus Rhenanus]]</span>) ドイツの人文主義者・古典学者・宗教改革者。
===Rösch (Roesch)===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Jakob Friedrich von Rösch (Roesch)(1743-1841)</span><ref>[[w:de:Jakob Friedrich Rösch]]</ref><ref>[https://www.worldcat.org/title/commentar-uber-die-commentarien-des-caesar-als-eine-beantwortung-der-remarques-sur-cesar-des-hernn-general-major-von-w-nebst-beitraegen-zur-roemischen-taktik/oclc/759572811&referer=brief_results Commentar über die Commentarien des Caesar : als eine Beantwortung der Remarques sur Cesar des Hernn General-Major von W. ; nebst Beitraegen zur Roemischen Taktik (書籍, 1783) [WorldCat.org] ]の著者を参照。</ref>
*:18~19世紀・ドイツの数学者・軍事科学者・歴史家・建築家。古代史や芸術史の出版を行なっている。この人物であろう。
:※ <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Pontet</span> は <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Rösch</span> 、<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Constans, Seel</span> は <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Roesch</span> と表記して引用。
::[[ガリア戦記 第2巻/注解/17節|『ガリア戦記』第2巻17節]]など。
===R.Schneider===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Rudolf Schneider (Historiker)|Rudolf Schneider (1852-1911)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">RSchn.</span>) ドイツの軍事史家。
*:'''著作集''':<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[s:de:Rudolf Schneider]]</span>
===Scaliger===
{{Wikipedia|ジュール・セザール・スカリジェ|スカリジェ}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Iulius Caesar Scaliger|Iulius Caesar Scaliger (1484-1558)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Scal.</span> :仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Jules César Scaliger|Jules César Scaliger]]</span>)
*:イタリア出身のフランスの人文主義者・医師。
===Schiller===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Hermann Schiller|Hermann Schiller (1839-1902)]]</span>
*:ドイツの教育者。文法学校長、のちに[[w:ユストゥス・リービッヒ大学ギーセン|ギーセン大学]]教授。<br> 『ローマ帝国史』(三部構成、全2巻)の著者。 『ガリア戦記』の校訂者ではない。
*:'''著作''': <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">''Geschichte der Römischen Kaiserzeit''. 2 Bände in 3 Teilen. Perthes, Gotha 1883/1887.</span><ref>[https://www.worldcat.org/title/geschichte-der-romischen-kaiserzeit/oclc/781989391 Geschichte der römischen Kaiserzeit (書籍, 1883) [WorldCat.org] ]</ref>
===Spillmann===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Emil Spillmann</span>
*:<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Caesariana, by Emil Spillmann (St. Gallen, 1878)</span> の著者。
===Stephanus (Estienne)===
{{Wikipedia|ロベール・エティエンヌ|ロベール・エティエンヌ}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Robertus Stephanus</span>(仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Robert Estienne|Robert Estienne (1503-1559)]]</span>; [[w:en:Robert Estienne|en]])
*:16世紀フランスの古典学者・印刷業者
===Vascosanus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Michael Vascosanus</span>(仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Michel de Vascosan|Michel de Vascosan (1500-1576/77)]]</span> )
*:16世紀フランスの司書・印刷業者<ref>[http://worldcat.org/identities/lccn-nr95024401/ Vascosan, Michel de -approximately 1577 [WorldCat Identities] ]</ref><ref>[https://portail.biblissima.fr/ark:/43093/pdatac02439a6e1fbf35c63e1c29d7cf7a29f4001ed1a Michel de Vascosan (1500-1577) Biblissima] </ref><ref>[https://viaf.org/viaf/27118843/ 27118843 - VIAF]</ref>。
===Whitte===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Hans Kofod Whitte (1810-1894)</SPAN>
*:19世紀デンマークの古典学者・高校教師<ref>[https://www.ancestry.com/genealogy/records/hans-kofod-whitte-24-6l20z1 Hans Kofod Whitte, b.1810 d.1894 - Ancestry®]</ref>。1886年に『ガリア戦記』の注釈書を著わしている。
;著作 <ref>[https://onlinebooks.library.upenn.edu/webbin/book/lookupname?key=Whitte%2C%20Hans%20Kofod%2C%201810%2D1894 Whitte, Hans Kofod, 1810-1894 | The Online Books Page]</ref>
# Collatio codicum II havniensium cum editione elberlingiana G. Julii Caesaris Commenttt. (B. Lunos, 1847) <ref>[https://catalog.hathitrust.org/Record/001724964 Catalog Record: Collatio codicum II havniensium cum editione... | HathiTrust Digital Library]</ref>
# Gaji Julii Caesaris De bello gallico commentariorum libri septem et octavus A. Hirtii; in usum scholarum (Impensis librariae Gyldendalianae (F. Hegel & fil), 1886)<ref>[https://catalog.hathitrust.org/Record/006540375 Catalog Record: Gaji Julii Caesaris De bello gallico... | HathiTrust Digital Library]</ref>
===Zeuss===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Johann Kaspar Zeuß|Johann Kaspar Zeuß (Zeuss)(1806-1856)]]</span>
**ドイツの文献学者・史家で、ケルト文献学の創始者。
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
==注釈書等==
:[[#オンライン注釈書等]]も参照。
== 脚注 ==
{{Reflist}}
== 関連項目 ==
*<span style="background-color:#ffd;">[[ガリア戦記/注解編]] {{進捗|00%|2020-03-27}}</span>
*<span style="background-color:#ffd;">[[ガリア戦記/用例集]] {{進捗|00%|2020-03-29}}</span>
== 外部リンク ==
===オンライン注釈書等===
<div style="background-color:#eeeeee;">
====Caesar's Gallic war : notes by F. W. Kelsey (1897)====
:C. Iuli Caesaris De bello gallico libri VII :
::Caesar's Gallic war : with an introduction, notes, and vocabulary
::: by [[w:en:Francis Kelsey|Francis Willey Kelsey (1858-1927)]], Fifteenth Edition (1897)
:::: (HathiTrust Digital Library [[w:ハーティトラスト|ハーティトラスト・デジタルライブラリ]]で電子化)
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=19 Contents] (#19)
;:─TEXT─
:: '''Book 1''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=77 Commentarius Primus] (#77)
:: '''Book 2''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=119 Commentarius Secundus] (#119)
:: '''Book 3''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=144 Commentarius Tertius] (#144)
:: '''Book 4''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=162 Commentarius Quartus] (#162)
:: '''Book 5''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=186 Commentarius Quintus] (#186)
:: '''Book 6''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=219 Commentarius Sextus] (#219)
:: '''Book 7''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=243 Commentarius Septimus] (#243)
;:─NOTES─
:: '''Book 1''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=307 Book I.] (#307) ; [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=332 The Campaign against Ariovistus] (#322)
:: '''Book 2''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=332 Book II.] (#332)
:: '''Book 3''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=380 Book III.] (#380)
:: '''Book 4''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=395 Book IV.] (#395)
:: '''Book 5''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=416 BOOK V.] (#416)
:: '''Book 6''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=441 BOOK VI.] (#441)
:: '''Book 7''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=460 BOOK VII.] (#460)
:::: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=494 The Routes of Caesar] (#494)
:::: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=495 On the Study of Caesar] (#495)
:::: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=497 Helps to the Study of Caesar] (#497)
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=499 Idioms and Phrases] (#499), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=506 #506], [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=507 #507], [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=508 #508]
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=515 Vocabulary] (#515); [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=517 Vocabulary A] (#517), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=529 B], ~ , [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=635 V].
</div>
<div style="background-color:#eeeeee;">
====Caesar's Gallic war : edited by F. W. Kelsey (1903)====
:C. Iulii Caesaris Commentarii rerum gestarum.
::Caesar's Commentaries: the Gallic war, books I-Iv, with selections from books V-VII and from the civil war;
:::with an introduction, notes, a companion to Caesar and a vocabulary,
:::: by [[w:en:Francis Kelsey|Francis Willey Kelsey (1858-1927)]], Fifteenth Edition (1897)
::::: (HathiTrust Digital Library [[w:ハーティトラスト|ハーティトラスト・デジタルライブラリ]]で電子化)
*[https://catalog.hathitrust.org/Record/000441877 Catalog Record: C. Iulii Caesaris Commentarii rerum gestarum....] (HathiTrust Digital Library)
</div>
====Harkness, Albert (1889)====
<span style="font-family:Times New Roman;font-style:normal;"><span style="font-size:15pt;">Caesar's Commentaries on the Gallic War, </span><span style="font-size:13pt;">with notes, dictionary, and a map of Gaul.</span><br> <span style="font-size:15pt;">
edited by <u>[[w:en:Albert Harkness|Albert Harkness (1822-1907)]]</u> <ref>[http://onlinebooks.library.upenn.edu/webbin/book/lookupname?key=Harkness%2C%20Albert%2C%201822%2D1907 Harkness, Albert, 1822-1907 | The Online Books Page]</ref>, New York, [[w:en:D. Appleton & Company|D. Appleton and Company]], 1889 (Rivised Edition)</span></span>
::Caesar's commentaries on the Gallic war; with notes, dictionary, ... (Full View | HathiTrust Digital Library)
; BOOK FIRST
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=273 #273]
; BOOK SECOND
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=316 #316]
; BOOK THIRD
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=331 #331]
; BOOK FOURTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=341 #341]
; BOOK FIFTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=354 #354]
; BOOK SIXTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=365 #365]
; BOOK SEVENTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=373 #373]
; DICTIONARY
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=387 #387]
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<pre>
</pre>
===そのほか===
*[https://archive.org/ archive.org/] ([[w:インターネットアーカイブ|Internet Archive]])
**[https://archive.org/details/commentariidebel00caesuoft/page/n7/mode/2up Commentarii de bello Gallico et civili; accedunt libri de bello Alexandrino, Africano, et Hespaniensi; : Caesar, Julius : Free Download, Borrow, and Streaming : Internet Archive]
[[Category:ガリア戦記|*#]]
ateppypdmxlxod2hb0gmfetz6ea65ek
263034
263022
2024-11-04T15:49:45Z
Linguae
449
263034
wikitext
text/x-wiki
{| id="toc" style="align:center;clear:all;" align="center" cellpadding="5"
|-
! style="background:#ccf; text-align:center;" | [[ガリア戦記/注解編|ガリア戦記 注解編]]
| style="background:#eef; text-align:center;" |
[[ガリア戦記 第1巻/注解|第1巻]] |
[[ガリア戦記 第2巻/注解|第2巻]] |
[[ガリア戦記 第3巻/注解|第3巻]] |
[[ガリア戦記 第4巻/注解|第4巻]] |
[[ガリア戦記 第5巻/注解|第5巻]] |
[[ガリア戦記 第6巻/注解|第6巻]] |
|}
『[[ガリア戦記]]』の主要な写本、参照したおもな校訂版や[[#クリティカル・アパラトゥスとその略号|アパラトゥス]]、校訂者や文献学者などを紹介する。
# [[#主要な写本]]
#* [[#写本の系図]]
# [[#クリティカル・アパラトゥスとその略号]]
#* [[#Editio princeps]]
# [[#校訂版]]
# [[#おもな校訂者(校訂版)などの人名]]
# [[#注釈書等]]
# [[#外部リンク]]
#* [[#オンライン注釈書等]]
== 主要な写本 ==
下表に、『ガリア戦記』の校訂に用いられる主要な写本を一覧する。用いられる写本は、<u>[[#クリティカル・アパラトゥスとその略号|アパラトゥス]]が詳しい</u> クロッツ(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Klotz</span>)とゼール(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Seel</span>)による<span style="font-size:13pt;">トイプナー叢書(<span style="font-family:Times New Roman;">[[w:la:Bibliotheca scriptorum Graecorum et Romanorum Teubneriana|Bibliotheca Teubneriana]]</span>)版 </span> および コンスタン(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Constans</span>)による<span style="font-size:13pt;">ビュデ叢書(<span style="font-family:Times New Roman;font-size:15pt;">[[w:la:Collection des Universités de France|Collection Budé]]</span>)版</span> でほぼ同じであるが、写本を示す略記号がいくらか異なるので、併記した。
{| class="wikitable" cellspacing=1
|- style="font-family:Times New Roman;"
! colspan="2" style="font-size:18pt;" |Bibliotheca Teubneriana
! rowspan="15" |
! colspan="2" style="font-size:18pt;" |Collection Budé
! rowspan="15"|
! colspan="2" |日本語説明<ref name="kunihara">『ガリア戦記』の写本の事情については、日本語では[[w:国原吉之助|國原吉之助]]訳 『ガリア戦記』 ([[w:講談社学術文庫|講談社学術文庫]]、1994年)の巻末解説を参照。</ref>
|-
!記号
! style="width:23em;" |写本説明 (ラテン語)
!記号
! style="width:23em;" |写本説明 (ラテン語・仏語)
! style="width:5em;" |写本名
! style="width:8em;" |所蔵図書館・登録番号、年代
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |A
| style="font-size:12pt;background-color:#ffd;" |codex Amstelodamensis 81 s. IX/X
! style="font-size:15pt;" |A
| style="font-size:12pt;background-color:#ffd;" |''Bongarsianus''. Amsterdam, 81. IX<sup>e</sup>-X<sup>e</sup> siècle.
!アムステ<br>ルダム本
| style="font-size:9pt;" |アムステルダム図書館蔵、81番、9~10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |Q
| style="font-size:13pt;background-color:#ffd;" |codex Parisinus<br> (olim Moysiacensis) Lat. 5056 s. XII
! style="font-size:15pt;color:#f55;" |M
| style="font-size:12pt;background-color:#ffd;" |''Moysiacensis''. Paris, [[w:fr:Bibliothèque nationale de France|Bibl. Nat.]], lat.5056. XII<sup>e</sup> siècle.
!パリ本
| style="font-size:9pt;" |パリ、[[w:フランス国立図書館|仏国立図書館]]蔵、5056番、12世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |B
| style="font-size:13pt;background-color:#ffd;" |codex Parisinus Lat. 5763 s. X
! style="font-size:15pt;" |B
| style="font-size:12pt;background-color:#ffd;" |''Parisinus''. Paris, [[w:fr:Bibliothèque nationale de France|Bibl. Nat.]], lat.5763. IX<sup>e</sup>-X<sup>e</sup> siècle.
!パリ本
| style="font-size:9pt;" |パリ、[[w:フランス国立図書館|仏国立図書館]]蔵、5763番、9~10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |C
| style="font-size:13pt;background-color:#ffd;" |codex Vossianus Leidensis 53 s. XI
| colspan="2"|
!ライデン本
| style="font-size:9pt;" |[[w:ライデン|ライデン]]、[[:c:Category:Leiden University Library|図書館蔵]]、53番、11世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |M
| style="font-size:13pt;background-color:#ffd;" |codex Vaticanus Lat. 3864 s. X
! style="font-size:15pt;color:#f55;" |R
| style="font-size:12pt;background-color:#ffd;" |''Romanus''. [[w:fr:Rome|Rome]], [[w:fr:Bibliothèque apostolique vaticane|Bibl. Vat.]], 3864. X<sup>e</sup> siècle.
!ヴァチカン本
| style="font-size:9pt;" |ローマ、[[w:バチカン図書館|バチカン図書館]]蔵、3864番、10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |S
| style="font-size:13pt;background-color:#ffd;" |codex Laurentianus<br> (olim Ashburnhamensis) R33 s. X
! style="font-size:15pt;" |S
| style="font-size:12pt;background-color:#ffd;" |''Ashburnhamianus''. [[w:fr:Florence|Florence]], [[w:fr:Bibliothèque Laurentienne|Bibl. Laur.]], Ashburn. R. 33. X<sup>e</sup> siècle.
!アッシュバ<br>ンハム本
| style="font-size:9pt;" |フィレンツェ、[[w:en:Laurentian Library|メディチ・ロレンツォ図書館]]蔵、R33番、10世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |L
| style="font-size:13pt;background-color:#ffd;" |codex [[w:la:Museum Britannicum|musei Britannici]]<br> (olim Lovaniensis) Add. 10084 s. XI
! style="font-size:15pt;" |L
| style="font-size:12pt;background-color:#ffd;" |''Louaniensis''. [[w:fr:Londres|Londres]], [[w:fr:British Museum|Brit. Mus.]], Add. MSS. 10084. XI<sup>e</sup> siècle.
!大英博物館本
| style="font-size:9pt;" |ロンドン、[[w:大英博物館|大英博物館]]蔵、追加10084番、11世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |N
| style="font-size:13pt;background-color:#ffd;" |codex Neapolitanus IV c.11 s. XII/XIII
! style="font-size:15pt;" |N
| style="font-size:12pt;background-color:#ffd;" |''Neapolitanus''. [[w:fr:Naples|Naples]], [[w:fr:Biblioteca nazionale Vittorio Emanuele III|Bibl. Nat.]], IV, c. 11. XII<sup>e</sup> siècle.
!ナポリ本
| style="font-size:9pt;" |ナポリ、[[w:en:Biblioteca Nazionale Vittorio Emanuele III|国立図書館]]蔵、IV c.11番、12~13世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |T
| style="font-size:13pt;background-color:#ffd;" |codex Parisinus<br> (olim I.A.Thuani) Lat. 5764 s. XI
! style="font-size:15pt;" |T
| style="font-size:12pt;background-color:#ffd;" |''Thuaneus''. Paris, [[w:fr:Bibliothèque nationale de France|Bibl. Nat.]], lat. 5764. XI<sup>e</sup> siècle.
!トゥー本
| style="font-size:9pt;" |パリ、[[w:フランス国立図書館|仏国立図書館]]蔵、5764番、11世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |V
| style="font-size:13pt;background-color:#ffd;" |codex Vindobonensis 95 s. XII
! style="font-size:15pt;color:#f55;" |''f''
| style="font-size:12pt;background-color:#ffd;" |''Vindobonensis''. [[w:fr:Vienne (Autriche)|Vienne]], 95. XII<sup>e</sup> siècle.
!ウィーン本
| style="font-size:9pt;" |ウィーン、[[w:オーストリア国立図書館|国立図書館]]、95番、12世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;" |U
| style="font-size:13pt;background-color:#ffd;" |codex Vaticanus<br> (olim Fulvii Ursicini) Lat. 3324 s. XI/XII
! style="font-size:15pt;" |U
| style="font-size:12pt;background-color:#ffd;" |''Ursinianus''. [[w:fr:Rome|Rome]], [[w:fr:Bibliothèque apostolique vaticane|Bibl. Vat.]], 3324. XI<sup>e</sup> siècle.
!ウルシヌス本
| style="font-size:9pt;" |ローマ、[[w:バチカン図書館|バチカン図書館]]蔵、3324番、11~12世紀
|- style="font-family:Times New Roman;"
! style="font-size:15pt;color:#f55;" |R
| style="font-size:13pt;background-color:#ffd;" |codex Laurentianus Riccardianus 541 s. XI/XII
! style="font-size:15pt;color:#f55;" |''l''
| style="font-size:12pt;background-color:#ffd;" |''Riccardianus''. [[w:fr:Florence|Florence]], [[w:fr:Bibliothèque Laurentienne|Bibl. Laur.]], Riccard. 541. XI<sup>e</sup>-XII<sup>e</sup> siècle.
!リッカルド本
| style="font-size:9pt;" |フィレンツェ、図書館蔵、541番、11~12世紀
|}
=== 写本の系図 ===
『ガリア戦記』に関する写本の系図理論は、20世紀においてはトイプナー版もビュデ版もおおむね同じである。以下、トイプナー版の記号を用いて系図にふれる。
{| class="wikitable"
|+
|-
! colspan="4" style="color:#f0f; font-family:Times New Roman;font-style:oblique;font-size:30pt;" |ω
|-
! colspan="2" style="color:#80f; font-family:Times New Roman;font-style:oblique;font-size:30pt;" |α
! colspan="2" style="color:#80f; font-family:Times New Roman;font-style:oblique;font-size:30pt;" |β
|-
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |χ
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |φ
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |π
! colspan="1" style="color:#00f; font-family:Times New Roman;font-style:oblique;font-size:25pt;" |ρ
|-
| style="font-family:Times New Roman;font-size:20pt;" |A · Q
| style="font-family:Times New Roman;font-size:20pt;" |B · M · S · L · N
| style="font-family:Times New Roman;font-size:20pt;" |T · V
| style="font-family:Times New Roman;font-size:20pt;" |U · R
|}
*<span style="color:#f0f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:30pt;">ω</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum omnium</span></span> : <span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">α</span>系と<span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">β</span>系、すなわち、主要写本のほぼ全てが一致していることを示す。ビュデ版などでは <span style="font-family:Times New Roman;font-style:oblique;font-size:13pt;">codd.</span> と記す。
**<span style="color:#80f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">α</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">χφ</span></span> : <span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">χ</span>系と<span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">φ</span>系の写本がほぼ一致していることを示す。
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">χ</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">AQ</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">A Q</span> が一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">A = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Amstelodamensis (''Bongarsianus'') 81</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">Q = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Parisinus (''Moysiacensis'') lat. 5056</span> :
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">φ</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">BCMSLN</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">B C M S L N</span> がおおむね一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">B = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Parisinus lat. 5763</span> :
****:<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">C = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vossianus Leidensis 53</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">M = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vaticanus (''Romanus'') 3864</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">S = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Laurentianus Ashburnhamensis (''Ashburnhamianus'') R. 33</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">L = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Lovaniensis Add. 10084</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">N = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Neapolitanus IV, c. 11</span> :
**<span style="color:#80f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">β</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">πρ</span></span> : <span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">π</span>系と<span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">ρ</span>系の写本がほぼ一致していることを示す。
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:20pt;">π</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">TV</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">T V</span> が一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">T = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Parisinus (''Thuaneus'') lat. 5764</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">V = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vindobonensis 95</span> :
***<span style="color:#00f;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">ρ</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat consensum codicum </span><span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">UR</span></span> : 写本<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">U R</span> が一致していることを示す。
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">U = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex Vaticanus (''Ursinianus'') 3324</span> :
****<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;">R = </span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">codex (Laurentianus) Riccardianus 541</span> :
*<span style="color:#090;"><span style="font-family:Times New Roman;font-style:oblique;font-size:25pt;">'''ζ'''</span><span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"> significat recentiores codicum </span></span> : 上記の主要な諸写本よりも後代の写本を示す。
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;"></span>
== クリティカル・アパラトゥスとその略号 ==
クリティカル・アパラトゥス(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Critical apparatus|critical apparatus]]</span>) とは、テクストクリティーク(<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Textual criticism|textual criticism]]</span>、[[w:本文批評|本文批評]]) についての注釈。古典作品のテキストにおける写本間の異同、校訂者による修正提案などを記したもの('''異読一覧''')。単に'''アパラトゥス'''とも呼ばれ、テキスト本文に対して、脚注欄に記されることが多い。以下に、よく使われる略号を挙げる<ref>「critical apparatus abbreviations」 等で検索すれば、詳しく知ることができる。</ref><ref>
例えば、[https://www.loebclassics.com/page/abbreviations/common-abbreviations Common Abbreviations Loeb Classical Library] 参照。</ref><ref>例えば、[http://nttextualcriticism.blogspot.com/2014/11/standard-apparatus-latin-symbols-and.html NT Textual Criticism Standard Apparatus Latin Symbols and Lingo] 参照。</ref><ref>例えば、[https://udallasclassics.org/wp-content/uploads/maurer_files/APPARATUSABBREVIATIONS.pdf COMMONEST ABBREVIATIONS, SIGNS, ETC](PDF) 参照。</ref><ref>例えば、[https://didattica.uniroma2.it/files/scarica/insegnamento/178380-Linguistica-Latina/66007-Abbreviazioni-apparato-critico-in-inglese Abbreviations_in_Apparatus_Critici_(Maurer) (12).pdf](PDF) を参照。</ref>
{| class="wikitable" cellspacing=1
|-
!略号
!ラテン語
!英訳
!和訳
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |add.
| style="font-size:15pt;" |addidit
| style="font-size:12pt;" |''added''
| style="font-size:10pt;" |付け加えた
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |cett.
| style="font-size:15pt;" |[[wikt:en:ceteri#Latin|ceteri]]
| style="font-size:12pt;" |''other manuscripts''
| style="font-size:10pt;" |他の(写本)は
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |cf.
| style="font-size:15pt;" |[[wikt:en:confer#Latin|confer]]
| style="font-size:12pt;" |''compare with'' ~
| style="font-size:10pt;" |~を比較・参照せよ
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |cod.<hr>codd.
| style="font-size:15pt;" |codex<hr>codices
| style="font-size:10pt;" |''MSS''<br> (''manuscripts'')
| style="font-size:10pt;" |写本は
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |corr.
| style="font-size:15pt;" |correctio,<br>correctiones
| style="font-size:12pt;" |''correction<br>(corrected)''
| style="font-size:10pt;" |修正(した)
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |corr. recc.
| style="font-size:13pt;" |correctiones recentiores
| style="font-size:12pt;" |''later correction(s)''
| style="font-size:10pt;" |より後代の修正
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |deest<hr>desunt
| style="font-size:15pt;" |deest<hr>desunt
| style="font-size:12pt;" |''(this word) is missing''<hr>''(these words) are missing''
| style="font-size:10pt;" |欠落している
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |def.
| style="font-size:15pt;" |defendit
| style="font-size:12pt;" |''defends,<br>defended''
| style="font-size:10pt;" |擁護した
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |del.
| style="font-size:15pt;" |delevit
| style="font-size:12pt;" |''deleted''
| style="font-size:10pt;" |削除した
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |dub.
| style="font-size:15pt;" |dubius<hr>dubiter
| style="font-size:12pt;" |''doubtful''<hr>''doubtfully''
| style="font-size:10pt;" |疑わしい
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |ed. pr.
| style="font-size:15pt;" |[[wikt:en:editio princeps|editio princeps,<br> editiones principes]]
| style="font-size:12pt;" |''the first printed edition(s)<br>( of a work previously only<br> published as manuscript)''
| style="font-size:10pt;" |最初の<br>印刷本<ref group="注"><span style="font-size:13pt;">『ガリア戦記』の最初の印刷本(Editio princeps)は、1469年に、<span style="font-style:oblique;">[[w:en:Giovanni Andrea Bussi|Giovanni Andrea Bussi]]</span> 編のものが、ローマで二人の印刷者 <span style="font-style:oblique;">[[w:en:Arnold Pannartz and Konrad Sweynheim|Arnold Pannartz & Konrad Sweynheim]]</span> によって印刷・刊行された([[w:en:Editio_princeps#Latin_works|Editio princeps]] 参照)。</span></ref>
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |edd.
| style="font-size:15pt;" |editores
| style="font-size:12pt;" |''editors''
| style="font-size:10pt;" |編者たち<br>(校訂者たち)
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |edd. recc.
| style="font-size:15pt;" |editores recentiores
| style="font-size:10pt;" |''lated editors'',<br>''lated editions''
| style="font-size:10pt;" |より後代の刊本
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |edd. vett.<hr>edd. vetust.
| style="font-size:15pt;" |editores veteres
| style="font-size:10pt;" |''old editors'',<br>''old editions''
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |m.<hr>man.
| style="font-size:15pt;" |manus
| style="font-size:10pt;" |''hand'' i.e. ''copyist''
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |marg.<hr>mg.
| style="font-size:15pt;" |in [[wikt:en:margine#Latin|margine]]
| style="font-size:12pt;" |''in the margin''
| style="font-size:10pt;" |欄外に
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |om.
| style="font-size:15pt;" |omittit,<br>omisit
| style="font-size:12pt;" |''omits'',<br>''omitted''
| style="font-size:10pt;" |省いた
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |recc.
| style="font-size:15pt;" |recentiores
| style="font-size:12pt;" |''later (MSS)''
| style="font-size:10pt;" |より後代の
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |secl.
| style="font-size:15pt;" |seclusit
| style="font-size:12pt;" |''has bracketed as corrupt''
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |sim.
| style="font-size:15pt;" |similia
| style="font-size:12pt;" |''similar (words)''
| style="font-size:10pt;" |
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |sc.
| style="font-size:15pt;" |scilicet
| style="font-size:12pt;" |''no doubt, certainly''
| style="font-size:10pt;" |疑いなく、確かに
|- style="font-family:Times New Roman;"
| style="font-size:15pt;font-style:oblique;background-color:#ffc;" |sq.<hr>sqq.
| style="font-size:15pt;" |sequens<hr>sequentes
| style="font-size:12pt;" |''following (word(s))''
| style="font-size:10pt;" |引き続く(語)
|-
| colspan="3" |
|- style="font-family:Times New Roman;"
| style="font-size:20pt;font-style:oblique;background-color:#ffc;" |
| style="font-size:15pt;" |
| style="font-size:12pt;" |
| style="font-size:10pt;" |
|}
===Editio princeps===
<span style="font-family:Times New Roman;font-style:normal;font-size:20pt;">[[w:la:Editio princeps|Editio princeps]]</span> (<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:en:Editio princeps|en: Editio princeps]]</span>) 最初の印刷本
<div style="width:55%;background-color:#ffd;"><references group="注" /></div>
<span style="font-family:Times New Roman;font-style:normal;font-size:25pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
== 校訂版 ==
== おもな校訂者(校訂版)などの人名 ==
===Aldus===
{{Wikipedia|アルドゥス・マヌティウス|アルドゥス}}
{{Wikipedia|アルド印刷所|アルド印刷所}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:en:Aldus Manutius|Aldus Manutius]] (1449/1452-1515)</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Ald.</span>) イタリア語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:it:Aldo Manuzio|Aldo Manuzio]]</span>
*:15世紀ルネサンスのヴェネツィアの古典学者で、印刷・出版業者。
*:カエサルなど、多くのギリシア・ラテンの書物を印刷・刊行した。
*:アルドゥス名義で[[w:アルド印刷所|アルド印刷所]]から発行された著作を含む。
:[[#Manutius]] も参照。
===Barwick===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Karl Barwick|Karl Barwick (1883-1965)]]</span> ドイツの古典文献学者。
*:'''著作''': <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Caesars Commentarii und das Corpus Caesarianum (1938)</span> <ref>[https://www.persee.fr/doc/rbph_0035-0818_1941_num_20_1_1604_t1_0135_0000_3 Barwick (Karl). Caesars Commentarii und das Corpus Caesarianum - Persée]</ref>
===Ciacconius===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Petrus Ciacconius <ref>[[w:fr:Pedro Chacón]] などを参照。</ref> (1525-1581)</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Ciacc.</span>) スペイン語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Pedro Chacón|Pedro Chacón]]</span>(ペドロ・チャコン)
*:16世紀、スペインの数学者・神学者、[[w:サラマンカ大学|サラマンカ大学]]ギリシア語教授。
*:著作:<span style="font-family:Times New Roman;">C. Julii Caesaris et Auli Hirtii quae extant omnia</span> <ref>[https://www.worldcat.org/title/c-julii-caesaris-et-auli-hirtii-quae-extant-omnia/oclc/65084468 C. Julii Caesaris et Auli Hirtii quae extant omnia (書籍, 1727) [WorldCat.org] ]</ref>
===Daehne===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Johann Christoph Daehne (1776-1832)</span> : ドイツの文献学者<ref>[http://www.worldcat.org/identities/viaf-273408152/ Daehne, Johann Christoph [WorldCat Identities] ] などを参照。</ref>。
**'''校訂版''': <span style="font-family:Times New Roman;font-size:13pt;">C. Iulii Caesaris Commentarii de bello Gallico et civili. Accedunt libri De bello Alexandrino, Africano et Hispaniensi</span> <ref>[https://www.worldcat.org/title/c-iulii-caesaris-commentarii-de-bello-gallico-et-civili-accedunt-libri-de-bello-alexandrino-africano-et-hispaniensi/oclc/64710439 WorldCat(64710439)]を参照。</ref> <ref>[https://www.worldcat.org/title/ci-caesaris-commentarii-de-bello-gallico-et-civili-accedunt-libri-de-bello-alexandrino-africano-et-hispaniensi-aulus-hirtius/oclc/312032194 WorldCat(312032194)]を参照。</ref> <ref>[https://www.worldcat.org/title/commentarii-de-bello-gallico-et-civili-accedunt-de-bello-alexandrino-africano-et-hispaniensi/oclc/887713890 WorldCat(887713890)]を参照。</ref>
===Davisius===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Iohannes Davisius|Iohannes Davisius (1567-1644)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Dav.</span>) 英語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:John Davies (Mallwyd)|John Davies]]</span> <!-- <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"> </span> -->
*:後期ルネサンス期ウェールズの指導的学者(文法学者・辞書編纂者・翻訳者)。
*:著作:<span style="font-family:Times New Roman;">C. Julii Caesaris et Auli Hirtii quae extant omnia</span> <ref>[https://www.worldcat.org/title/c-julii-caesaris-et-auli-hirtii-quae-extant-omnia/oclc/65084468? C. Julii Caesaris et Auli Hirtii quae extant omnia (書籍, 1727) [WorldCat.org] ]</ref><ref>[https://www.worldcat.org/title/c-julii-caesaris-et-auli-hirtii-quae-exstant-omnia-recensuit-ac-selectis-petri-ciacconii-francisci-hotomanni-joannis-brantii-dionysii-vossii-et-aliorum-notis-suas-addidit-joannes-davisius-accedunt-ejusdem-curae-secundae-nec-non-metaphrasis-graeca-librorum-vii-de-bello-gallico/oclc/221348502? WorldCat]</ref>)
===Dinter===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Bernardus Dinter ; </span> <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">''Gottlob Bernhard Dinter'' (1825-?)</span><ref name="Dinter1">[http://www.worldcat.org/identities/lccn-no2008015312/ Dinter, Gottlob Bernhard 1825- [WorldCat Identities] ]</ref> <ref name="Dinter2">[http://worldcat.org/identities/lccn-no2002109382/ Dinter, Bernhard 1825- [WorldCat Identities] ]</ref>
*:'''校訂版''': <span style="font-family:Times New Roman;">C. Iuli Caesaris Commentarii cum A. Hirti aliorumque supplentis. Recognovit Bernardus Dinter. Lipsiae, sumptibus et typis B. G. Teubneri, MDCCCLXXVI.</span> (トイプナー、1876年)
*:(WorldCat <ref name="Dinter1"/> <ref name="Dinter2"/> などを参照せよ。)
===Ernout===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Alfred Ernout|Alfred Ernout (1879-1973)]]</span> : フランスのラテン語の文献学者。
*:'''執筆記事''':<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">A. Ernout : Revue de Philologie 27, 1953, 192-202</span>
===Estienne===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Robert Estienne (1503-1559)
*:<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[#Stephanus (Estienne)]]</span> を見よ。
===Flodoardus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Flodoardus Remensis|Flodoardus Remensis (894-966)]]</span>(仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Flodoard|Flodoard de Reims]]</span>)
*:[[w:西フランク王国|西フランク王国]]の[[w:フランク人|フランク人]]で、[[w:カロリング朝|カロリング朝]]期の[[w:ランス (マルヌ県)|ランス]]正教会の聖職者・年代記作者・ラテン詩人。
===Frigell===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Andreas Frigell (1820-1897)</span>(略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Frig. ; </span>スウェーデン名<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:sv:Anders Frigell (latinist)|Anders Frigell]]</span>
*:スウェーデンの古典文献学者、[[w:ウプサラ大学|ウプサラ大学]]助教授。著作についてはWorldCat<ref>[http://www.worldcat.org/identities/lccn-no2004048330/ Frigell, A. 1820-1897 (Anders) [WorldCat Identities] ]</ref>等を参照。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris De bello gallico libri septem cum libro octavo A. Hirtii.</u>, Recensuit codices contulit commentationibus, Instruxit <u>Dr. Andreas Frigell</u>, in Reg. Acad. Upsal. Lingu. Lat. Dog., Upsalae, typis descripserunt edquist et socii, MDCCCLXI.</span> <ref>[https://www.worldcat.org/title/c-iulii-caesaris-de-bello-gallico-libri-septem-cum-libro-octavo-a-hirtii/oclc/556360202 C. Iulii Caesaris De bello gallico libri septem cum libro octavo A. Hirtii (電子書籍, 1861) [WorldCat.org] ]</ref>(1861年)
===Fuchs===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Harald Fuchs (Altphilologe)|Harald Fuchs (1900-1985)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Fu.</span>) ドイツの古典文献学者。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julius Caesar: <u>Commentarii Belli Gallici : cum A. Hirtii supplemento</u>, Huber, [[w:en:Frauenfeld|Frauenfeld]], 1944</span> <ref>[https://www.worldcat.org/title/commentarii-belli-gallici-cum-a-hirtii-supplemento/oclc/18460252 Commentarii Belli Gallici cum A. Hirtii supplemento (書籍, 1944) [WorldCat.org] ]</ref>
===Gertz===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Martin Clarentius Gertz (1844-1929)</span><ref>[[w:da:Martin Clarentius Gertz]], [[c:Category:Martin Clarentius Gertz]]</ref>
**19~20世紀デンマークの哲学者<ref>[http://worldcat.org/identities/lccn-n89640008/ Gertz, M. Cl [WorldCat Identities] ]</ref>。
===Glandorpius (Glandorp)===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Johannes Glandorpius</span>(独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Johann Glandorp|Johann Glandorp (1501-1564)]]</span>):ドイツの人文学者・教育者・プロテスタントの神学者<ref>[http://worldcat.org/identities/lccn-nr2002024524/ Glandorp, Johann 1501-1564 [WorldCat Identities] ]</ref><ref>[https://www.deutsche-biographie.de/sfz21096.html Deutsche Biographie - Glandorp, Johann]</ref><ref>[https://www.lagis-hessen.de/pnd/122523806 Hessische Biografie : Erweiterte Suche : LAGIS Hessen]</ref>。
**'''校訂版・注釈書''':
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julii Caesaris quae exstant : ex viri docti [J.J. Scaliger] accuratissima recognitione : accedit nunc vetus interpres Graecus librorum VII de bello Gallico, ex bibliotheca P. Petavii : praeterea notae, adnotationes, commentarii partim veteres, partim novi : adhaec indices rerum, et locorum utiles. ...</span><ref>[https://www.worldcat.org/title/c-julii-caesaris-quae-exstant-ex-viri-docti-jj-scaliger-accuratissima-recognitione-accedit-nunc-vetus-interpres-graecus-librorum-vii-de-bello-gallico-ex-bibliotheca-p-petavii-praeterea-notae-adnotationes-commentarii-partim-veteres-partim-novi-adhaec-indices-rerum-et-locorum-utiles/oclc/13596308 C. Julii Caesaris quae exstant : ex viri docti [J.J. Scaliger] accuratissima recognitione : accedit nunc vetus interpres Graecus librorum VII de bello Gallico, ex bibliotheca P. Petavii : praeterea notae, adnotationes, commentarii partim veteres, partim novi : adhaec indices rerum, et locorum utiles. ... (書籍, 1669) [WorldCat.org] </ref>
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><ref>[https://openlibrary.org/authors/OL4855318A/Johann_Glandorp Johann Glandorp | Open Library]</ref> <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Johannis Glandorpii Adnotationes doctiss. in C. Iulii Caes. et Hircii vel Oppii de bello Gallico, civili, Alexandrino, Africano & Hispaniensi commentariorum et derelictorum libros</span><ref>[https://openlibrary.org/works/OL11537855W/Johannis_Glandorpii_Adnotationes_doctiss._in_C._Iulii_Caes._et_Hircii_vel_Oppii_de_bello_Gallico_civ Johannis Glandorpii Adnotationes doctiss. in C. Iulii Caes. et Hircii vel Oppii de bello Gallico, civili, Alexandrino, Africano & Hispaniensi commentariorum et derelictorum libros (1564 edition) | Open Library]</ref><ref>[https://www.worldcat.org/title/johannis-glandorpii-adnotationes-doctiss-in-c-iulii-caes-et-hircii-vel-oppii-de-bello-gallico-civili-alexandrino-africano-hispaniensi-commentariorum-et-derelictorum-libros/oclc/221818490&referer=brief_results Johannis Glandorpii Adnotationes doctiss. in C. Iulii Caes. et Hircii vel Oppii de bello Gallico, civili, Alexandrino, Africano & Hispaniensi commentariorum et derelictorum libros (マイクロフォーム, 1564) [WorldCat.org] ]</ref>
===Gruter===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Janus Gruterus (1560-1627)</span> <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">; [[w:en:Jan Gruter|Jan Gruter (Gruytère)]]</span> : [[w:南ネーデルラント|南ネーデルラント]]出身の古典文献学者・司書。
===Heller===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Ludwig Heller (Philologe)|Ludwig Heller (1775/6-1826)]]</span> : ドイツの古典文献学者([[w:フリードリヒ・アレクサンダー大学エアランゲン=ニュルンベルク|エアランゲン大学]])。
===Holder===
===Holmes===
===Hotomanus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:de:Franciscus Hotomanus|Franciscus Hotomanus]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Hotm.</span> ; 仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:François Hotman|François Hotman (1524-1590)]]</span>)
*:フランスの法律家・著述家。
===Koller===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Rudolf Koller</span>
*:'''記 事''': <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Wien. Stud. 36(1914)143</span>
*:'''校訂版''': <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Commentarii de bello Gallico (1928, 1939)</span><ref>[https://www.worldcat.org/title/commentarii-de-bello-gallico-auswahl/oclc/720996262 [Commentarii] de bello Gallico Auswahl (書籍, 1928) [WorldCat.org] ]</ref> <ref>[https://www.zvab.com/Julius-Caesar-Bello-Gallico-Sammlung-lateinischer/16208788923/bd https--www.zvab.com-Julius-Caesar-Bello-Gallico-Sammlung-lateinischer-16208788923-bd]</ref>
===Kuebler===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Bernardus Kuebler</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Kue.</span> ; 独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Bernhard Kübler|Bernhard (Gustav Adolf) Kübler (1859-1940)]]</span>)
*:ドイツの古典文献学者、法制史家。著作多数(WorldCat<ref>[http://worldcat.org/identities/lccn-no2011013800/ Kübler, Bernhard 1859-1940 [WorldCat Identities] ]</ref>、Wikisource<ref>[[s:de:Bernhard Kübler]]</ref> を参照)。
**'''校訂版'''(『ガリア戦記』『内乱記』多数):
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris commentarii : cum A. Hirtii aliorumque supplementis 1, Commentarii de bello Gallico</u>, Lipsiae Teubner 1895</span><ref>[https://www.worldcat.org/title/c-iulii-caesaris-commentarii-cum-a-hirtii-aliorumque-supplementis-1-commentarii-de-bello-gallico/oclc/1198880100 C. Iulii Caesaris commentarii : cum A. Hirtii aliorumque supplementis 1, Commentarii de bello Gallico (書籍, 1895) [WorldCat.org] ]</ref>
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris Commentarii cum A. Hirtii aliorumque supplementis. Vol. 1, Commentarii de bello Gallico</u>, Lipsiae : in aedibus B. G. Teubneri, 1908.</span><ref>[https://www.worldcat.org/title/c-iulii-caesaris-commentarii-cum-a-hirtii-aliorumque-supplementis-vol-1-commentarii-de-bello-gallico/oclc/441845921 C. Iulii Caesaris Commentarii cum A. Hirtii aliorumque supplementis. Vol. 1, Commentarii de bello Gallico (書籍, 1908) [WorldCat.]</ref> ほか
===Kübler===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Bernhard Kübler|Bernhard Kübler]]</span> ⇒ <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[#Kuebler]]</span>
===Lipsius===
{{Wikipedia|ユストゥス・リプシウス|リプシウス}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Iustus Lipsius|Iustus Lipsius (1547-1606)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Lips.</span>)
*:現在のベルギーの人文学者・古典文献学者。[[w:フリードリヒ・シラー大学イェーナ|イエナ大学]]、[[w:ライデン大学|ライデン大学]](教授)、[[w:en:Old University of Leuven|ルーヴェン大学]]等で教鞭をとる。<br>タキトゥスやセネカの校訂で知られる<ref>[https://kotobank.jp/word/%E3%83%AA%E3%83%97%E3%82%B7%E3%82%A6%E3%82%B9-149298 リプシウスとは - コトバンク]</ref>
===Manutius===
{{Wikipedia|パウルス・マヌティウス|パウルス・マヌティウス}}
{{Wikipedia|アルド印刷所|アルド印刷所}}
*[[#Aldus]] [[w:アルドゥス・マヌティウス|アルドゥス・マヌティウス]] (<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:en:Aldus Manutius|Aldus Manutius]] 1449/1452-1515</span>) の後継者たち、特に息子の[[w:パウルス・マヌティウス|パウルス・マヌティウス]](<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Paulus Manutius|Paulus Manutius]]</span> 1512-1574)のことか。
*アルドゥスとその後継者たちは、1513年~1588年まで13回にわたってカエサルの『ガリア戦記』を印刷した。1571年の版は、アルドゥスの子パウルスが現役のときに、その息子アルドゥス2世によって印刷された<ref>[https://grolierclub.omeka.net/exhibits/show/aldus-manutius/paulus-manutius Paulus Manutius · Aldus Manutius: A Legacy More Lasting Than Bronze · Grolier Club Exhibitions]等を参照。</ref>。
===Meusel===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Henricus Meusel (1844-1916)</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Meu.</span> : 独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Heinrich Meusel|Heinrich Meusel]]</span> )
*:ドイツの古典文献学者。著作多数(<span style="font-family:Times New Roman;font-size:13pt;">WorldCat<ref>[http://worldcat.org/identities/lccn-no99006368/ Meusel, Heinrich 1844-1916 [WorldCat Identities] ]</ref>, Wikisource<ref>[[s:de:Heinrich Meusel]]</ref></span> 等を参照)。
**'''校訂版''':
***<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris Belli Gallici libri VII cum A. Hirtii liber VIII.</u> Recensuit apparatu critico instruxit Henricus Meusel, Berlin, Bertolini, W. Weber, 1894.</span><ref>[https://www.worldcat.org/title/c-iuli-caesaris-belli-gallici-libri-vii-cum-a-hirti-liber-viii/oclc/7620704 C. Iuli Caesaris Belli gallici libri VII cum A. Hirti liber VIII (書籍, 1894) [WorldCat.org] ]</ref>
===Mommsen===
{{Wikipedia|テオドール・モムゼン|モムゼン}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Theodorus Mommsen|Theodorus Mommsen (1817-1903)]]</span>(独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Theodor Mommsen|Theodor Mommsen]]</span>)
*:ドイツのローマ史家。1902年ノーベル文学賞受賞。
===Morus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Samuel Fridericus Nathanael Morus|Samuel Fridericus Nathanael Morus (1736-1792)]]</span>(独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Samuel Friedrich Nathanael Morus|Samuel Friedrich Nathanael Morus]]</span>)
*:ドイツの哲学者・神学者。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julii Caesaris de bello Gallico et civili; accedunt libri de bello Alexandrino, Africano et Hispaniensi; e recensione Oudendorpii. Curavit editionem (et adnotationes atque indicem adiecit) etc. S. F. N. M. Lipsiae, 1780</span>
===Nicasius===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Nicasius Ellebodius Casletanus</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Nicas.</span>)
*:<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Nicaise Ellebaudt|Nicaise Ellebaudt (1535-1577)]]</span> : 16世紀の[[w:フランドル伯|フランドル伯]]領出身の人文主義者。
===Nipperdey===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Carl Nipperdey|Carl Nipperdey (1821-1875)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Nipp.</span>) ドイツの古典文献学者。『ガリア戦記』の近代的な校訂版を初めて著した。
*:'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">C. Julii Caesaris Commentarii cum supplementis A. Hirtii et aliorum. Ex rec. Car. Nipperdeii (1847)</span>
===Oehler===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Franciscus Oehler (1817-1866)</span> (独語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Franz Oehler (Öhler)</span>)
*:ドイツの古典文献学者、高校教員。著作については、WorldCat<ref>[http://worldcat.org/identities/lccn-no2007135649/ Oehler, Franz [WorldCat Identities] ]</ref>等を参照。
**'''校訂版''':<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"><u>C. Iulii Caesaris Commentarii : cum supplementis A. Hirtii et aliorum.</u>, Recognovit <u>Franciscus Oehler.</u>, Lipsiae., typis et sumptibus B. G. Teubneri. MDCCCLX.</span> (トイプナー、1860年)
**:※Amazon.co.jp<ref>Amazon.co.jp:ペーパーバック版([https://www.amazon.co.jp/C-Iulii-Caesaris-Commentarii-Supplementis/dp/B009JU6ONY C. Iulii Caesaris Commentarii Cum Supplementis A. Hirti Et Aliorum Caesar, Julius, Oehler, Franz])およびハードカバー版。</ref>、Googleブックス<ref>Googleブックスで「C. Iulii Caesaris Commentarii Franz Oehler」で検索せよ。</ref>等で購入・閲覧ができる。
===Orosius===
{{Wikipedia|オロシウス|オロシウス}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Orosius|Paulus Orosius]]</span>(略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Oros.</span>:英 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Orosius|Orosius]] 375/385-420</span>頃)
**4~5世紀頃の現在のスペイン出身のキリスト教の司祭、著述家・史家<ref>[https://kotobank.jp/word/%E3%82%AA%E3%83%AD%E3%82%B7%E3%82%A6%E3%82%B9-41771 オロシウスとは - コトバンク] などを参照。</ref>。
**著作『異教徒に反論する歴史』全7巻(<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Historiae adversum paganos|Historiae adversum paganos]]</span>)の6巻7章10節が参照されている。
===Oudendorp===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Franciscus Oudendorpius</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Oud.</span>) <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Frans van Oudendorp|Frans van Oudendorp (1696-1761)]]</span> オランダの文献学者、[[w:ライデン大学|ライデン大学]]教授。
**'''校訂版''': <span style="font-family:Times New Roman;font-size:13pt;">C. Julii Caesaris Commentarii de bello Gallico et Civili: Accedunt libri De bello Alexandrino, Africano, et Hispaniensi</span>
**: WorldCat <ref>[http://worldcat.org/identities/lccn-n94091268/ Oudendorp, Frans van 1696-1761 [WorldCat Identities] ]</ref>, Vaif.org<ref>[https://viaf.org/viaf/37257920/ viaf.org(37257920)]</ref> などを参照せよ。
===Plutarchus===
{{Wikipedia|プルタルコス|プルタルコス}}
{{Wikipedia|対比列伝|対比列伝}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Plutarchus|Plutarchus (Πλούταρχος)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Plut.</span>:英 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Plutarch|Plutarch]] 46-122</span>頃)
*:プルータルコス:帝政ローマ期のギリシア人著述家・伝記作家<ref>[https://kotobank.jp/word/%E3%83%97%E3%83%AB%E3%82%BF%E3%83%AB%E3%82%B3%E3%82%B9-127292 プルタルコスとは - コトバンク] などを参照。</ref>。
**著作『[[w:対比列伝|対比列伝]]』(希 <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Βίοι παράλληλοι,</span> 羅 <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Vitae parallelae|Vitae parallelae]]</span>)のうち、
***『カエサル伝』(羅 <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:Vita Iulii Caesaris (Plutarchus)la:|Vita Iulii Caesaris]]</span>, 英 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:en:Parallel Lives|Parallel Lives]]</span>)
::などが、『ガリア戦記』の校訂においても重要な史料としてしばしば参照されている。
<!--
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:|]]</span>
-->
===Rhenanus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Beatus Rhenanus|Beatus Rhenanus (1485-1547)]]</span> (独語名も <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:de:Beatus Rhenanus|Beatus Rhenanus]]</span>) ドイツの人文主義者・古典学者・宗教改革者。
===Rösch (Roesch)===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Jakob Friedrich von Rösch (Roesch)(1743-1841)</span><ref>[[w:de:Jakob Friedrich Rösch]]</ref><ref>[https://www.worldcat.org/title/commentar-uber-die-commentarien-des-caesar-als-eine-beantwortung-der-remarques-sur-cesar-des-hernn-general-major-von-w-nebst-beitraegen-zur-roemischen-taktik/oclc/759572811&referer=brief_results Commentar über die Commentarien des Caesar : als eine Beantwortung der Remarques sur Cesar des Hernn General-Major von W. ; nebst Beitraegen zur Roemischen Taktik (書籍, 1783) [WorldCat.org] ]の著者を参照。</ref>
*:18~19世紀・ドイツの数学者・軍事科学者・歴史家・建築家。古代史や芸術史の出版を行なっている。この人物であろう。
:※ <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Pontet</span> は <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Rösch</span> 、<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Constans, Seel</span> は <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Roesch</span> と表記して引用。
::[[ガリア戦記 第2巻/注解/17節|『ガリア戦記』第2巻17節]]など。
===R.Schneider===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Rudolf Schneider (Historiker)|Rudolf Schneider (1852-1911)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">RSchn.</span>) ドイツの軍事史家。
*:'''著作集''':<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[s:de:Rudolf Schneider]]</span>
===Scaliger===
{{Wikipedia|ジュール・セザール・スカリジェ|スカリジェ}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[w:la:Iulius Caesar Scaliger|Iulius Caesar Scaliger (1484-1558)]]</span> (略号 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Scal.</span> :仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Jules César Scaliger|Jules César Scaliger]]</span>)
*:イタリア出身のフランスの人文主義者・医師。
===Schiller===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Hermann Schiller|Hermann Schiller (1839-1902)]]</span>
*:ドイツの教育者。文法学校長、のちに[[w:ユストゥス・リービッヒ大学ギーセン|ギーセン大学]]教授。<br> 『ローマ帝国史』(三部構成、全2巻)の著者。 『ガリア戦記』の校訂者ではない。
*:'''著作''': <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">''Geschichte der Römischen Kaiserzeit''. 2 Bände in 3 Teilen. Perthes, Gotha 1883/1887.</span><ref>[https://www.worldcat.org/title/geschichte-der-romischen-kaiserzeit/oclc/781989391 Geschichte der römischen Kaiserzeit (書籍, 1883) [WorldCat.org] ]</ref>
===Spillmann===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Emil Spillmann</span>
*:<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Caesariana, by Emil Spillmann (St. Gallen, 1878)</span> の著者。
===Stephanus (Estienne)===
{{Wikipedia|ロベール・エティエンヌ|ロベール・エティエンヌ}}
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Robertus Stephanus</span>(仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Robert Estienne|Robert Estienne (1503-1559)]]</span>; [[w:en:Robert Estienne|en]])
*:16世紀フランスの古典学者・印刷業者
===Vascosanus===
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">Michael Vascosanus</span>(仏語名 <span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:fr:Michel de Vascosan|Michel de Vascosan (1500-1576/77)]]</span> )
*:16世紀フランスの司書・印刷業者<ref>[http://worldcat.org/identities/lccn-nr95024401/ Vascosan, Michel de -approximately 1577 [WorldCat Identities] ]</ref><ref>[https://portail.biblissima.fr/ark:/43093/pdatac02439a6e1fbf35c63e1c29d7cf7a29f4001ed1a Michel de Vascosan (1500-1577) Biblissima] </ref><ref>[https://viaf.org/viaf/27118843/ 27118843 - VIAF]</ref>。
===Whitte===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">Hans Kofod Whitte (1810-1894)</SPAN>
*:19世紀デンマークの古典学者・高校教師<ref>[https://www.ancestry.com/genealogy/records/hans-kofod-whitte-24-6l20z1 Hans Kofod Whitte, b.1810 d.1894 - Ancestry®]</ref>。1886年に『ガリア戦記』の注釈書を著わしている。
;著作 <ref>[https://onlinebooks.library.upenn.edu/webbin/book/lookupname?key=Whitte%2C%20Hans%20Kofod%2C%201810%2D1894 Whitte, Hans Kofod, 1810-1894 | The Online Books Page]</ref>
# Collatio codicum II havniensium cum editione elberlingiana G. Julii Caesaris Commenttt. (B. Lunos, 1847) <ref>[https://catalog.hathitrust.org/Record/001724964 Catalog Record: Collatio codicum II havniensium cum editione... | HathiTrust Digital Library]</ref>
# Gaji Julii Caesaris De bello gallico commentariorum libri septem et octavus A. Hirtii; in usum scholarum (Impensis librariae Gyldendalianae (F. Hegel & fil), 1886)<ref>[https://catalog.hathitrust.org/Record/006540375 Catalog Record: Gaji Julii Caesaris De bello gallico... | HathiTrust Digital Library]</ref>
===Zeuss===
*<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;">[[w:de:Johann Kaspar Zeuß|Johann Kaspar Zeuß (Zeuss)(1806-1856)]]</span>
**ドイツの文献学者・史家で、ケルト文献学の創始者。
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
==注釈書等==
:[[#オンライン注釈書等]]も参照。
== 脚注 ==
{{Reflist}}
== 関連項目 ==
*<span style="background-color:#ffd;">[[ガリア戦記/注解編]] {{進捗|00%|2020-03-27}}</span>
*<span style="background-color:#ffd;">[[ガリア戦記/用例集]] {{進捗|00%|2020-03-29}}</span>
== 外部リンク ==
===オンライン注釈書等===
<div style="background-color:#eeeeee;">
====Caesar's Gallic war : notes by F. W. Kelsey (1897)====
:C. Iuli Caesaris De bello gallico libri VII :
::Caesar's Gallic war : with an introduction, notes, and vocabulary
::: by [[w:en:Francis Kelsey|Francis Willey Kelsey (1858-1927)]], Fifteenth Edition (1897)
:::: (HathiTrust Digital Library [[w:ハーティトラスト|ハーティトラスト・デジタルライブラリ]]で電子化)
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=19 Contents] (#19)
;:─TEXT─
:: '''Book 1''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=77 Commentarius Primus] (#77)
:: '''Book 2''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=119 Commentarius Secundus] (#119)
:: '''Book 3''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=144 Commentarius Tertius] (#144)
:: '''Book 4''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=162 Commentarius Quartus] (#162)
:: '''Book 5''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=186 Commentarius Quintus] (#186)
:: '''Book 6''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=219 Commentarius Sextus] (#219)
:: '''Book 7''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=243 Commentarius Septimus] (#243)
;:─NOTES─
:: '''Book 1''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=307 Book I.] (#307) ; [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=332 The Campaign against Ariovistus] (#322)
:: '''Book 2''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=332 Book II.] (#332)
:: '''Book 3''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=380 Book III.] (#380)
:: '''Book 4''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=395 Book IV.] (#395)
:: '''Book 5''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=416 BOOK V.] (#416)
:: '''Book 6''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=441 BOOK VI.] (#441)
:: '''Book 7''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=460 BOOK VII.] (#460)
:::: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=494 The Routes of Caesar] (#494)
:::: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=495 On the Study of Caesar] (#495)
:::: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=497 Helps to the Study of Caesar] (#497)
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=499 Idioms and Phrases] (#499), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=506 #506], [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=507 #507], [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=508 #508]
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=515 Vocabulary] (#515); [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=517 Vocabulary A] (#517), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=529 B], ~ , [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=635 V].
</div>
<div style="background-color:#eeeeee;">
====Caesar's Gallic war : edited by F. W. Kelsey (1903)====
:C. Iulii Caesaris Commentarii rerum gestarum.
::Caesar's Commentaries: the Gallic war, books I-Iv, with selections from books V-VII and from the civil war;
:::with an introduction, notes, a companion to Caesar and a vocabulary,
:::: by [[w:en:Francis Kelsey|Francis Willey Kelsey (1858-1927)]], Fifteenth Edition (1897)
::::: (HathiTrust Digital Library [[w:ハーティトラスト|ハーティトラスト・デジタルライブラリ]]で電子化)
*[https://catalog.hathitrust.org/Record/000441877 Catalog Record: C. Iulii Caesaris Commentarii rerum gestarum....] (HathiTrust Digital Library)
</div>
====Harkness, Albert (1889)====
<span style="font-family:Times New Roman;font-style:normal;"><span style="font-size:15pt;">Caesar's Commentaries on the Gallic War, </span><span style="font-size:13pt;">with notes, dictionary, and a map of Gaul.</span><br> <span style="font-size:15pt;">
edited by <u>[[w:en:Albert Harkness|Albert Harkness (1822-1907)]]</u> <ref>[http://onlinebooks.library.upenn.edu/webbin/book/lookupname?key=Harkness%2C%20Albert%2C%201822%2D1907 Harkness, Albert, 1822-1907 | The Online Books Page]</ref>, New York, [[w:en:D. Appleton & Company|D. Appleton and Company]], 1889 (Rivised Edition)</span></span>
::Caesar's commentaries on the Gallic war; with notes, dictionary, ... (Full View | HathiTrust Digital Library)
; BOOK FIRST
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=273 #273]
; BOOK SECOND
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=316 #316]
; BOOK THIRD
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=331 #331]
; BOOK FOURTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=341 #341]
; BOOK FIFTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=354 #354]
; BOOK SIXTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=365 #365]
; BOOK SEVENTH
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=373 #373]
; DICTIONARY
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=387 #387]
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<pre>
</pre>
===そのほか===
*[https://archive.org/ archive.org/] ([[w:インターネットアーカイブ|Internet Archive]])
**[https://archive.org/details/commentariidebel00caesuoft/page/n7/mode/2up Commentarii de bello Gallico et civili; accedunt libri de bello Alexandrino, Africano, et Hespaniensi; : Caesar, Julius : Free Download, Borrow, and Streaming : Internet Archive]
[[Category:ガリア戦記|*#]]
ngrtv8z372xywojglw9tm778ophurka
利用者・トーク:雪津風明石/技術情報
3
28106
263037
262726
2024-11-04T20:51:03Z
MediaWiki message delivery
14540
/* 技術ニュース: 2024-45 */ 新しい節
263037
wikitext
text/x-wiki
ここは[[meta:Global message delivery/Targets/Tech ambassadors|技術情報]]を受信する為のページです。[[利用者:雪津風明石|雪津風明石]]に対するコメントは[[利用者・トーク:雪津風明石|トークページ]]にお願いします。
----
__TOC__
== [[m:Special:MyLanguage/Tech/News/2020/20|Tech News: 2020-20]] ==
<section begin="technews-2020-W20"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/20|翻訳]]されています。
'''最近の更新'''
* [[w:ja:Flickr|Flickr]]の画像をコモンズに移入する制限が解け、[[c:Special:UploadWizard|UploadWizard]]を使うと誰でも投稿できるようになりました。以前はコモンズ自動巡回者の権限がないと、Flickrから移入できませんでした。. [https://phabricator.wikimedia.org/T90004]
'''問題点'''
* [[phab:T251502|コモンズ]]では5月12日に数分の間、データベースのメンテナンスのため閲覧専用の状態になります。日本時間14:00([https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200512T05 05:00 (UTC)])前後に行われる予定です。 [https://phabricator.wikimedia.org/T251502]
* [[phab:T251984|ウィキデータを含む複数のウィキ]]では5月19日に数分間、閲覧はできても編集の保存ができなくなる予定です。日本時間14:00([[:w:ja:世界協定時間|UTC]][https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。また英語版ウィキペディアはデータベースの保守管理のため、数分にわたり閲覧専用になります。 5月21日の日本時間14:00(UTC [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。 [https://phabricator.wikimedia.org/T251984][https://phabricator.wikimedia.org/T251985]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.32|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-05-12|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-05-13|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-05-14|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] JavaScript のユーザースクリプトとガジェットで、<code>mw.config.exists()</code>と<code>mw.user.tokens.exists()</code>を使って複数のキーをまとめてチェックできなくなります。今後は1件ずつ<code>exists()</code>または <code>get()</code>で検索してください。 [https://phabricator.wikimedia.org/T251855]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W20"/> 2020年5月11日 (月) 20:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20078394 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/21|Tech News: 2020-21]] ==
<section begin="technews-2020-W21"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/21|翻訳]]されています。
'''最近の更新'''
* パスワードを忘れた場合に新しいパスワードをメールで送信してもらうには、アカウントに登録した自分のメールアドレスか、利用者名のどちらかを入力する必要があります。個人設定で、その両方を入力するよう選べます。これは他人によるパスワード変更のメール申請を減らす措置で、すべてのウィキメディアのウィキで設定できるようになりました。 [https://meta.wikimedia.org/wiki/Community_Tech/Password_Reset_Update#May_11,_2020][https://lists.wikimedia.org/pipermail/wikimedia-l/2020-May/094804.html]
'''問題点'''
* [[w:ja:IOS 13|iOS 13]]で[[w:ja:Safari|Safari]]を使用している利用者に対してバグを引き起こす可能性があります。iPhoneを使用してウィキペディアのモバイル版サイトで閲覧または編集を行っているときにバグを見つけた場合は[[mw:Skin talk:Minerva Neue|報告してください]]。 [https://phabricator.wikimedia.org/T252223]
* [[phab:T251984|ウィキデータを含む複数のウィキ]]では5月19日に数分間、閲覧はできても編集の保存ができなくなる予定です。日本時間14:00([[:w:ja:世界協定時間|UTC]][https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。また英語版ウィキペディアはデータベースの保守管理のため、数分にわたり閲覧専用になります。 5月21日の日本時間14:00(UTC [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200519T05 05:00])前後に行われる予定です。 [https://phabricator.wikimedia.org/T251984][https://phabricator.wikimedia.org/T251985]
'''今週の更新'''
* Android版の[[:mw:Special:MyLanguage/Wikimedia Apps|Wikipediaアプリ]]を使用するとき、コモンズの[[c:Special:MyLanguage/Commons:Depicts|構造化データ]]を[[:mw:Special:MyLanguage/Wikimedia Apps/Team/Android/AppEditorTasks#Suggested Edits 4.0 - Tag Commons images to improve search (to be released May 2020)|追加]]することができます。アプリのベータ版には[[:c:Special:MyLanguage/Commons:Structured data/Computer-aided tagging|コンピュータ補助によるタグ付け]]機能がありましたが、構造化データの編集機能追加に伴い削除されました。 [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/AppEditorTasks#Suggested_Edits_4.0_-_Tag_Commons_images_to_improve_search_(to_be_released_May_2020)]
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:Graph|グラフ]]は閲覧者のブラウザで[[w:ja:レンダリング (コンピュータ)|レンダリング]]が行われます。この機能は[[w:ja:JavaScript|JavaScript]]を使用しています。グラフはJavaScriptを使用できる環境であれば正常に動作します。JavaScriptを使用できない環境では動作しません。 [https://phabricator.wikimedia.org/T236892]
* [[File:Octicons-tools.svg|15px|link=|高度]] スキンの CSS の一部が簡略化されました。<code>div#p-personal</code>、<code>div#p-navigation</code>、<code>div#p-interaction</code>、<code>div#p-tb</code>、<code>div#p-lang</code>、<code>div#p-namespaces</code>、<code>div#p-variants</code>、<code>div#footer</code> というコードが影響を受けます。これらのコードから <code>div</code> を除去する必要があります。ガジェットやスクリプト、ユーザースタイルシートを修正してください。これは、HTML5の機能を使用できるようにするための措置です。 [https://phabricator.wikimedia.org/T252467]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Skin:Vector|ベクタースキン]]の CSS が一部変更されました。<code>#p-variants</code>、<code>#p-namespaces</code>、<code>#p-personal</code>、<code>#p-views</code>、<code>#p-cactions</code> というコードが影響を受けます。<code>ul</code> が使われなくなります。ガジェットやスクリプト、ユーザースタイルシートを修正する必要があるかもしれません。[[phab:T252447|詳しくはこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W21"/> 2020年5月18日 (月) 17:20 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20078394 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/22|Tech News: 2020-22]] ==
<section begin="technews-2020-W22"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/22|翻訳]]されています。
'''今週の更新'''
* ビジュアルエディタが[[mw:Special:MyLanguage/Skin:Modern|モダンスキン]]でも利用できるようになります。導入に伴う変更により、スクリプトやガジェットの一部に不具合が発生する可能性があります。 [https://phabricator.wikimedia.org/T177243]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.34|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-05-26|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-05-27|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-05-28|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W22"/> 2020年5月25日 (月) 14:18 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20114992 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/23|Tech News: 2020-23]] ==
<section begin="technews-2020-W23"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/23|翻訳]]されています。
'''最近の更新'''
* Android 用の [[:c:Commons:Mobile app|Wikimedia Commons アプリ]]の新しいベータ版が利用できます。画像を閲覧するとき、ズーム機能が利用できるようになりました。また、ジオタグの付いた写真をアップロードするとき、撮影場所の候補を表示するようになりました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-May/093431.html]
'''問題点'''
* 5月28日にコモンズのデータベースに障害が発生しました。これが原因で、コモンズが8分ほど編集できなくなりました。データベースを移動したことが原因です。同様の原因により、29日にも一時的に編集ができなくなりました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200528-s4_(commonswiki)_on_read-only_for_8_minutes][https://phabricator.wikimedia.org/T253808][https://phabricator.wikimedia.org/T253825]
* [[mw:Special:MyLanguage/Skin:Vector|Vector スキン]]使用時に、他言語版へのリンクを追加できない不具合が発生しました。既存の言語間リンクがない場合、言語間リンクのセクション自体が表示されませんでした。[[mw:Special:MyLanguage/Content translation|コンテンツ翻訳]]のリンクや言語の設定を行うリンクも表示されませんでした。この問題はすでに修正済みです。 [https://phabricator.wikimedia.org/T252800]
'''今週の更新'''
* 作成したページに対するリンクを他の人が追加したとき、通知が届くようになりました。通知は個人設定から無効化することが出来ます。まもなく、受け取った通知からも無効化を設定できるようになる予定です。 [https://phabricator.wikimedia.org/T46787]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.35|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-02|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-03|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-04|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W23"/> 2020年6月1日 (月) 22:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20114992 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/24|Tech News: 2020-24]] ==
<section begin="technews-2020-W24"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/24|翻訳]]されています。
'''最近の更新'''
* 一部の記事では様々な方法で並べ替えができるテーブル(表組み)があります。たとえば国名一覧だと国名のABC順で並び替えたり、面積の列見出しをクリックして面積順に並び替えることができます。同じ見出し欄をもう一度クリックすると並び順は逆転します。3度目のクリックで、最初の並び順に戻ります。 [https://phabricator.wikimedia.org/T226697]
* [[mw:Special:MyLanguage/Help:Lint_errors/self-closed-tag|空要素タグ]]は[[:w:ja:HTML5|HTML5]]と同じ仕様になりました。このため、一部で使用を控える必要があります。例えば <code><nowiki><b/></nowiki></code> は正常に動作しない空要素タグの一例です。<code>area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbr</code> のタグは空要素タグとして使用できます。空要素として使用すべきでないタグが使用されているページは、2016年より[[:Category:無効な自己終了HTMLタグを使用しているページ]]として追跡されています。カテゴリの代わりに[[Special:LintErrors/self-closed-tag]]でも参照できます。なお、<code><nowiki><references /></nowiki></code> や <code><nowiki><ref /></nowiki></code> には影響しません。 [https://phabricator.wikimedia.org/T134423]
* <code>WikidataPageBanner</code> と呼ばれる通知バナーがあります。例えばウィキボヤージュやウィキメディアのロシア語版、またウィキペディアのカタロニア語版、バスク語版、ガリシア語版、トルコ語版が利用しています。以前はデスクトップ版のみの表示でしたが、今後はモバイル機器を使って訪問した利用者にも表示されるようになります。このバナーを利用するウィキでは <code>MediaWiki:Sitenotice</code> を更新して、編集者がモバイル版向けのスタイルをテストできるようにすることをお勧めします。 [https://phabricator.wikimedia.org/T254534][https://phabricator.wikimedia.org/T254295]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[m:Special:MyLanguage/MassMessage|メッセージ一斉送信]]の説明文を直接、[[:w:ja:アプリケーションプログラミングインタフェース|API]]から編集できるようになりました。これはツールやガジェットで役に立つ機能です。 [https://phabricator.wikimedia.org/T226929]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.36|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-09|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-10|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-11|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* かつて2012年に行われた暫定的な機能修正により、ウィキのメインページを携帯端末に適応できるようにしました。しかし2017年以降、暫定的に提供されていた機能は非推奨となっており、今年7月13日以降は無効になる予定です。今後は[[mw:Special:MyLanguage/Help:TemplateStyles|TemplateStyles]]を使用してください。現在、118のウィキでモバイル版メインページの修正が必要となっています。[[phab:T254287|詳細情報や利用中のウィキが該当するかどうか、ご確認ください]]。 [https://phabricator.wikimedia.org/T254287]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W24"/> 2020年6月8日 (月) 21:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20156271 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/25|Tech News: 2020-25]] ==
<section begin="technews-2020-W25"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/25|翻訳]]されています。
'''Recent changes'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[m:Toolforge|Toolforge]]では編集回数カウンターや拡張エディタなど、ウィキメディアのコミュニティにより提供された様々なツールを提供しています。このたび、ホスト先のドメインを'''tools.wmflabs.org'''から'''toolforge.org'''へ変更します。URLは'''tools.wmflabs.org/toolname'''から'''toolname.toolforge.org'''に変わります。[[:wikitech:News/Toolforge.org|詳細はこちら]]。OAuthを使用するツールは更新が必要です。[[:wikitech:Help:Cloud_ Services Introduction|支援が必要な人はこちらまでご連絡ください]]。
'''問題点'''
* サイドバーにウィキデータのリンクを表示するページがあります。[[mw:Special:MyLanguage/Skin:MonoBook|Monobook]]外装を指定していると、このリンクが消えるという現象が数日間発生しました。バグが原因でしたが、現在は修正済みです。 [https://phabricator.wikimedia.org/T254485]
* 先週、短い時間ながら編集とログイン、ログアウトが正常にできませんでしたが、すぐに復旧しました。 [https://phabricator.wikimedia.org/T255179]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.37|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-16|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-17|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-18|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]]はウィキの作業を自動化するPython [[:w:ja:ライブラリ|ライブラリ]]です。7月から提供される新規バージョン以降、[[:w:ja:Python#2.x|Python 2]] がサポートされなくなります。Python 3.4 および MediaWiki 1.19 以下のサポートも同時に終わるため、[[:w:ja:Python#3.x|Python 3]]に移行してください。[[:phab:T242120|助けが必要であればご相談ください]]。 [https://lists.wikimedia.org/pipermail/pywikibot-announce/2020-June/000015.html]
* [[mw:Special:MyLanguage/Skin:Vector|Vector]]スキンのメニューにある<code>.menu</code>ならびに<code>.vectorMenu</code>のセレクタは機能しなくなる予定です。影響はガジェットとユーザースクリプトに及ぶ可能性があります。<code>.menu</code>は<code>ul</code>、<code>.vectorMenu</code>は<code>.vector-menu</code>にそれぞれ置換してください。 [https://phabricator.wikimedia.org/T254797]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W25"/> 2020年6月15日 (月) 21:38 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20156271 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/26|Tech News: 2020-26]] ==
<section begin="technews-2020-W26"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版 '''[[m:Special:MyLanguage/Tech/News|技術ニュース]]''' です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは[[m:Special:MyLanguage/Tech/News/2020/26|各言語に翻訳]]されています。
'''問題点'''
* 編集初学者の編集活動開始をサポートする[[mw:Special:MyLanguage/Growth|新しいツール]]が複数あります。入手は[https://noc.wikimedia.org/conf/highlight.php?file=dblists/growthexperiments.dblist いくつかのウィキ]で可能です。それらのウィキでは先週、ごく限られた時間帯でビジュアル編集機能に問題がありました。これはネットツールのバグが原因でしたが直後に解決しました。 [https://phabricator.wikimedia.org/T255607]
* [[File:Octicons-tools.svg|15px|link=|高度]] ユーザスクリプトとガジェットの一部は[[:w:ja:Cascading Style Sheets|CSS]]セレクタの変更の影響を受けて機能しなくなりました。問題の解消には<code>.vectorTabs</code>を<code>.vector-menu-tabs</code>に置換してください。 [https://phabricator.wikimedia.org/T255718]
'''今週の更新'''
* 開発者はトークページでの編集の競合を解消する[[:m:WMDE Technical Wishes/Edit Conflicts#Edit conflicts on talk pages|新しいインターフェイス]]を開発しています。リリースは6月24日の予定です。[[mw:mw:Help talk:Paragraph-based Edit Conflict Interface|フィードバック]]をお願いします。 [https://phabricator.wikimedia.org/T230231]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.38|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-23|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-06-24|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-06-25|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* かつて2012年に行われた暫定的な機能修正により、ウィキのメインページを携帯端末に適応できるようにしました。しかし2017年以降、暫定的に提供されていた機能は非推奨となっており、今年7月13日以降は無効になる予定です。今後は[[mw:Special:MyLanguage/Help:TemplateStyles|TemplateStyles]]を使用してください。現在、91のウィキでモバイル版メインページの修正が必要となっています。[[phab:T254287|詳細情報や利用中のウィキが該当するかどうか、ご確認ください]]。 [https://phabricator.wikimedia.org/T254287]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W26"/> 2020年6月22日 (月) 18:49 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20156271 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/27|Tech News: 2020-27]] ==
<section begin="technews-2020-W27"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版 '''[[m:Special:MyLanguage/Tech/News|技術ニュース]]''' です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは[[m:Special:MyLanguage/Tech/News/2020/27|各言語に翻訳]]されています。
'''問題点'''
* すべての利用者が強制的にログアウトされました。一部の利用者が他人名義でログインしているように表示されたためです。現在、不具合の修正対応中です。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-June/093543.html]
* 一部の閲覧者に対してページの最新版が表示されませんでした。ページが更新されたとき、古い版が表示されていました。これはログアウトしている利用者のみが影響を受けました。10日ほど続きましたが、現在は修正済みです。 [https://phabricator.wikimedia.org/T256444]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.39|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-06-30|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-01|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-01|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|]] [[mw:Special:MyLanguage/Skin:Modern|モダン]]スキンと [[mw:Special:MyLanguage/Skin:Monobook|モノブック]]スキンでは「表示」ボタンに <code>searchGoButton</code> のIDを使用しています。[[mw:Special:MyLanguage/Skin:Vector|ベクター]]スキンはこのボタンに <code>searchButton</code> というIDを使用しています。すべての外装で同じIDを割り当てるため、モノブックとモダンで使用するIDを <code>searchButton</code> に変更します。これにより、ガジェットやユーザースクリプトに影響が生じます。7月23日に変更を行う予定なので、これ以降は <code>searchButton</code> を使うようにしてください。[[phab:T255953|詳細や影響を受けるスクリプトについてはこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W27"/> 2020年6月29日 (月) 16:31 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/28|Tech News: 2020-28]] ==
<section begin="technews-2020-W28"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/28|翻訳]]されています。
'''Problems'''
* The [[mw:Special:MyLanguageExtension:Score|Score]] extension has been disabled for now. This is because of a security issue. It will work again as soon as the security issue has been fixed. [https://phabricator.wikimedia.org/T257066]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.40|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-07|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-08|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-09|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* Abstract Wikipediaはウィキメディアの新規プロジェクトです。ウィキデータに基づき、言語に依拠せず読むことができる情報を収集します。なお、名称は仮のものです。[[m:Special:MyLanguage/Abstract Wikipedia|詳細はリンク先]]をご参照ください。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093571.html]
* [[mw:Wikimedia Apps/Team/iOS|iOS版ウィキペディア・アプリ]]の開発者は実験的な新しいツールを考案中です。iPhoneの利用者の皆さんは[[mw:Wikimedia Apps/Team/iOS/2020 survey|アンケート調査に答えて]]ご協力ください。
* 近々、[[mw:New requirements for user signatures#Outcome|署名についてのルール]]が一部施行される予定です。利用者の署名に[[Special:LintErrors|Lintエラー]]や無効なHTML構文の使用は認められなくなります。subst展開の入れ子も認められません。また、利用者ページ、利用者トークページ、投稿記録いずれかへのリンクが必須となります。ご使用の [https://signatures.toolforge.org/check 署名が新しいルールに適応しているかどうか、ご確認ください]。署名は構文次第でページ内のツールもしくは他のテキスト部分に問題を起こす原因になるため、署名のルールが施行されることになりました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W28"/> 2020年7月6日 (月) 20:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/29|Tech News: 2020-29]] ==
<section begin="technews-2020-W29"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/29|翻訳]]されています。
'''最近の更新'''
* 他者の編集に[[mw:Extension:Thanks|感謝]]を示す機能があります。この機能を使った操作について、[[mw:Extension:CheckUser|チェックユーザー係]]が利用者情報を取得できるようになりました。これにより、感謝機能を使って嫌がらせを働く[[m:Special:MyLanguage/Sock puppetry|ソックパペット]]を調べることができます。 [https://phabricator.wikimedia.org/T252226]
'''問題点'''
* 2週間ほど前、セキュリティ問題対策のために利用者全員を強制的にログアウトさせました。しかし、問題が完全に解決しなかったため、先週、再び利用者全員のログアウト処理が行われました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-June/093543.html][https://lists.wikimedia.org/pipermail/wikitech-ambassadors/2020-July/002327.html]
'''今週の更新'''
* 単一言語に限定しないウィキではページの[[mw:Special:MyLanguage/Help:Extension:Translate|翻訳設定]]ができます。しかし、最新の情報を反映していなかったり、未翻訳部分が出てくることがあります。更新が必要な部分は<span style="background-color:#fdd">背景色がピンク色</span>になります。未翻訳部分も将来的に見た目で判別できるようにする予定です。また、背景色変更のマークアップが問題を引き起こす場合があるため、翻訳元のページで <code><translate nowrap></translate></code> を使うことで問題を回避できるようにする予定です。 [https://phabricator.wikimedia.org/T256625]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.35/wmf.41|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-14|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-15|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-16|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキメディアのコードレビューに [[:w:ja:GitLab|GitLab]]を採用する予定です。ホストサーバーはウィキメディアのサーバーになりそうです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093577.html][https://www.mediawiki.org/wiki/Technical_Community_Newsletter/2020/July][https://www.mediawiki.org/wiki/Topic:Vpbt50rwxgb2r6qn][https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093607.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W29"/> 2020年7月13日 (月) 16:30 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/30|Tech News: 2020-30]] ==
<section begin="technews-2020-W30"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/30|翻訳]]されています。
'''最近の更新'''
* かつて2012年に行われた暫定的な機能修正により、ウィキのメインページを携帯端末に適応できるようにしました。モバイルビューのメインページ向けに特殊なケーシングを設定する方法でしたが、2017年以降、暫定的に提供されていた機能は非推奨となっており、今年7月14日から無効になりました。現在、60のウィキでモバイル版メインページの修正が必要となっています。該当するウィキのリストと、修正や支援申請の方法は[[phab:T254287|Phabricator]]をご参照ください。なお、この問題は技術ニュースの過去号[[m:Special:MyLanguage/Tech/News/2020/24|2020年24週]]と[[m:Special:MyLanguage/Tech/News/2020/26|2020年26週]]に掲載しました。
'''問題点'''
* 言語間リンクに不具合が発生しています。言語間リンクは同じページの他言語版にリンクする機能ですが、ソートの不具合が発生しています。開発者が修正対応を行っています。 [https://phabricator.wikimedia.org/T257625]
* 複数の利用者に対して同じ通知が繰り返し表示されています。過去の通知が届く場合もあるようです。 [https://phabricator.wikimedia.org/T257714]
* 一部のユーザーのログインに障害が起きています。おそらく、[[:w:ja:HTTP cookie|ブラウザのcookie]]が原因です。開発者が不具合の修正対応を行っています。ログインに問題が起きたときには[[phab:T258121|Phabricator]]の詳細をご覧ください。 [https://phabricator.wikimedia.org/T258121]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-21|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-22|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-23|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* <code>{{int:printableversion}}</code>というリンクは今後、非表示になる予定です。ウェブブラウザ側に印刷用バージョンを作成したり、印刷時の見た目を表示する機能が備わっているからです。 [https://phabricator.wikimedia.org/T167956]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W30"/> 2020年7月20日 (月) 19:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/31|Tech News: 2020-31]] ==
<section begin="technews-2020-W31"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/31|翻訳]]されています。
'''最近の更新'''
* ウィキコミュニティのための[[m:Small wiki toolkits/Starter kit|スターターキット]]が利用できるようになりました。技術リソース、ツール、推奨事項などの一覧で、ウィキプロジェクトを運用するのに必要な事柄をまとめています。コミュニティとしての経験が浅い小規模なウィキで役に立つでしょう。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093633.html]
* ログインユーザーは[[mw:Reading/Web/Desktop Improvements|デスクトップ改善]]プロジェクトによる最初の機能を全てのウィキで利用できるようなります。機能を利用するときは[[Special:Preferences#mw-prefsection-rendering|個人設定]]または[[Special:GlobalPreferences#mw-prefsection-rendering|グローバル個人設定]]の ''{{int:prefs-skin-prefs}}'' セクションで ''{{int:prefs-vector-enable-vector-1-label}}'' のチェックを外してください。今後更なる改良も予定しています。[[mw:Talk:Reading/Web/Desktop Improvements|フィードバックをお待ちしています]]。
* [[File:Octicons-tools.svg|15px|link=|高度]] UTCLiveClockは複数のウィキで使用されているガジェットです。[[:mw:MediaWiki:Gadget-UTCLiveClock.js|Mediawiki.orgから直接ガジェットをインポート]]するウィキでは、[[mw:MediaWiki_talk:Gadget-UTCLiveClock.js#Time_zones|UTC以外のタイムゾーンを選択]]できるようになりました。
'''問題点'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 今週のMediaWikiの展開は中止されました。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093640.html][https://phabricator.wikimedia.org/T257969]
* 翻訳通知ボットが全ての翻訳者に対して同じメッセージを重複して送信していました。この問題は既に修正済みです。 [https://phabricator.wikimedia.org/T144780]
* 一部の利用者が同じ通知を複数回受信してしまうという不具合が発生していましたが、既に修正済みです。 [https://phabricator.wikimedia.org/T257766]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-07-28|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-07-29|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-07-30|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.35/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W31"/> 2020年7月27日 (月) 13:53 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20228133 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/32|Tech News: 2020-32]] ==
<section begin="technews-2020-W32"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/32|翻訳]]されています。
'''問題点'''
* [[mw:Wikidata Query Service|ウィキデータのクエリサービス]]は7月23日木曜日17:50 から 17:59(UTC)の間、すべてのクエリが受け付け不能でした。中にはさらに長い時間、検索に支障の出たクエリもありました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200723-wdqs-outage]
* 過去数週間にわたり、言語間リンクの順序が正しくない状態が続いていました。[[m:Special:MyLanguage/Tech/News/2020/30|2週間前の技術ニュース]]でお知らせした件です。このたび、この不具合に対する修正対応が完了しました。 [https://phabricator.wikimedia.org/T257625]
* 「{{int:prefs-vector-enable-vector-1-label}}」を選択している利用者の[[Special:GlobalPreferences#mw-prefsection-rendering|グローバル個人設定]]に支障が出ています。開発者が問題解決に取り組んでいます。 [https://phabricator.wikimedia.org/T258493]
* ウィキベース拡張機能のバグにより、ウィキメディア・コモンズの標準名前空間(ギャラリー)における "移動保護" と "アップロード保護" が無効になっていました。新しく保護を設定した場合も、既に保護が設定されていた場合も効果がなく、通常は許可されないページの移動や作成が可能な状態でした。この問題は既に修正済です。 [https://phabricator.wikimedia.org/T258323]
'''今週の更新'''
* [[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS Player|ビデオプレイヤー]]がシンプルかつモダンなものに変わる予定です。現在、ベータ版として提供されているものは、今週からウィキペディア以外のプロジェクト群で標準機能として提供され、旧式のプレイヤーは使えなくなる予定です。 [https://phabricator.wikimedia.org/T248418]
* 利用者の設定した<code>global.js</code> および<code>global.css</code> ページがモバイルサイトでも読み込めるようになりました。モバイル版外装に書式を適用したくない場合は、[[mw:Help:Extension:GlobalCssJs#Per-skin_customization|説明文書]]をご参照ください。 [https://phabricator.wikimedia.org/T138727]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Skin:MonoBook|モノブック]]外装では <code>searchGoButton</code> IDが<code>searchButton</code> に変更されました。CSS と JS ガジェットに影響が出る見込みです。移行の手順は[[phab:T255953|T255953]]をご参照ください。これはすでに[[m:Special:MyLanguage/Tech/News/2020/27|第27週]]号でお知らせした件です。
* [[File:Octicons-tools.svg|15px|link=|高度]] ボット運用者はPywikibotを使用して定期的に議論をアーカイブすることができます。ボットが<code>counter</code>を使用して大規模なアーカイブを行わないようにした場合の動作が変更されました。 [https://phabricator.wikimedia.org/T215247]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-04|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-05|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-06|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W32"/> 2020年8月3日 (月) 15:43 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20336426 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/33|Tech News: 2020-33]] ==
<section begin="technews-2020-W33"/><div class="plainlinks mw-content-ltr" lang="en" dir="ltr"><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2020/33|Translations]] are available.
'''Recent changes'''
* [[m:WMDE_Technical_Wishes/Move_files_to_Commons|FileImporter and FileExporter]] became standard features on all Wikis during the first week of August. They help you transfer files from local wikis to Wikimedia Commons with the original file information and history intact. [https://phabricator.wikimedia.org/T140462]
'''Problems'''
* The mobile skin displays a message at the bottom of the page about who edited last. This message showed raw wikitext. This has now been fixed. Some messages in [[mw:Structured Discussions|Structured Discussions]] and [[mw:Content translation|content translation]] may still appear as raw wikitext. Developers are working on it. [https://phabricator.wikimedia.org/T259565]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|Recurrent item]] The [[mw:MediaWiki 1.36/wmf.4|new version]] of MediaWiki will be on test wikis and MediaWiki.org from August 11. It will be on non-Wikipedia wikis and some Wikipedias from August 12. It will be on all wikis from August 13 ([[mw:MediaWiki 1.36/Roadmap|calendar]]).
'''Future changes'''
* All wikis will be read-only for a few minutes on September 1. This is planned between 13:30 and 15:30 UTC. More information will be published in Tech News and will also be posted on individual wikis in the coming weeks. [https://phabricator.wikimedia.org/T243314][https://phabricator.wikimedia.org/T244808]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2020/33|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div></div> <section end="technews-2020-W33"/> 2020年8月10日 (月) 16:06 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tech_News_target_list_8&oldid=20353642 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/34|Tech News: 2020-34]] ==
<section begin="technews-2020-W34"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/34|翻訳]]されています。
'''最近の更新'''
* 「取り消し」リンクから編集を差し戻した場合、その編集には <code>取り消し</code> タグが付けられます。これは編集画面で一切の変更を行わずに取り消しをした場合にのみ発生します。取り消しのついでに別の編集を行なったとき、取り消しとして扱わないようにするためです。 [https://phabricator.wikimedia.org/T259014]
* [[mw:Special:MyLanguage/OOUI|OOUIの最新版]]は[[:w:ja: Internet Explorer 8| Internet Explorer 8]]の動作保証を行いません。今後Internet Explorer 8では表示が崩れたり、一部の機能が正常に動作しなくなります。[[m:Special:MyLanguage/Tech/News/2020/17|2020年17週の技術ニュース]]で既にお伝えした通りです。非常に古いブラウザにまで動作保証を行なった場合、別の問題が発生するためです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-August/093718.html]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-18|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-19|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-20|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 9月1日に全てのウィキが最大で1時間、読み取り専用の状態になります。時間はUTCで13:30から15:30の間を予定しています。詳報は来週の技術ニュースでお伝えします。これは備忘のための通知です。[[m:Tech/Server switch 2020|告知メッセージの翻訳]]にご協力ください。 [https://phabricator.wikimedia.org/T243314][https://phabricator.wikimedia.org/T244808]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W34"/> 2020年8月17日 (月) 20:41 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20366028 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/35|Tech News: 2020-35]] ==
<section begin="technews-2020-W35"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/35|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-25|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-26|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-27|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W35"/> 2020年8月24日 (月) 17:59 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20389773 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/35|Tech News: 2020-35]] ==
<section begin="technews-2020-W35"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/35|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-08-25|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-08-26|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-08-27|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W35"/> 2020年8月26日 (水) 11:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20389773 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/36|Tech News: 2020-36]] ==
<section begin="technews-2020-W36"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/36|翻訳]]されています。
'''問題点'''
* 念のためお知らせします。9月1日に全てのウィキにおいて数分間、閲覧専用になります。時間帯は14:00-15:00(UTC=日本時間同日23:00-24:00)の予定です。詳細は[[m:Tech/Server switch 2020|通知の内容]]をご確認ください。 [https://phabricator.wikimedia.org/T243314][https://phabricator.wikimedia.org/T244808]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W36"/> 2020年8月31日 (月) 20:12 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20411995 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/37|Tech News: 2020-37]] ==
<section begin="technews-2020-W37"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/37|翻訳]]されています。
'''今週の更新'''
* 通常、存在しないページか対象ページへのリダイレクト1版のみのページにのみページを移動させることができます。近日新しい利用者権限が追加され、編集者はどのような記事へのリダイレクトであってもリダイレクト1版だけのページに移動を行えるようになります。 [https://phabricator.wikimedia.org/T239277]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-08|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-09|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-09-10|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] 全てのMediaWiki [[:w:ja:アプリケーションプログラミングインタフェース|API]]モジュールは<code>watch</code>ではなく<code>watchlist</code>を使うようになります。これまでは統一されていませんでした。 [https://phabricator.wikimedia.org/T247915]
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/Android|アンドロイド版ウィキペディアアプリ]]の開発チームは巡回ツールの開発に取り組もうとしています。あなたや経験の浅い巡回者達にとってどのようなツールが使いやすいのかを開発チームに伝えてください。詳しくは[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Patrolling conversation|mediawiki.org のページ]]をご参照ください。
* [[m:Special:MyLanguage/OTRS|OTRS]]が新しいバージョンに更新されます。更新には2日ほどかかる予定です。この間、OTRSボランティアはシステムにアクセスできません。更新期間に届いたメールは更新完了後に配信されます。9月14日の08:00 (UTC) ごろに開始する予定ですが、今後、変更になるかもしれません。 [https://phabricator.wikimedia.org/T187984]
* アンドロイド版ウィキペディアアプリでは[[:mw:Wikimedia Apps/Team/Android/AppEditorTasks#Push Notifications for editors|プッシュ通知]]を受け取ることができます。誰かがあなたの会話ページに書き込みをしたり、編集が差し戻されたことを確認することができます。利用するには[[:w:en:Google Play Services|Google Play開発者サービス]]が必要です。Google Play開発者サービスを使わずにアプリを入手することも可能ですが、プッシュ通知は利用できません。Google Play開発者サービスは[[:w:en:Android KitKat|アンドロイド 4.4]]ユーザーがアプリを利用するためにも使われます。 [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android#Updates][https://phabricator.wikimedia.org/T146032]
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキメディアのコードレビューは今後、[[:w:ja:GitLab|GitLab]]に移行する方向です。ホストサーバーはウィキメディアサーバーの予定です。[[mw:GitLab consultation|協議]]にご参加ください。
* [[File:Octicons-tools.svg|15px|link=|高度]] [[phab:T262092|ベクタースキン]]のドロップダウンメニューは<code>.menu</code>クラスを使っていますが、将来的に機能しなくなります。代わりに<code>nav ul</code>を使用します。<code>.vectorTabs</code>と<code>.vectorMenu</code>も同様に機能しなくなります。一部のスクリプトは将来的に更新が必要になります。詳細を[[phab:T262092|Phabricatorで確認]]してください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W37"/> 2020年9月7日 (月) 16:00 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20427670 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/38|Tech News: 2020-38]] ==
<section begin="technews-2020-W38"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/38|翻訳]]されています。
'''問題点'''
* 先週、[[mw:Wikimedia Apps|ウィキペディアのアプリ]]は一時的に[[w:ja:Cascading Style Sheets|CSS]] が機能しなくなり、ページの表示が崩れていました。不具合自体はすぐに修正されましたが、CSSが無効の状態でキャッシュされたページが数時間にわたってアプリに表示されました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200909-mobileapps_config_change][https://phabricator.wikimedia.org/T262437]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-15|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-16|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-09-17|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W38"/> 2020年9月14日 (月) 16:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20446737 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/38|Tech News: 2020-38]] ==
<section begin="technews-2020-W38"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/38|翻訳]]されています。
'''問題点'''
* 先週、[[mw:Wikimedia Apps|ウィキペディアのアプリ]]は一時的に[[w:ja:Cascading Style Sheets|CSS]] が機能しなくなり、ページの表示が崩れていました。不具合自体はすぐに修正されましたが、CSSが無効の状態でキャッシュされたページが数時間にわたってアプリに表示されました。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/20200909-mobileapps_config_change][https://phabricator.wikimedia.org/T262437]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-15|{{PAGELANGUAGE}}}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-16|{{PAGELANGUAGE}}}}に、その他のウィキには{{#time:n月j日|2020-09-17|{{PAGELANGUAGE}}}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W38"/> 2020年9月15日 (火) 00:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20446737 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/39|Tech News: 2020-39]] ==
<section begin="technews-2020-W39"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/39|翻訳]]されています。
'''最近の更新'''
* 差し戻された編集を示すためのタグが新しく実装されました。このタグは取り消し、巻き戻しあるいは手動差し戻しが行われた過去の編集に対して付けられます。 [https://phabricator.wikimedia.org/T254074][https://phabricator.wikimedia.org/T164307]
'''今週の更新'''
* 一定の時間内にウィキで実行できる操作の回数には制限があります。これは1分間の編集の回数や、1日当たり何人までメールを送信できるかなどといったものです。ただし、一部の権限を持つ利用者はどの制限の影響を受けません。まもなく、権限による影響を受けなかった場合の制限値を確認できるようになります。 [https://phabricator.wikimedia.org/T258888]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-23|ja}}に、その他のウィキには{{#time:n月j日|2020-09-24|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W39"/> 2020年9月21日 (月) 21:28 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20461072 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/40|Tech News: 2020-40]] ==
<section begin="technews-2020-W40"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/40|翻訳]]されています。
'''最近の更新'''
* 管理者は削除された特定版の差分を [[Special:AbuseLog|Special:AbuseLog]]で参照できるようになりました。これには[[Special:Undelete|Special:Undelete]]のインターフェースを利用します。 [https://phabricator.wikimedia.org/T261630]
* 編集者は自動的に利用者グループに分類されます。 たとえば閾値を超える回数と期間に達すると[[mw:Special:MyLanguage/Manual:Autoconfirmed users|自動承認された利用者]]に追加されます。[[mw:Special:MyLanguage/Extension:AbuseFilter|不正行為のフィルター]]には利用者に自動的に付与されるはずの利用者権限を、一定期間、遅らせる働きがあります。あるいはまた、既得の権限を除去することもできます。ウィキではそれぞれこの期間の変更を依頼できるようになりました。現状の既定は5日間です。 [https://phabricator.wikimedia.org/T231756]
'''問題点'''
* [[m:Tech/News/2019/34|昨年]]、新規の変更により不正行為フィルタの一部が実行されなくなりました。特定の処理について該当しない変数を入力した場合に、フィルタが実行不能になっていました。現在では修正済みです。 [https://phabricator.wikimedia.org/T230256]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-09-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-09-30|ja}}に、その他のウィキには{{#time:n月j日|2020-10-01|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* トークページもしくは変更履歴ページでは、他言語版への言語リンクが表示されません。あるいはまた記事ページの編集中にも、表示できません。その対策として、たとえば変更履歴ページのリンク先を他言語の同種のページにするかそれとも記事ページか未定です。[[phab:T262472|Phabricatorで討議]]に参加してください。
* リンクの色が変わる予定です。これは記事の部分とリンク部分の違いを、もっと明確に示すためです。詳細は[[phab:T213778|Phabricator に記述してあります]]。
* 利用者は個人設定で、通知の種類別にウェブ上もしくはメールで受け取るように指定ができます。今週末には<code>Apps</code>という新規項目が選択肢に追加される予定です。これは[[mw:Wikimedia Apps|Android および iOS のウィキペディア・アプリ]]でプッシュ通知の受信を採用する選択肢ができたことを反映するためです。テストウィキで[https://test.wikipedia.org/wiki/Special:Preferences#mw-prefsection-echo 個人設定]を表示できます。目標として、プッシュ通知の採用は Android 版アプリで10月、 iOS 版は来年2021年初頭を見込んでいます。 [https://phabricator.wikimedia.org/T262936]
* まもなくウォッチリストに期限付きでページを追加できるようになります。たとえば特定のページをごく短期的にウォッチしたいけれど、ずっとウォッチリストに載せたくない場合に役立ちます。現状では[[mw:MediaWiki|mediawiki.org]] で有効で、他のウィキにも追って展開の予定です。[[m:Special:MyLanguage/Community Tech/Watchlist Expiry|詳細の閲読]]と[[m:Community Tech/Watchlist Expiry/Release Schedule|他のウィキへの展開の時期]]をそれぞれご確認ください。
* ウィキメディアンの皆さんが選んだ[[m:Special:MyLanguage/Coolest Tool Award|今年のもっともクールな技術のツール]]を公開しました。推薦も受付中です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W40"/> 2020年9月28日 (月) 21:24 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20483264 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/41|Tech News: 2020-41]] ==
<section begin="technews-2020-W41"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/41|翻訳]]されています。
'''最近の更新'''
* [https://consultation-stats.toolforge.org/ 新ツール]の導入により、どのウィキをホームとして活動する利用者が Meta の議論に参加しているか分かるようになりました。多くのウィキに影響を与える議論で、どのコミュニティが未参加なのか分かるようになります。
* ファイルをアップロードした利用者やページの言語を変更した利用者に対して感謝を示せるようになりました。 [https://phabricator.wikimedia.org/T254992]
'''問題点'''
* 先週展開した MediaWiki に不具合が多かったため、更新を差し戻しました。これに伴い先週、行われるはずだった更新の適用が遅れています。 [https://phabricator.wikimedia.org/T263177]
* すべての利用者が強制的にログアウトされました。ある利用者が他人名義でログインしていると報告したためです。現在は修正済みです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-October/093922.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] 多くのページで[[:w:ja:JavaScript|JavaScript]]のエラーが発生しています。このエラーに関する[https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/ 詳細]と、エラーが発生している[[:w:en:User:Jdlrobson/User scripts with client errors|ユーザースクリプトの一覧]]をそれぞれ参照できます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-07|ja}}に、その他のウィキには{{#time:n月j日|2020-10-08|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* リンクの直後にある文字列はリンクの一部として表示されます。例えば<code><nowiki>[[Child]]ren</nowiki></code>というリンクは単語全体をリンクの文字列として扱います。アラビア語版ウィキペディアの場合は単語の前後にある文字列をリンクとして扱うようになります。従来は単語の語頭にある数字と非英字のUnicode文字のみがリンクとして扱われていました。現在はラテン文字とアラビア文字をリンクの一部として扱っています。 [https://phabricator.wikimedia.org/T263266]
'''今後の予定'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)]から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W41"/> 2020年10月5日 (月) 16:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20515061 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/41|Tech News: 2020-41]] ==
<section begin="technews-2020-W41"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/41|翻訳]]されています。
'''最近の更新'''
* [https://consultation-stats.toolforge.org/ 新ツール]の導入により、どのウィキをホームとして活動する利用者が Meta の議論に参加しているか分かるようになりました。多くのウィキに影響を与える議論で、どのコミュニティが未参加なのか分かるようになります。
* ファイルをアップロードした利用者やページの言語を変更した利用者に対して感謝を示せるようになりました。 [https://phabricator.wikimedia.org/T254992]
'''問題点'''
* 先週展開した MediaWiki に不具合が多かったため、更新を差し戻しました。これに伴い先週、行われるはずだった更新の適用が遅れています。 [https://phabricator.wikimedia.org/T263177]
* すべての利用者が強制的にログアウトされました。ある利用者が他人名義でログインしていると報告したためです。現在は修正済みです。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-October/093922.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] 多くのページで[[:w:ja:JavaScript|JavaScript]]のエラーが発生しています。このエラーに関する[https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/ 詳細]と、エラーが発生している[[:w:en:User:Jdlrobson/User scripts with client errors|ユーザースクリプトの一覧]]をそれぞれ参照できます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-07|ja}}に、その他のウィキには{{#time:n月j日|2020-10-08|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* リンクの直後にある文字列はリンクの一部として表示されます。例えば<code><nowiki>[[Child]]ren</nowiki></code>というリンクは単語全体をリンクの文字列として扱います。アラビア語版ウィキペディアの場合は単語の前後にある文字列をリンクとして扱うようになります。従来は単語の語頭にある数字と非英字のUnicode文字のみがリンクとして扱われていました。現在はラテン文字とアラビア文字をリンクの一部として扱っています。 [https://phabricator.wikimedia.org/T263266]
'''今後の予定'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)]から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W41"/> 2020年10月5日 (月) 17:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20515061 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/42|Tech News: 2020-42]] ==
<section begin="technews-2020-W42"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/42|翻訳]]されています。
'''問題点'''
* 先々週に展開されたMediaWikiに問題が発生した影響で、先週予定されていたアップデートの反映も遅れています。 [https://phabricator.wikimedia.org/T263177][https://phabricator.wikimedia.org/T263178][https://lists.wikimedia.org/pipermail/wikitech-l/2020-October/093944.html]
'''今週の更新'''
* 節の編集を行った際、[[mw:Special:MyLanguage/Manual:Live preview|ライブプレビュー]]でテンプレートが表示されませんでした。この問題は修正済です。ライブプレビューを有効にすると、[[w:ja:Cascading Style Sheets|CSS]]および[[w:ja:JavaScript|JavaScript]]ページもテストすることができます。こちらの機能にも不具合が発生していましたが、修正されました。 [https://phabricator.wikimedia.org/T102286][https://phabricator.wikimedia.org/T186390]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-14|ja}}に、その他のウィキには{{#time:n月j日|2020-10-15|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 近日中に[[mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]]の新しい安定版を公開する予定です。 [https://lists.wikimedia.org/pipermail/pywikibot/2020-October/010056.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W42"/> 2020年10月12日 (月) 15:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20528295 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/43|Tech News: 2020-43]] ==
<section begin="technews-2020-W43"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/43|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-10-20|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-10-21|ja}}に、その他のウィキには{{#time:n月j日|2020-10-22|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)] 頃から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]拡張機能の<code dir=ltr>rmspecials()</code> 機能が近日中に更新され、 "半角スペース" を除去しなくなります。どのウィキでもフィルターが正常に機能するよう、<code dir=ltr>rmspecials()</code> を使用する必要があるときには <code dir=ltr>rmwhitespace()</code> で挟むように推奨されます。既存の使用箇所を検出するには、[[Special:AbuseFilter/ja|不正利用フィルター管理]]の検索機能を使ってください。 [https://phabricator.wikimedia.org/T263024]
* 一部のガジェットとユーザースクリプトではHTMLの <code dir=ltr style="white-space:nowrap;">#jump-to-nav</code> のIDが指定されたdiv要素を使用しています。このdiv要素がまもなく除去されます。メンテナはこれを <code dir=ltr>#siteSub</code> または <code dir=ltr style="white-space:nowrap;">#mw-content-text</code> に置き換える必要があります。影響を受けるスクリプトについては[[phab:T265373]]をご確認ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W43"/> 2020年10月19日 (月) 16:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20550811 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/44|Tech News: 2020-44]] ==
<section begin="technews-2020-W44"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/44|翻訳]]されています。
'''問題点'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)] 頃から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
* 先週、モバイル版ウォッチリストや最近の更新から差分を表示しようとしたとき、差分ではなく本文を表示してしまう不具合がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T265654]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[m:Special:MyLanguage/Interface administrators|インターフェース管理者]]の利用者グループが2018年に導入されてから、管理者権限のみを持つ利用者は削除されたCSS/JSの履歴を表示できないようになっていました。このたび機能が修正され、インターフェース管理者権限がなくてもこの履歴を閲覧できるようになりました。 [https://phabricator.wikimedia.org/T202989]
* [[Special:Tags|タグ付け]]機能に不具合が発生していました。差し戻しを行った直後に保護などの操作を行うと、ソフトウェアによって「{{int:Tag-mw-reverted}}」のタグが付けられてしまうようになっていました。この不具合は修正されており、今後行われる編集には誤ったタグが付かなくなります。 [https://phabricator.wikimedia.org/T265312]
* [[mw:Special:MyLanguage/Talk pages project/replying|返信ツール]]は11月から殆どのウィキペディアでオプトインの[[mw:Special:MyLanguage/Beta Feature|ベータ版機能]]として使えるようになります。日付が最終決定した際に改めてお知らせします。 [https://phabricator.wikimedia.org/T266303]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W44"/> 2020年10月26日 (月) 17:39 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20574890 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/44|Tech News: 2020-44]] ==
<section begin="technews-2020-W44"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/44|翻訳]]されています。
'''問題点'''
* [https://zonestamp.toolforge.org/1603807200 {{#time:n月j日|2020-10-27|ja}}14:00 (UTC)] 頃から最大1時間、ウィキが閲覧専用になります。作業時間は1時間未満で終わる可能性があります。 [https://phabricator.wikimedia.org/T264364]
* 先週、モバイル版ウォッチリストや最近の更新から差分を表示しようとしたとき、差分ではなく本文を表示してしまう不具合がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T265654]
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[m:Special:MyLanguage/Interface administrators|インターフェース管理者]]の利用者グループが2018年に導入されてから、管理者権限のみを持つ利用者は削除されたCSS/JSの履歴を表示できないようになっていました。このたび機能が修正され、インターフェース管理者権限がなくてもこの履歴を閲覧できるようになりました。 [https://phabricator.wikimedia.org/T202989]
* [[Special:Tags|タグ付け]]機能に不具合が発生していました。差し戻しを行った直後に保護などの操作を行うと、ソフトウェアによって「{{int:Tag-mw-reverted}}」のタグが付けられてしまうようになっていました。この不具合は修正されており、今後行われる編集には誤ったタグが付かなくなります。 [https://phabricator.wikimedia.org/T265312]
* [[mw:Special:MyLanguage/Talk pages project/replying|返信ツール]]は11月から殆どのウィキペディアでオプトインの[[mw:Special:MyLanguage/Beta Feature|ベータ版機能]]として使えるようになります。日付が最終決定した際に改めてお知らせします。 [https://phabricator.wikimedia.org/T266303]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W44"/> 2020年10月26日 (月) 19:23 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20574890 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/45|Tech News: 2020-45]] ==
<section begin="technews-2020-W45"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/45|翻訳]]されています。
'''最近の更新'''
* お使いのブラウザが非常に古い[[:w:ja:Transport Layer Security|TLS]]を採用している場合、ウィキメディアのウィキを閲覧できなくなりました。これはダウングレード攻撃([[:w:en:Downgrade attack|downgrade attack]])を招きかねず、全員のセキュリティに関わる問題だからです。2020年10月29日より、旧版の TLS を使用する利用者はウィキメディア・プロジェクトに接続できなくなります。[[:wikitech:HTTPS/Browser Recommendations|推奨されるブラウザ]]の一覧をご用意しました。最新の OS とブラウザはこれまでどおりウィキメディアのプロジェクト群につながります。 [https://phabricator.wikimedia.org/T258405]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[{{ns:14}}:{{MediaWiki:nonnumeric-formatnum}}|formatnumの引数に数値以外を設定したページ]]を対象とした新しい[[mw:Special:MyLanguage/Help:Tracking categories|自動追跡カテゴリ]]が利用できるようになりました。<code><nowiki>{{formatnum:TECHNEWS}}</nowiki></code> のように無効な(数値以外に対する) <code><nowiki>{{formatnum}}</nowiki></code> パーサー関数を指定したページを収集します。なお、<code><nowiki>{{formatnum:123,456}}</nowiki></code> のようなものも無効であることに注意してください。[[mw:Special:MyLanguage/Help:Magic_words#formatnum|ドキュメント]]でで説明しているように、確実かつ正確にローカライズできるよう、引数は<u>整形されていないもの</u>でなければなりません。追跡カテゴリは問題のある使用方法や二重フォーマットを探すのに役立ちます。新しい追跡カテゴリの名前は[https://translatewiki.net/w/i.php?title=Special:Translate&showMessage=nonnumeric-formatnum&group=core&optional=1&action=translate translatewikで翻訳することができます]。 [https://phabricator.wikimedia.org/T237467]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-11-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-11-04|ja}}に、その他のウィキには{{#time:n月j日|2020-11-05|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* 管理者とスチュワードの皆さんは新しい特別ページ(Special:CreateLocalAccount)を使い、グローバルアカウントに紐付けられたローカルアカウントを強制的に作成することができるようになる予定です。アカウント作成が阻止されてしまったときに役立ちます(ブロックもしくはフィルタが要因の場合。) [https://phabricator.wikimedia.org/T259721]
* [[mw:Special:MyLanguage/Talk pages project/replying|返信ツール]]は11月4日水曜日(UTC)より大部分のウィキペディアで選択制の[[mw:Special:MyLanguage/Beta Feature|ベータ機能]]として導入します。この変更の対象外は英語版、ロシア語版、ドイツ語版のウィキペディアと、小規模で特殊な状況のウィキペディア数件です。詳細は[[mw:Special:MyLanguage/Help:DiscussionTools|ヘルプページ]]ならびに[[mw:Help:DiscussionTools/Why can't I reply to this comment?|トラブルシューティングのガイド]]「ご参照ください。 [https://phabricator.wikimedia.org/T266303]
'''今後の予定'''
* 負の独立変数が与えられたとき、<code><nowiki>{{formatnum}}</nowiki></code>の出力に対してユニコードのマイナス記号 (− U+2212) を使うかどうか、議論が進行中です。 [https://phabricator.wikimedia.org/T10327]
* 将来的に[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation|アカウントを登録していない利用者の IP アドレスは誰にも表示されなくなります]]。代わりにエリアスが発行されます。荒らし対策の新しい利用者権限もしくはオプトイン機能をより多くの人にご用意し、非登録利用者の IP を開示します。今回の利用者権限もしくはオプトイン機能の付与には特定の要件を設けます。また荒らし対策の新しいツールも提供する予定です。まだ過程の初期のため、開発者はコミュニティから情報を集めている段階で、開発の提言に備えています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W45"/> 2020年11月2日 (月) 16:10 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20604769 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/46|Tech News: 2020-46]] ==
<section begin="technews-2020-W46"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/46|翻訳]]されています。
'''今週の更新'''
* 今週、MedaiWikiのバージョン更新はありません。
'''今後の予定'''
* [[m:WMDE Technical Wishes/ReferencePreviews|出典のプレビュー]]を見ることができるようになりました。カーソルを当てると脚注のプレビューを表示する機能で、これまで[[mw:Beta Features|ベータ版機能]]として運用されていましたが、このたび正式化され、既定で有効となります。設定から無効にすることも可能です。開発者はまず中小規模のウィキで実装する計画です。ご利用のウィキで早期の導入を検討する場合は[[m:User talk:Michael Schönitzer (WMDE)|ご連絡]]をお待ちしています。 [https://lists.wikimedia.org/pipermail/wikitech-ambassadors/2020-November/002373.html]
* 11月16日以降、短期間ですがカテゴリのソートが機能しなくなります。開発者が[[:w:en:International Components for Unicode|ユニコードの国際化コンポーネント]]を新バージョンへ移行する作業を行うためです。移行後にスクリプトを使用して既存のカテゴリのソートを修正します。対象ウィキの規模にもよりますが、作業時間は数時間から数日かかる見込みです。詳細は[[mw:Special:MyLanguage/Wikimedia Technical Operations/ICU announcement|こちらをご参照ください]]。 [https://phabricator.wikimedia.org/T264991][https://phabricator.wikimedia.org/T267145]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W46"/> 2020年11月9日 (月) 15:50 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20634159 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/47|Tech News: 2020-47]] ==
<section begin="technews-2020-W47"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/47|翻訳]]されています。
'''最近の更新'''
* カテゴリ内のページ一覧は[[:w:en:International Components for Unicode|ライブラリ]]を使用して、各ウィキの言語に応じた並べ替えが行われています。11月16日、殆どの言語版で一時的に正しい並べ替えが行われなくなります。開発者が新しいバージョンのライブラリへのアップグレードを行うためです。作業完了後にスクリプトを使用して既存のカテゴリ内の並べ直しが行われます。ウィキの規模によって、並べ直しには数時間から数日程度かかる見込みです。[[mw:Special:MyLanguage/Wikimedia Technical Operations/ICU announcement|詳細はこちらで]]ご覧いただけます。 [https://phabricator.wikimedia.org/T264991][https://phabricator.wikimedia.org/T267145]
'''今週の更新'''
* リダイレクトが使用できない[[mw:Special:MyLanguage/Help:Namespaces|名前空間]]にある2つのページの履歴を統合したとき、統合元の履歴を壊してしまう不具合がありました。まもなく修正される見込みです。 [https://phabricator.wikimedia.org/T93469]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-11-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-11-18|ja}}に、その他のウィキには{{#time:n月j日|2020-11-19|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2021|コミュニティ要望アンケート]]の提案を受付中です。来季以降に[[m:Community Tech|コミュニティ技術チーム]]が取り組む課題を決めるためのアンケート調査です。提案の受付期間は11月16日から30日まで、提案への投票期間は12月8日から同月21日までです。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W47"/> 2020年11月16日 (月) 15:37 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20669023 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/48|Tech News: 2020-48]] ==
<section begin="technews-2020-W48"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/48|翻訳]]されています。
'''最近の更新'''
* [[Special:Log|Special:Log]]のタイムスタンプがリンクになりました。リンクを辿ると Special:Log でその項目のみを単独で表示します。編集履歴のページでタイムスタンプのリンクを辿るのと似たような機能です。 [https://phabricator.wikimedia.org/T207562]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] Wikimedia [[wikitech:Portal:Cloud VPS|Cloud VPS]] はウィキメディア・ムーブメントの技術プロジェクトをホストしています。年1回、古くて使われていないプロジェクトを削除する時期になりましたので、開発者の皆さんは使用中の[[wikitech:News/Cloud VPS 2020 Purge|プロジェクトの継続使用を申請]]してください。申請のなかったプロジェクトは12月1日以降は閉鎖され、1月1日以降に順次削除される可能性があります。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-November/094054.html]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W48"/> 2020年11月23日 (月) 17:19 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20698111 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/49|Tech News: 2020-49]] ==
<section begin="technews-2020-W49"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/49|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-12-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-12-02|ja}}に、その他のウィキには{{#time:n月j日|2020-12-03|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/iOS|iOS 版ウィキペディア・アプリ]]で表示する編集履歴の件数が増えます。最近の更新について、試行段階としてそれぞれの記事がたどった編集履歴を見やすくします。まず[[:w:ja:A/Bテスト|テスト]]として iOS アプリの特定の利用者にのみ表示されます。 [https://phabricator.wikimedia.org/T241253][https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/iOS/Breaking_Down_the_Wall]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:SQL|SQL]]クエリに使える[[wikitech:Wiki replicas|Wiki Replicas]]というものがあります。[https://quarry.wmflabs.org/ Quarry]、[https://wikitech.wikimedia.org/wiki/PAWS PAWS]その他の方法を使って利用します。Wiki Replicas を安定させる変更を2件行う予定です。クロス・データベース<code>JOINS</code> は廃止の予定です。また直接開いた場合は、クエリを実行できるデータベースは1件のみになります。実施時期は2021年2月の計画です。もし皆さんに影響がありそうで助けが必要な場合は、[[phab:T268498|Phabricatに投稿する]]もしくは[[wikitech:Talk:News/Wiki Replicas 2020 Redesign|Wikitech]]にてご相談ください。 [https://wikitech.wikimedia.org/wiki/News/Wiki_Replicas_2020_Redesign]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W49"/> 2020年11月30日 (月) 17:45 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20728523 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/50|Tech News: 2020-50]] ==
<section begin="technews-2020-W50"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/50|翻訳]]されています。
'''最近の更新'''
* ウォッチリストにページを追加するとき、ウォッチリストから自動で削除される期限を指定できるようになりました。この機能はいくつかのウィキではすでに導入済みです。 [https://meta.wikimedia.org/wiki/Community_Tech/Watchlist_Expiry][https://www.mediawiki.org/wiki/Help:Watchlist_expiry]
'''今週の更新'''
* ウィキページで使われたウィキデータの情報を、最近の更新に表示したりウォッチリストに追加できます。有効にするには個人設定→ウォッチリスト→「ウィキデータの編集をウォッチリストに表示」をオンにします。するとウィキメディアのウィキで最近の更新とウォッチリストでウィキデータの説明の変更を見ることができるようになります。ご利用のウィキの言語に限定され、他言語版の編集は反映されません。 [https://lists.wikimedia.org/pipermail/wikidata/2020-November/014402.html][https://phabricator.wikimedia.org/T191831]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-12-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-12-09|ja}}に、その他のウィキには{{#time:n月j日|2020-12-10|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 12月8日から同21日まで、[[m:Special:MyLanguage/Community Wishlist Survey 2021|コミュニティ要望アンケート]]では提案に対する投票を受け付けています。これにより[[m:Community Tech|コミュニティ技術チーム]]の作業課題が決まります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W50"/> 2020年12月7日 (月) 16:15 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20754641 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/51|Tech News: 2020-51]] ==
<section begin="technews-2020-W51"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/51|翻訳]]されています。
'''最近の更新'''
* [[mw:Wikipedia for KaiOS|Wikipedia アプリ]]にはフィーチャーフォンの[[:w:ja:KaiOS|KaiOS]]用があります。2020年9月にインドで発表され、他の国でもダウンロードができるようになりました。 [https://diff.wikimedia.org/2020/12/10/growing-wikipedias-reach-with-an-app-for-kaios-feature-phones/]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2020-12-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2020-12-16|ja}}に、その他のウィキには{{#time:n月j日|2020-12-17|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W51"/> 2020年12月14日 (月) 21:34 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20803489 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2020/52|Tech News: 2020-52]] ==
<section begin="technews-2020-W52"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2020/52|翻訳]]されています。
'''技術ニュース'''
* [[w:ja:年末年始|年末年始]]に当たるため、技術ニュースの次号は2021年1月11日の発行になります。
'''最近の更新'''
* <code><nowiki>{{citation needed}}</nowiki></code>テンプレートはウィキペディアの記事中の特定の文に、情報源を加えるように促すため表示します。ビジュアルエディタを使用中にこのテンプレートをクリックすると、左記を説明するポップアップが現れますが、理由とそのテンプレートが追加された日時を示すようになりました。 [https://phabricator.wikimedia.org/T270107]
'''今週の更新'''
* 今週と来週は、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 地理情報に関して、今後、改善が必要な点の[[m:WMDE Technical Wishes/Geoinformation/Ideas|提案と協議]]を受け付けます。具体的には緯度経度、地図などが対象になります。
* ウィキによって、記法や地方語との切り替えに[[mw:Writing systems/LanguageConverter|LanguageConverter]]を使っている場合があります。これを利用する場合、ページ全体しか対象になりません。ページ内の一部分を対象にする<code><nowiki><langconvert></nowiki></code>タグが使えるようになる予定です。 [https://phabricator.wikimedia.org/T263082]
* オーバーサイトとスチュワードは[[Special:AbuseLog|特別:不正利用フィルター記録]]を1件ずつ非表示する機能があります。まもなく、チェックボックスを使って複数の項目を一括で非表示にできるようにする予定です。通常の編集を非表示にするときと同じ要領で項目を非表示にすることができます。実装は1月初旬の予定です。 [https://phabricator.wikimedia.org/T260904]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2020/52|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2020-W52"/> 2020年12月21日 (月) 20:54 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20833836 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/02|Tech News: 2021-02]] ==
<section begin="technews-2021-W02"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/02|翻訳]]されています。
'''最近の更新'''
* 編集要約欄が未記入の場合、警告メッセージを表示する選択肢があります。個人設定で指定してください。これまでは [[:w:ja:CAPTCHA|CAPTCHA]]と衝突することがありましたが、現在では解決しています。 [https://phabricator.wikimedia.org/T12729]
* 任意のログ記録にリンクすることができます。その方法は、たとえばログのタイムスタンプを押すとリンクを取得できます。以前は、非公開のログ記録を閲覧する権限がある利用者にも、何も表示しませんでした。現在は、リンクが記録を表示するようになりました。 [https://phabricator.wikimedia.org/T269761]
* 管理者が使える [[:mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]は自動的に質の悪い編集を防止します。先週、変更箇所が3点ありました。
** フィルターの編集 UI に文字入力すると、シンタックスエラーを表示するようになりました。JavaScript で記述したページと似た機能です。正規表現に対して検出する文字列が空の場合、警告メッセージを表示します。さらに警告メッセージを追加する予定です。 [https://phabricator.wikimedia.org/T187686]
** [[m:Special:MyLanguage/Meta:Oversighters|オーバーサイト]]向けの[[Special:AbuseLog]] でチェックボックスを使い、フィルターの複数のログ記録をまとめて非表示にするようになりました。これにより通常の更新削除と同じ使い方ができます。 [https://phabricator.wikimedia.org/T260904]
** <span lang="en" dir="ltr" class="mw-content-ltr">When a filter matches too many actions after it has been changed it is "throttled". The most powerful actions are disabled. This is to avoid many editors getting blocked when an administrator made a mistake. The administrator will now get a notification about this "throttle".</span>
* [[File:Octicons-tools.svg|15px|link=|高度]] [https://skins.wmflabs.org/?#/add 新しい外装を作成]するツールが追加されました。また既存の[[mw:Special:MyLanguage/Manual:Skins|外装]]を[https://skins.wmflabs.org/?#/ 表示する]こともできます。[[mw:User talk:Jdlrobson|フィードバックを募集中]]です。 [https://lists.wikimedia.org/pipermail/wikitech-l/2020-December/094130.html]
* [[File:Octicons-tools.svg|15px|link=|高度]] API を利用するボットは、ページの監視に自動的にアカウントの個人設定を反映しなくなりました。現在も<code>watchlist</code>を<code>watch</code> に設定することはできます。データベース上のウォッチリストのデータ量を減らす方策です。 [https://phabricator.wikimedia.org/T258108]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] の[[:mw:Extension:Scribunto/Lua reference manual#File metadata|ファイルのメタデータ]]の要素に長さを追加しました。 [https://phabricator.wikimedia.org/T209679]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:CSS|CSS]] と [[:w:ja:JavaScript|JavaScript]] コードページにはそれぞれ、行番号にリンクアンカーを設けました。 [https://phabricator.wikimedia.org/T29531]
* [[File:Octicons-sync.svg|12px|link=|定例]] 先週、MediaWikiの[[mw:MediaWiki 1.36/wmf.25|バージョン更新]]を実施しました。変更点は763 あり、[[mw:MediaWiki 1.36/wmf.25/Changelog|詳細なログ]]をご参照ください。大部分はとても細かな変更であり、皆さんに影響はないと見られます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-13|ja}}に、その他のウィキには{{#time:n月j日|2021-01-14|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W02"/> 2021年1月11日 (月) 15:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20950047 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/03|Tech News: 2021-03]] ==
<section begin="technews-2021-W03"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/03|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-20|ja}}に、その他のウィキには{{#time:n月j日|2021-01-21|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Special:MyLanguage/Growth|Growth チーム]]では機能を追加し、さらに多くのウィキペディアで[[mw:Special:MyLanguage/Growth/Personalized first day/Newcomer tasks/Experiment analysis, November 2020|訪問者がもっと編集に参加するように働きかける]]計画です。[https://translatewiki.net/w/i.php?title=Special:Translate&group=ext-growthexperiments&language=&filter=&action=translate インターフェースの翻訳]を手伝ってください。
* Wikimedia コモンズは [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210126T07 {{#time:n月j日|2021-01-26|ja}} 07:00 (UTC)] から数分ほど、読み込み専用になります。 [https://phabricator.wikimedia.org/T271791]
* [[m:Special:MyLanguage/MassMessage|MassMessage]] の投稿は今後、自動的にタイムスタンプを付ける計画です。これは MassMessage を使って送信者がページを送れるようになり、ページには署名しにくい点の対策です。もし MassMessage の投稿にタイムスタンプをつけてはいけない場合をご存知でしたら、[[phab:T270435|開発者に連絡をお願いします]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W03"/> 2021年1月18日 (月) 16:10 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=20974628 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/04|Tech News: 2021-04]] ==
<section begin="technews-2021-W04"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/04|翻訳]]されています。
'''問題点'''
* Wikimedia コモンズでは[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210126T07 {{#time:n月j日|2021-01-26|ja}}7:00 (UTC)] から、[[:wikitech:Main Page|Wikitech]] では[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210128T09 {{#time:n月j日|2021-01-28|ja}} 09:00 (UTC)] から、それぞれ短い時間、閲覧はできても編集はできない状態になります。 [https://phabricator.wikimedia.org/T271791][https://phabricator.wikimedia.org/T272388]
'''今週の更新'''
* 第1陣のウィキで[[m:WMDE Technical Wishes/Bracket Matching|カッコ記号の整合]]を[[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] 構文強調機能に導入します。第1陣とはウィキペディアのドイツ語版とカタロニア語版とし、またその他のウィキメディア ウィキ群も対象にする可能性があります。実施は1月27日です。 [https://phabricator.wikimedia.org/T270238]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-27|ja}}に、その他のウィキには{{#time:n月j日|2021-01-28|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W04"/> 2021年1月25日 (月) 18:31 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21007423 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/04|Tech News: 2021-04]] ==
<section begin="technews-2021-W04"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/04|翻訳]]されています。
'''問題点'''
* Wikimedia コモンズでは[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210126T07 {{#time:n月j日|2021-01-26|ja}}7:00 (UTC)] から、[[:wikitech:Main Page|Wikitech]] では[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210128T09 {{#time:n月j日|2021-01-28|ja}} 09:00 (UTC)] から、それぞれ短い時間、閲覧はできても編集はできない状態になります。 [https://phabricator.wikimedia.org/T271791][https://phabricator.wikimedia.org/T272388]
'''今週の更新'''
* 第1陣のウィキで[[m:WMDE Technical Wishes/Bracket Matching|カッコ記号の整合]]を[[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] 構文強調機能に導入します。第1陣とはウィキペディアのドイツ語版とカタロニア語版とし、またその他のウィキメディア ウィキ群も対象にする可能性があります。実施は1月27日です。 [https://phabricator.wikimedia.org/T270238]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-01-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-01-27|ja}}に、その他のウィキには{{#time:n月j日|2021-01-28|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W04"/> 2021年1月25日 (月) 20:48 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21007423 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/05|Tech News: 2021-05]] ==
<section begin="technews-2021-W05"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/05|翻訳]]されています。
'''問題点'''
* 差分表示のとき、[[:w:ja:IPv6アドレス|IPv6 アドレス]]はすべて小文字で表示されます。しかし[[Special:Contributions|特別:投稿記録]]はIPアドレスを大文字限定で認識していたため、リンク切れの原因になっていました。現在は修正されています。 [https://phabricator.wikimedia.org/T272225]
'''今週の更新'''
* ウィキデータでは近々、多言語版ウィキソースにリンクできるようになります。 [https://phabricator.wikimedia.org/T138332]
* 単語と数字など、2要素の間にスペースを挟み、それでいて無用な改行を発生させないため、編集者はしばしば「[[w:ja: ノーブレークスペース |ノーブレークスペース]]」を使うことがあります。この特殊な文字列を手打ちではなくメニューの記号から選んで入力できるようになりました。対象はウィキ文エディタの2010年版と2017年版と、ビジュアルエディタです。ビジュアルエディタでは、ノーブレークスペースはグレーで表示します。 [https://phabricator.wikimedia.org/T70429][https://phabricator.wikimedia.org/T96666]
* [[File:Octicons-tools.svg|15px|link=| 高度]] ウィキでは[[mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]を使い、質の悪い編集を防止しています。フィルターの管理でIP範囲に使える構文に<code>1.2.3.4 - 1.2.3.55</code>や<code>1.2.3.4/27</code>が加わりました。 [https://phabricator.wikimedia.org/T218074]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.29|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-03|ja}}に、その他のウィキには{{#time:n月j日|2021-02-04|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Skin:Minerva Neue|ミネルバ]]外装はウィキメディアのウィキ群が携帯機器向けに採用しています。ページが保護されていて編集できない場合、通常はウィキコードのソースを閲覧することができます。しかし、携帯機器ではこの機能が使用できません。現在、問題の修正に取り組んでいます。また、文字の一部が折り重なって表示されることがあります。その場合は皆さんのコミュニティで[[MediaWiki:Protectedpagetext|MediaWiki:Protectedpagetext]] を更新し、携帯機器で機能するようにしてください。[[phab:T208827|詳細はこちら]]をご参照ください。 [https://www.mediawiki.org/wiki/Recommendations_for_mobile_friendly_articles_on_Wikimedia_wikis#Inline_styles_should_not_use_properties_that_impact_sizing_and_positioning][https://www.mediawiki.org/wiki/Recommendations_for_mobile_friendly_articles_on_Wikimedia_wikis#Avoid_tables_for_anything_except_data]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:wikitech:Portal:Cloud VPS|Cloud VPS]] ならびに [[:wikitech:Portal:Toolforge|Toolforge]] はウィキ群に接増するときに使用するIPアドレスを変更する予定です。新しい IP アドレスは、<code>185.15.56.1</code>です。変更実施は2月8日を計画しています。[[:wikitech:News/CloudVPS NAT wikis|詳細はこちら]]をご参照ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W05"/> 2021年2月1日 (月) 22:39 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21033195 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/06|Tech News: 2021-06]] ==
<section begin="technews-2021-W06"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/06|翻訳]]されています。
'''最近の更新'''
* Android版[[mw:Special:MyLanguage/Wikimedia Apps|Wikipedia アプリ]]にウォッチリストとトークページが導入されました。 [https://play.google.com/store/apps/details?id=org.wikipedia]
'''今週の更新'''
* [[Special:Watchlist|特別:ウォッチリスト]]に登録すると、そのページが変更されたときに通知が届きます。どのウィキでもウォッチリストにページを追加できます。2月11日 (UTC)、Meta に[[:mw:Special:MyLanguage/Extension:GlobalWatchlist|グローバルウォッチリスト]]拡張機能を導入する予定です。この機能を使うと各ウィキでウォッチしているページの更新をひとつのページにまとめて表示することができます。この新しいウォッチリストは Meta の[[m:Special:GlobalWatchlist|Special:GlobalWatchlist]] をご参照ください。[[m:Special:GlobalWatchlistSettings|Special:GlobalWatchlistSettings]]では監視するウィキ群ほかの設定ができます。対象とするウィキは合計5件までです。 [https://phabricator.wikimedia.org/T260862]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.30|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-10|ja}}に、その他のウィキには{{#time:n月j日|2021-02-11|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 管理者が[[mw:Special:MyLanguage/Help:Protecting and unprotecting pages|保護操作を行う]]ページに対して[[mw:UX standardization|OOUI look]]を採用する予定です。[[Special:Import|特別:インポート]]も同様に外見を刷新します。これにより携帯端末での操作が容易になります。 [https://phabricator.wikimedia.org/T235424][https://phabricator.wikimedia.org/T108792]
* 2月17日 07:00 (UTC) より短い時間ですが一部のサービスが利用できくなり見込みです。新規の[[m:Special:MyLanguage/Wikimedia URL Shortener|短縮リンク生成]]、翻訳、通知、[[mw:Reading/Reading Lists|リーディングリスト]]への追加、[[:w:ja:バウンスメール|バウンスメール]]の記録などが正常に行われない可能性があります。原因はデータベースの管理作業を実施するためです。 [https://phabricator.wikimedia.org/T273758]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術ニュースの[[m:Tech/News/2021/05|先週号]]で [[:wikitech:Portal:Cloud VPS|Cloud VPS]] と [[:wikitech:Portal:Toolforge|Toolforge]] からウィキに接続する IP アドレスを2月8日に変更するとお知らせしましたが、実施が遅れています。後日改めて実施する予定です。 [https://wikitech.wikimedia.org/wiki/News/CloudVPS_NAT_wikis]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W06"/> 2021年2月8日 (月) 17:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21082948 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/07|Tech News: 2021-07]] ==
<section begin="technews-2021-W07"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/07|翻訳]]されています。
'''問題点'''
* MediaWiki の新しいバージョンに不具合がありました。アップデートによって問題が発生したため開発者は旧版への巻き戻しを行いました。予定された新機能の導入は延期される予定です。 [https://lists.wikimedia.org/pipermail/wikitech-l/2021-February/094255.html][https://lists.wikimedia.org/pipermail/wikitech-l/2021-February/094271.html]
* 2月17日 07:00 (UTC) より短い時間ですが一部のサービスが利用できない見込みです。新規の[[m:Special:MyLanguage/Wikimedia URL Shortener|短縮URLの生成]]、翻訳、通知、[[mw:Reading/Reading Lists|リーディングリスト]]への追加、[[:w:ja:バウンスメール|バウンスメール]]の記録などが正常に行われない可能性があります。データベースのメンテナンスを実施するためです。 [https://phabricator.wikimedia.org/T273758]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.31|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-17|ja}}に、その他のウィキには{{#time:n月j日|2021-02-18|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W07"/> 2021年2月15日 (月) 17:56 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21105437 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/08|Tech News: 2021-08]] ==
<div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/08|翻訳]]されています。
'''最近の更新'''
* ビジュアルエディターに画像を検索する[[:c:Commons:Structured data/Media search|MediaSearch]](メディアサーチ)を導入しました。挿絵がほしいと思った時、ビジュアルエディターを使いながらコモンズから画像を選べます。目標は編集者がよりよい画像を探せるようにすることです。 [https://phabricator.wikimedia.org/T259896]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]が新しく[[:w:en:Futhark (programming language)|Futhark]]、[[:w:ja:Graphviz|Graphviz]]、[[:w:ja:DOT言語|DOT]]、CDDL、AMDGPUに対応しました。 [https://phabricator.wikimedia.org/T274741]
'''問題点'''
* [[mw:Special:MyLanguage/Extension:EasyTimeline|タイムライン]]を編集するとテキストが全て除去されてしまうことがありました。これはバグによるもので、現在は修正済みです。タイムラインを正常な表示に戻すには、タイムラインを再度編集する必要があるかもしれません。 [https://phabricator.wikimedia.org/T274822]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.32|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-02-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-02-24|ja}}に、その他のウィキには{{#time:n月j日|2021-02-25|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:Rust (プログラミング言語)|Rust言語]]を使ったウィキメディアウィキでの作業に興味がある開発者と利用者向けの[[:m:Wikimedia Rust developers user group|利用者グループ]]があります。ウィキの機能を改良したい人の参加や勧誘をお待ちしています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div>
----
2021年2月23日 (火) 00:18 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21134058 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/09|Tech News: 2021-09]] ==
<div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/09|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Growth チーム用ツール]]を使用しているウィキでは各新規参加者を担当するメンターの名前を[[mw:Special:MyLanguage/Help:Growth/Mentorship/Integrating_mentorship|マジックワード]]で表示できるようになりました。ウェルカムメッセージやユーザーボックスで使用することができます。
* 新しいバージョンの[[c:Special:MyLanguage/Commons:VideoCutTool|ビデオカットツール]]が利用できます。クロップ、トリミング、オーディオの無効化、映像の回転などを行うことができます。この機能は開発者アウトリーチプログラムの一環として作成されています。
'''問題点'''
* [[mw:Special:MyLanguage/Manual:Job queue|ジョブキュー]]に問題が発生していました。一部の機能が変更を保存せず、メッセージ一斉送信に遅延が生じました。ウィキの編集には影響ありませんでした。 [https://phabricator.wikimedia.org/T275437]
* Firefox または Safari の最新版を使用している一部の編集者は、統一アカウントで自動的なログインを行えないことがあります。 [https://phabricator.wikimedia.org/T226797]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.33|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-03|ja}}に、その他のウィキには{{#time:n月j日|2021-03-04|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div>
----
2021年3月1日 (月) 19:08 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21161722 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/10|Tech News: 2021-10]] ==
<section begin="technews-2021-W10"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/10|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Content translation/Section translation|節単位の翻訳]]がベンガリ語ウィキペディアに導入されました。モバイルビューを使う編集者が記事を節単位で翻訳できるようにする機能です。今後、利用できるウィキが増える予定です。まず、記事が少なく編集活動が多いウィキを対象にしていきます。[https://sx.wmflabs.org/index.php/Main_Page 使用したら][[mw:Talk:Content translation/Section translation|フィードバックをお寄せください]]。
* [[mw:Special:MyLanguage/Help:Extension:FlaggedRevs|フラグ付き査読機能]]で管理者に査読権限が与えられるようになりました。 [https://phabricator.wikimedia.org/T275293]
* Twitter 上でウィキペディアの記事にリンクすると、その記事のプレビューが表示されます。 [https://phabricator.wikimedia.org/T276185]
'''問題点'''
* 多くのグラフで [[:w:ja:JavaScript|JavaScript]] のエラーが発生しています。グラフの編集を行った後、ブラウザの開発者コンソールでグラフの確認をしてください。 [https://phabricator.wikimedia.org/T275833]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.34|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-10|ja}}に、その他のウィキには{{#time:n月j日|2021-03-11|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* [[mw:Talk pages project/New discussion|新しい協議]]用のツールは近日中に、ほとんどのウィキペディアで既定の[[mw:Special:MyLanguage/Extension:DiscussionTools|協議ツール]]としてベータ展開されます。新規の協議をより簡単に始めることが目標です。 [https://phabricator.wikimedia.org/T275257]
'''今後の予定'''
* テンプレートに関して、使いこなしやすくするためいくつかの変更を行います。最初の変更は第1群のウィキ群に3月中に導入します。他の変更は同様に6月導入の予定です。これはテンプレートのさくせいしゃもしくは管理者と、利用者のどちらにも役立つはずです。[[:m:WMDE Technical Wishes/Templates|詳細はこちら]]。
* [[m:WMDE Technical Wishes/ReferencePreviews|出典のプレビュー]]機能を複数のウィキで3月17日から既定の機能として実装します。設定は[[mw:Page Previews|ページのプレビュー]]と共通です。Reference Tooltipsあるいはナビゲーション・ポップアップを使いたい場合は、今後も引き続き使えます。このとき、出典のプレビューが重複して表示されることはありません。 [https://phabricator.wikimedia.org/T271206][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/ReferencePreviews]
* 新しい JavaScript ベースの関数は[[:w:ja:Internet Explorer 11|Internet Explorer 11]] で動作しません。Internet Explorer は古いブラウザであり、今日使用される JavaScript の記述では動作しないためです。ただし、既に現時点で Internet Explorer 11 で動作する機能は引き続き Internet Explorer 11 でも動作します。[[mw:Compatibility/IE11|詳細はこちら]]を御覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W10"/> 2021年3月8日 (月) 17:51 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21175593 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/11|Tech News: 2021-11]] ==
<section begin="technews-2021-W11"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/11|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ改善]]プロジェクトに参加するウィキでは、新規の[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Search|検索機能]]が使えるようになりました。より多くのウィキでも後日、デスクトップ改善と新しい検索機能が利用できるようになる予定です。また[[mw:Reading/Web/Desktop Improvements#Deployment plan and timeline|先行して試用する]]こともできます。
* [[File:Octicons-tools.svg|15px|link=|高度]] バナー通知の掲載あるいはサイト全体に関与する [[:w:ja:JavaScript|JavaScript]] コードを変更する編集者は [https://grafana.wikimedia.org/d/000000566/overview?viewPanel=16&orgId=1 クライアント・エラー表示]を使い、変更によって問題が発生していないかどうか必ず確認しなければなりません。[https://diff.wikimedia.org/2021/03/08/sailing-steady%e2%80%8a-%e2%80%8ahow-you-can-help-keep-wikimedia-sites-error-free 詳細はこちら]をご参照ください。 [https://phabricator.wikimedia.org/T276296]
'''問題点'''
* [[phab:T276968|データベースの問題]]が原因で[https://meta.wikimedia.beta.wmflabs.org Wikimedia ベータクラスタ] が1日以上、読み取り専用でした。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.34|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-17|ja}}に、その他のウィキには{{#time:n月j日|2021-03-18|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* カスタム署名は現在、テンプレートを使って[[:w:ja:改行コード|改行]]または[[:w:ja:キャリッジ・リターン|キャリッジ・リターン]]記号を含めることができます。将来的にこれを禁止する提案があがっています。理由は書式エラーを発生させるからです。 [https://www.mediawiki.org/wiki/New_requirements_for_user_signatures#Additional_proposal_(2021)][https://phabricator.wikimedia.org/T272322]
* [[phab:T276899|12 件のウィキ]]では、閲覧はできても編集ができない時間帯が[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210323T06 {{#time:j xg|2021-03-23|en}} の 06:00 (UTC)] 以降に短時間、発生する見込みです。最長で30分、もっと早く終わるかもしれません。
* [[File:Octicons-tools.svg|15px|link=|高度]] [[wikitech:Wiki replicas|Wiki Replicas]] に対して[[:w:ja:SQL|SQL]] クエリに[https://quarry.wmflabs.org/ Quarry] が使えます。3月23日以降、データベース横断型の<code>JOINS</code> は作動しなくなります。どのデータベースに接続するか指定する欄が追加される予定です。もし皆さんがこれに影響を受けると考えられ、支援が必要な場合は [[phab:T268498|Phabricator]] もしくは [[wikitech:Talk:News/Wiki Replicas 2020 Redesign|Wikitech]] で申し出てください。[https://wikitech.wikimedia.org/wiki/PAWS PAWS] その他、Wiki Replica に [[:w:ja:SQL|SQL]] クエリを実行するものは後日、影響を受ける見込みです。 [https://wikitech.wikimedia.org/wiki/News/Wiki_Replicas_2020_Redesign]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W11"/> 2021年3月15日 (月) 23:23 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21226057 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/12|Tech News: 2021-12]] ==
<section begin="technews-2021-W12"/><div class="plainlinks mw-content-ltr" lang="ja" dir="ltr"><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/12|翻訳]]されています。
'''最近の更新'''
* [[:w:ja:KaiOS|KaiOS]] 用の [[mw:Wikipedia for KaiOS|Wikipedia アプリ]]が利用できます。この OS を使う端末にはタッチスクリーンがないため、使用する際はキーパッドを使ってナビゲートを行います。[https://wikimedia.github.io/wikipedia-kaios/sim.html シミュレータ]により、実際にどのように動作するかを確認することができます。
* [[mw:Special:MyLanguage/Talk pages project/Replying|返信ツール]]と[[mw:Special:MyLanguage/Talk pages project/New discussion|新しい議論ツール]]は[[Special:Preferences#mw-prefsection-betafeatures|ベータ版]]機能「{{int:discussiontools-preference-label}}」としてドイツ語版ウィキペディアを除く殆どのウィキで利用できるようになりますた。
'''問題点'''
* [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210323T06 3月23日 6:00(UTC)]に [[phab:T276899|12 のウィキ]]が閲覧はできても編集ができない状態になります。パスワードの変更、ウィキへの新規ログイン、グローバル利用者名変更、電子メールアドレスの確認や変更にも影響を与える可能性があります。編集できない時間は 30 分の予定ですが、予定よりも早く終了するかもしれません。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.36|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-24|ja}}に、その他のウィキには{{#time:n月j日|2021-03-25|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
* [[:w:ja:シンタックスハイライト|構文の強調表示]]を行う色が変更され、見やすくなります。まもなく[[phab:T276346|最初の対象となるウィキ]]で変更が実施されます。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Improved_Color_Scheme_of_Syntax_Highlighting]
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:FlaggedRevs|フラグ付き査読機能]]で「トーン」または「階層」のように複数のタグを付けることができなくなり、付けられるタグが 1 つになります。複数のタグを同時に付けているウィキが極めて少数である上、メンテナンスも難しくなることから今回の変更が実施されることになりました。 [https://phabricator.wikimedia.org/T185664][https://phabricator.wikimedia.org/T277883]
* [[File:Octicons-tools.svg|15px|link=|高度]] ガジェットやユーザースクリプトで JavaScript でページの変数に直接アクセスできなくなります。2015年に <code dir=ltr>wg*</code> から <code dir=ltr>mw.config</code> への移行が行われています。まもなく <code dir=ltr>wg*</code> は使用できなくなります。 [https://phabricator.wikimedia.org/T72470]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div></div> <section end="technews-2021-W12"/> 2021年3月22日 (月) 16:53 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21244806 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/13|Tech News: 2021-13]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/13|翻訳]]されています。
'''最近の更新'''
* 非常に古い[[:w:ja:ウェブブラウザ|ウェブブラウザ]]はウィキメディアのウィキで[[:mw:Special:MyLanguage/Compatibility|動作しなくなりました]]。従来サポートされていた、古いブラウザ用のコードが除去されたためです。対象となるブラウザで閲覧すると不具合が発生する可能性があります。 [https://phabricator.wikimedia.org/T277803]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:m:IRC/Channels#Raw_feeds|「最近の更新」の IRC フィード]]を新しいサーバに移転しました。すべてのツールがサーバーを指定せず自動で <code>irc.wikimedia.org</code> に再接続するかどうか確認してください。また、最新の[[:wikitech:Event Platform/EventStreams|イベントストリーム]]への移行も推奨されています。 [https://phabricator.wikimedia.org/T224579]
'''問題点'''
* 多数の編集者がウォッチリストに登録したページの場合、移動(改名)によって履歴が分断される可能性があります。また、いったん移動するとしばらくの間、再移動ができなくなる可能性があります。[[:w:ja:キュー (コンピュータ) |ジョブキュー]]に発生した問題が原因です。 [https://phabricator.wikimedia.org/T278350]
* メタの翻訳対象ページが編集できなくなっていました。原因は翻訳ツールのバグによるものです。この問題のため、MediaWiki のバージョン更新が遅れました。 [https://phabricator.wikimedia.org/T278429][https://phabricator.wikimedia.org/T274940]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.37|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-31|ja}}に、その他のウィキには{{#time:n月j日|2021-04-01|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年3月29日 (月) 17:31 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21267131 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/13|Tech News: 2021-13]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/13|翻訳]]されています。
'''最近の更新'''
* 非常に古い[[:w:ja:ウェブブラウザ|ウェブブラウザ]]はウィキメディアのウィキで[[:mw:Special:MyLanguage/Compatibility|動作しなくなりました]]。従来サポートされていた、古いブラウザ用のコードが除去されたためです。対象となるブラウザで閲覧すると不具合が発生する可能性があります。 [https://phabricator.wikimedia.org/T277803]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:m:IRC/Channels#Raw_feeds|「最近の更新」の IRC フィード]]を新しいサーバに移転しました。すべてのツールがサーバーを指定せず自動で <code>irc.wikimedia.org</code> に再接続するかどうか確認してください。また、最新の[[:wikitech:Event Platform/EventStreams|イベントストリーム]]への移行も推奨されています。 [https://phabricator.wikimedia.org/T224579]
'''問題点'''
* 多数の編集者がウォッチリストに登録したページの場合、移動(改名)によって履歴が分断される可能性があります。また、いったん移動するとしばらくの間、再移動ができなくなる可能性があります。[[:w:ja:キュー (コンピュータ) |ジョブキュー]]に発生した問題が原因です。 [https://phabricator.wikimedia.org/T278350]
* メタの翻訳対象ページが編集できなくなっていました。原因は翻訳ツールのバグによるものです。この問題のため、MediaWiki のバージョン更新が遅れました。 [https://phabricator.wikimedia.org/T278429][https://phabricator.wikimedia.org/T274940]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.37|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-03-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-03-31|ja}}に、その他のウィキには{{#time:n月j日|2021-04-01|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年3月29日 (月) 20:39 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21267131 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/14|Tech News: 2021-14]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/14|翻訳]]されています。
'''最近の更新'''
* 記事の一部を折りたたみ、クリックして表示する機能があります。リンク先が折りたたんだ部分の中にある節見出しだった場合、リンクを押すと飛んだ先の節が自動的に表示されるようになりました。ブラウザ画面はリンク先の節までスクロールダウンします。以前はこのようなリンクがうまく作動せず、あらかじめ手動で節見出しを開いておく必要がありました。 [https://phabricator.wikimedia.org/T276741]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Citoid|citoid]] [[:w:ja:API|API]]は年と月のみで日がない日付を指定した場合、たとえば <code>2010-12</code>の代わりに<code>2010-12-XX</code>を適用するようになる予定です。<code>2010-12</code>を本来の意味である<code>December 2010</code> (2010年12月) ではなく<code>2010-2012</code> (期間) と取り違える可能性があるからです。これを [https://www.loc.gov/standards/datetime/ Extended Date/Time Format] (アメリカ議会図書館が策定した日付書式の規格) でレベル0ではなくレベル1と呼びます。 [https://phabricator.wikimedia.org/T132308]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.36/wmf.38|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-04-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-04-07|ja}}に、その他のウィキには{{#time:n月j日|2021-04-08|ja}}に展開されます([[mw:MediaWiki 1.36/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:wikitech:PAWS|PAWS]] から [[:wikitech:Wiki Replicas|Wiki Replicas]] に接続することができます。データベース横断型クエリの <code>JOINS</code> は4月28日以降動作しなくなります。この変更による影響を受ける可能性があり、手助けが必要な場合には [[phab:T268498|Phabricator]] または [[wikitech:Talk:News/Wiki Replicas 2020 Redesign|Wikitech]] でご相談ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年4月5日 (月) 19:41 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21287348 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/16|Tech News: 2021-16]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/16|翻訳]]されています。
'''最近の更新'''
* ウィキメディアのウィキ群に対して送られる問い合わせなどのメールは、ウィキメディアの編集者がボランティアで担当しています。ボランティアが使用するツールを従来の [[m:Special:MyLanguage/OTRS|OTRS]] から [https://github.com/znuny/Znuny Znuny] に変更しました。機能とインターフェースに変更はありません。ボランティアの管理者から、今後の予定について、後日説明が行われる予定です。 [https://phabricator.wikimedia.org/T279303][https://phabricator.wikimedia.org/T275294]
* [[Mw:Special:MyLanguage/Extension:CodeMirror|構文の強調表示機能]]を使用している場合、2017年版と2020年版の編集エディタでテンプレートを編集したときに行番号が表示されるようになりました。改行を確認しやすくしたり、特定の行について議論するときに役立ちます。行番号の表示は近日中に全ての名前空間で利用できるようになる予定です。 [https://phabricator.wikimedia.org/T267911][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Line_Numbering][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/Line_Numbering]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術的な変更に伴い、[https://phab.wmfusercontent.org/file/data/llvdqqnb5zpsfzylbqcg/PHID-FILE-25vs4qowibmtysl7cbml/Screen_Shot_2021-04-06_at_2.34.04_PM.png これと同じような]編集の要約欄を持つガジェットやスクリプトで問題が起こる可能性があります。もし問題が発見された場合には、<code>mw.loader.using('mediawiki.action.edit.styles')</code> を使用して従来の状態に差し戻してください。 [https://phabricator.wikimedia.org/T278898]
* MediaWikiの[[mw:MediaWiki 1.37/wmf.1|最新版]]は先週、ウィキメディアのウィキ群に展開されています。先週は技術週報を休刊しました。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 利用者グループ <code>oversight</code> は <code>suppress</code> へと改称されます。これは[[phab:T109327|技術的な理由によるものです]]。変更されるのはシステム上の名称です。ウィキ上におけるグループの名称に影響を与えるものではありません。変更作業は2週間以内に実施予定です。意義を申し立てる場合は[[phab:T112147|Phabricator]]にコメントをお願いします。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年4月19日 (月) 16:49 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21356080 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/17|Tech News: 2021-17]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/17|翻訳]]されています。
'''最近の更新'''
* テンプレートには特定の値をとるパラメータがあります。編集者に[[mw:Special:MyLanguage/Extension:TemplateData|テンプレート・データ]]を使って値を推奨することができます。まもなくビジュアルエディタはこれらの値をドロップダウン・リストに表示するようになります。テンプレート利用者が正しい値をより早く見つけられるように支援するためです。 [https://phabricator.wikimedia.org/T273857][https://meta.wikimedia.org/wiki/Special:MyLanguage/WMDE_Technical_Wishes/Suggested_values_for_template_parameters][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/Suggested_values_for_template_parameters]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-04-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-04-28|ja}}に、その他のウィキには{{#time:n月j日|2021-04-29|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年4月26日 (月) 21:25 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21391118 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/18|Tech News: 2021-18]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/18|翻訳]]されています。
'''最近の更新'''
* [[w:en:Wikipedia:Twinkle|Twinkle]] というガジェットがウィキペディア英語版で利用されています。メンテナンスと巡回に役立つガジェットです。このたび、[[m:Grants:Project/Rapid/SD0001/Twinkle localisation/Report|他のウィキでも利用できるようになりました]]。ご利用のウィキに Twinkle を導入するときは、GitHub リポジトリの[https://github.com/wikimedia-gadgets/twinkle-starter twinkle-starter] をご利用ください。
'''問題点'''
* [[mw:Special:MyLanguage/Content translation|コンテンツ翻訳ツール]]が一時的に多くの記事で動作しませんでした。バグが原因によるものです。 [https://phabricator.wikimedia.org/T281346]
* 5月5日におよそ1分間、特定の操作ができなくなる見込みです。予定時間は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210505T0600 06:00 UTC前後]です。コンテンツ翻訳ツールや通知機能をはじめとする幾つかの機能が影響を受けます。クラッシュを予防するためのアップグレードを行うためです。 [https://phabricator.wikimedia.org/T281212]
'''今週の更新'''
* [[mw:Special:MyLanguage/Help:Reference Previews|参考資料プレビュー]] は5月5日より、多くのウィキで既定の機能になる予定です。いくつかの変更があったため、実装が当初の予定より遅れました。この機能は[[mw:Special:MyLanguage/Page Previews|ページのプレビュー]]機能を使わずに利用することも可能です。当初の計画では、個人設定で両方の機能をまとめて有効または無効に切り替える予定でした。 [https://phabricator.wikimedia.org/T271206][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/ReferencePreviews]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-05|ja}}に、その他のウィキには{{#time:n月j日|2021-05-06|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:Cascading Style Sheets|CSS]] のクラス <code dir=ltr>.error</code> <code dir=ltr>.warning</code> <code dir=ltr>.success</code> は特に定義を行っていなければモバイル版閲覧環境で動作しません。6月以降はデスクトップ版の閲覧環境でも動作しなくなります。これにより、ガジェットやテンプレートに影響が出る可能性があります。クラスに対するスタイルを[[MediaWiki:Common.css]] やテンプレートスタイルで定義することは可能です。 [https://phabricator.wikimedia.org/T280766]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月3日 (月) 15:44 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21418010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/18|Tech News: 2021-18]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/18|翻訳]]されています。
'''最近の更新'''
* [[w:en:Wikipedia:Twinkle|Twinkle]] というガジェットがウィキペディア英語版で利用されています。メンテナンスと巡回に役立つガジェットです。このたび、[[m:Grants:Project/Rapid/SD0001/Twinkle localisation/Report|他のウィキでも利用できるようになりました]]。ご利用のウィキに Twinkle を導入するときは、GitHub リポジトリの[https://github.com/wikimedia-gadgets/twinkle-starter twinkle-starter] をご利用ください。
'''問題点'''
* [[mw:Special:MyLanguage/Content translation|コンテンツ翻訳ツール]]が一時的に多くの記事で動作しませんでした。バグによるものです。 [https://phabricator.wikimedia.org/T281346]
* 5月5日におよそ1分間、特定の操作ができなくなる見込みです。予定時間は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210505T0600 06:00 UTC前後]です。コンテンツ翻訳ツールや通知機能をはじめとする幾つかの機能が影響を受けます。クラッシュを予防するためのアップグレードを行うためです。 [https://phabricator.wikimedia.org/T281212]
'''今週の更新'''
* [[mw:Special:MyLanguage/Help:Reference Previews|参考資料プレビュー]] は5月5日より、多くのウィキで既定の機能になる予定です。いくつかの変更があったため、実装が当初の予定より遅れました。この機能は[[mw:Special:MyLanguage/Page Previews|ページのプレビュー]]機能を使わずに利用することも可能です。当初の計画では、個人設定で両方の機能をまとめて有効または無効に切り替える予定でした。 [https://phabricator.wikimedia.org/T271206][https://meta.wikimedia.org/wiki/Talk:WMDE_Technical_Wishes/ReferencePreviews]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-05|ja}}に、その他のウィキには{{#time:n月j日|2021-05-06|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:w:ja:Cascading Style Sheets|CSS]] のクラス <code dir=ltr>.error</code> <code dir=ltr>.warning</code> <code dir=ltr>.success</code> は特に定義を行っていなければモバイル版閲覧環境で動作しません。6月以降はデスクトップ版の閲覧環境でも動作しなくなります。これにより、ガジェットやテンプレートに影響が出る可能性があります。クラスに対するスタイルを[[MediaWiki:Common.css]] やテンプレートスタイルで定義することは可能です。 [https://phabricator.wikimedia.org/T280766]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月4日 (火) 12:57 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21418010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/19|Tech News: 2021-19]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/19|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-12|ja}}に、その他のウィキには{{#time:n月j日|2021-05-13|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 5月22日–23日にオンライン開催の[[mw:Wikimedia Hackathon 2021| ウィキメディア・ハッカソン]]のリンクでは、参加者の企画の予告が始まりました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月10日 (月) 15:10 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21428676 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/19|Tech News: 2021-19]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/19|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-12|ja}}に、その他のウィキには{{#time:n月j日|2021-05-13|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 5月22日–23日にオンライン開催の[[mw:Wikimedia Hackathon 2021| ウィキメディア・ハッカソン]]のリンクでは、参加者の企画の予告が始まりました。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月10日 (月) 16:26 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21428676 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/20|Tech News: 2021-20]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/20|翻訳]]されています。
'''最近の更新'''
* [[mw:Talk pages project/Replying|返信ツール]]で新しいツールバーが利用できるようにできました。ソースモード編集で動作します。[[Special:Preferences#mw-htmlform-discussion|個人設定]]で有効化することで利用できるようになります。 [https://phabricator.wikimedia.org/T276608] [https://www.mediawiki.org/wiki/Talk_pages_project/Replying#13_May_2021] [https://www.mediawiki.org/wiki/Talk_pages_project/New_discussion#13_May_2021]
* ウィキメディアの[https://lists.wikimedia.org/mailman/listinfo メーリングリスト]が新しいバージョンの[[:w:ja:GNU Mailman|Mailman 3]]に移行します。[[:w:ja:文字コード|文字コード]]の動作のために、<code>[[:w:ja:UTF-8|UTF-8]]</code>から <code>utf8mb3</code> への変更が行われます。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IEYQ2HS3LZF2P3DAYMNZYQDGHWPVMTPY/][https://phabricator.wikimedia.org/T282621]
* [[File:Octicons-tools.svg|15px|link=|高度]] 技術ニュースの[[m:Special:MyLanguage/Tech/News/2021/14|以前の号]]で、[[mw:Special:MyLanguage/Citoid|citoid]] [[:w:ja:API|API]]は日付を指定する際に年と月のみ指定して日を省略した場合、新しい方式で処理が行われるとお知らせしていました。しかし、現在この変更は差し戻されています。様々なwikiへの影響について更なる議論を行う必要があるためです。 [https://phabricator.wikimedia.org/T132308]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] <code>MediaWiki:Pageimages-blacklist</code> は <code>MediaWiki:Pageimages-denylist</code> に改名されます。リストを予め新しい名前に変更することも検討してください。一部のウィキで5月19日に、他の一部のウィキでは5月20日に変更が実施されます。このメッセージは殆どのウィキでは使用されていません。記事でサムネイルとして使用してはいけない画像のリストです。 [https://phabricator.wikimedia.org/T282626]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-19|ja}}に、その他のウィキには{{#time:n月j日|2021-05-20|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月17日 (月) 13:50 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21464279 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/21|Tech News: 2021-21]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/21|翻訳]]されています。
'''最近の更新'''
* これまでウィキメディア運動で利用する [[:m:Special:MyLanguage/IRC|IRC]] は [[:w:Special:MyLanguage/ja:Freenode|Freenode]](フリーノード)のネットワークを使用していました。このたび、ネットワーク管理者が大幅に入れ替わりました。[[m:Special:MyLanguage/IRC/Group_Contacts |ウィキメディア IRC グループの連絡先]] は [[:w:en:Libera Chat|Libera チャット]]ネットワークへの乗り換えが[[m:Special:Diff/21476411|決定しました]]。すべてのチャンネルを移動させると正式に決まったわけではありませんが、ウィキメディアの IRC チャンネル群は殆どがフリーノードから撤退することになる見込みです。 [[:m:IRC/Migrating_to_Libera_Chat|移設の手引き]]を設けているほか、ウィキメディア全体を対象とした[[m:Wikimedia Forum#Freenode (IRC)|関連議論]]が行われています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-05-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-05-26|ja}}に、その他のウィキには{{#time:n月j日|2021-05-27|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月24日 (月) 17:08 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21477606 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/22|Tech News: 2021-22]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/22|翻訳]]されています。
'''問題点'''
* ベクター外装でページの題名直下の通知文、ページ最下部のカテゴリ欄の文字の大きさが正しく表示されないという不具合が発生しました。先週の月曜日に修正済みです。 [https://phabricator.wikimedia.org/T283206]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年5月31日 (月) 17:06 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21516076 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/23|Tech News: 2021-23]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/23|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-09|ja}}に、その他のウィキには{{#time:n月j日|2021-06-10|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ウィキメディア運動では技術的なタスク管理に [[:mw:Special:MyLanguage/Phabricator|Phabricator]] を採用しています。技術関連の提案やバグ報告を受け付けたり、開発者の作業項目を集約しています。このたび Phabricator の運営会社が開発の中止を発表しました。ただちに影響が出るわけではありませんが、将来的に別の管理ツールに移行する可能性があります。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/YAXOD46INJLAODYYIJUVQWOZFIV54VUI/][https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/][https://phabricator.wikimedia.org/T283980]
* ウィキペディア内で検索を行ったとき、一部の言語で検索結果の増える場合があります。これの現象は主に、検索を行った利用者が[[:w:ja:ダイアクリティカルマーク|ダイアクリティカルマーク]]を適切に使用しなかった場合に発生します。その言語では必要ないと考えられており、記号の表記揺れを検索対象に含めていないことが原因です。例えばドイツ語版ウィキペディアでは、<code>Bedusz</code> を検索しても検索結果に <code>Będusz</code> は出てきません。ドイツ語で <code>ę</code> という文字は使われず、もっぱら <code>e</code> が代わりに使われるためです。この挙動は将来的に一部の言語版で改善される予定です。 [https://phabricator.wikimedia.org/T219550]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:MyLanguage/API:Main page|action API]]の[[:w:ja:クロスサイトリクエストフォージェリ |CSRF トークン パラメータ]]は2014年に変更されました。2014年より古い変数はまもなく機能しなくなります。ボット、ガジェットやユーザースクリプトのうち旧来の変数を使用しているものには影響が出るかもしれません。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IMP43BNCI32C524O5YCUWMQYP4WVBQ2B/][https://phabricator.wikimedia.org/T280806]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月7日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21551759 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/23|Tech News: 2021-23]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/23|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-09|ja}}に、その他のウィキには{{#time:n月j日|2021-06-10|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ウィキメディア運動では技術的なタスク管理に [[:mw:Special:MyLanguage/Phabricator|Phabricator]] を採用しています。技術関連の提案やバグ報告を受け付けたり、開発者の作業項目を集約しています。このたび Phabricator の運営会社が開発の中止を発表しました。ただちに影響が出るわけではありませんが、将来的に別の管理ツールに移行する可能性があります。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/YAXOD46INJLAODYYIJUVQWOZFIV54VUI/][https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/][https://phabricator.wikimedia.org/T283980]
* ウィキペディア内で検索を行ったとき、一部の言語で検索結果の増える場合があります。これの現象は主に、検索を行った利用者が[[:w:ja:ダイアクリティカルマーク|ダイアクリティカルマーク]]を適切に使用しなかった場合に発生します。その言語では必要ないと考えられており、記号の表記揺れを検索対象に含めていないことが原因です。例えばドイツ語版ウィキペディアでは、<code>Bedusz</code> を検索しても検索結果に <code>Będusz</code> は出てきません。ドイツ語で <code>ę</code> という文字は使われず、もっぱら <code>e</code> が代わりに使われるためです。この挙動は将来的に一部の言語版で改善される予定です。 [https://phabricator.wikimedia.org/T219550]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:MyLanguage/API:Main page|action API]]の[[:w:ja:クロスサイトリクエストフォージェリ |CSRF トークン パラメータ]]は2014年に変更されました。2014年より古い変数はまもなく機能しなくなります。ボット、ガジェットやユーザースクリプトのうち旧来の変数を使用しているものには影響が出るかもしれません。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IMP43BNCI32C524O5YCUWMQYP4WVBQ2B/][https://phabricator.wikimedia.org/T280806]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月7日 (月) 22:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21551759 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/24|Tech News: 2021-24]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/24|翻訳]]されています。
'''最近の更新'''
* ログイン利用はモバイルのウェブ版で[[:mw:Special:MyLanguage/Reading/Web/Advanced mobile contributions|改良版モード]]を利用できるようになりました。カテゴリはデスクトップ版の利用者と同様の表示になります。これにより、従来はデスクトップ版限定のガジェットのうち、いくつかはモバイル版サイト利用者も使える可能性があります。皆さんのウィキにそのようなガジェットがある場合は、モバイル版サイトでも有効にするかどうかを設定できます。ガジェットによっては表示をモバイル向けに調整する必要があるかもしれません。 [https://phabricator.wikimedia.org/T284763]
* ウィキデータの言語間リンクが[[:oldwikisource:Main Page|多言語ウィキソース]]でも動作するようになりました。 [https://phabricator.wikimedia.org/T275958]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 将来的に未登録利用者のIPを不特定多数の利用者が[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation|見られないようになります]]。これは法的な理由によるものです。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation#Updates|IPを確認する必要がある利用者]]を決めるための大まかなドラフトがあります。
* 6月22日に数分間、ウィキペディア・ドイツ語版、ウィキボヤージュ英語版に加え小規模ウィキ29件が閲覧専用になり編集ができない状態となります。予定時間は5:00から5:30 (UTC) の見込みです。 [https://phabricator.wikimedia.org/T284530]
* 6月28日の週に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T281515][https://phabricator.wikimedia.org/T281209]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月14日 (月) 20:26 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21587625 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/25|Tech News: 2021-25]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/25|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 問い合わせ対応ボランティアチームのグローバルグループ名 <code>otrs-member</code> は現在、<code>vrt-permissions</code> (<sup>※</sup>)に変更されています。不正利用フィルターに影響を与える可能性があります。 [https://phabricator.wikimedia.org/T280615]
'''問題点'''
* 6月22日にドイツ語版ウィキペディア、英語版ウィキボヤージュと、その他29の小規模ウィキで、数分にわたり閲覧はできても編集ができない状態になります。予定の時間帯は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210623T0500 5:00 から 5:30 (UTC)] の間と見込まれます。 [https://phabricator.wikimedia.org/T284530]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-23|ja}}に、その他のウィキには{{#time:n月j日|2021-06-24|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月21日 (月) 15:50 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21593987 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/26|Tech News: 2021-26]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/26|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth|Growth 機能]]があるウィキでは [[mw:Special:MyLanguage/Growth/Community configuration|Growth 機能の設定をウィキで直接行う]]ことができるようになりました。<code>Special:EditGrowthConfig</code> のページで操作できます。 [https://phabricator.wikimedia.org/T285423]
* ウィキソースに新しい [[m:Special:MyLanguage/Community Tech/OCR Improvements|OCR ツール]]が導入されます。「テキストの抽出」ボタンを表示したくない場合は [[Special:MyPage/common.css|common.css]] に <code>.ext-wikisource-ExtractTextWidget { display: none; }</code> を追加してください。 [https://phabricator.wikimedia.org/T285311]
'''問題点'''
*6月29日にウィキメディア ウィキでは、数分にわたり閲覧はできても編集ができない状態になります。時間は[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20210629T1400 14:00 (UTC)] の予定です。 [https://phabricator.wikimedia.org/T281515][https://phabricator.wikimedia.org/T281209]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-06-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-06-30|ja}}に、その他のウィキには{{#time:n月j日|2021-07-01|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* <code>スタブリンク形式として表示する閾値</code>、<code>サムネイルの大きさ</code>、<code>見出しに番号を自動的に振る</code> という項目が個人設定にあります。これらの機能を維持するのには費用が掛かる一方、機能を使用する編集者は殆どいません。このため、開発者は機能の削除を検討しています。機能を取り除くことにより、ページの読み込み速度が若干早くなります。[[mw:Special:MyLanguage/User:SKim (WMF)/Performance Dependent User Preferences|詳細とフィードバックについてはこちらをご覧ください]]。
* [[mw:Talk pages project/Replying|返信ツール]]のウィキテキストのソースモードにツールバーが追加される予定です。これを使うとページにリンクしたり他の利用者へ通知を送る操作が簡単になります。 [https://phabricator.wikimedia.org/T276609][https://www.mediawiki.org/wiki/Talk_pages_project/Replying#Status_updates]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年6月28日 (月) 16:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21653312 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/27|Tech News: 2021-27]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/27|翻訳]]されています。
'''技術ニュース'''
* 技術ニュースの次号は2021年7月19日に発行予定です。
'''最近の更新'''
* [[:wikidata:Q4063270|AutoWikiBrowser]] は同じ作業の繰り返しを簡単に行えるツールです。このたび[[:w:ja:JSON|JSON]] を採用しました。<code>Wikipedia:AutoWikiBrowser/CheckPage</code> は<code>Wikipedia:AutoWikiBrowser/CheckPageJSON</code> と <code>Wikipedia:AutoWikiBrowser/Config</code> に移動しました。<code>Wikipedia:AutoWikiBrowser/CheckPage/Version</code> は <code>Wikipedia:AutoWikiBrowser/CheckPage/VersionJSON</code> に移りました。ツール自体はウィキ上で設定を行なっているため、新しいバージョンでテンプレートが追加されたり正規表現が修正されるのを待つ必要がありません。 [https://phabricator.wikimedia.org/T241196]
'''問題点'''
* [[m:Special:MyLanguage/InternetArchiveBot|InternetArchiveBot]] はいくつかのウィキにおいて、オンラインの情報源を保存するために役立ちます。情報源となるページを[[:w:ja:ウェイバックマシン|ウェイバックマシン]]に保存し、リンクを張ります。これは外部リンクのページが削除されても、引き続きリンク先を読めるようにするための措置です。現在、ページを<code>archive.is</code> から <code>web.archive.org</code> に移動したとき、誤った日付にリンクされる不具合が発生しています。 [https://phabricator.wikimedia.org/T283432]
'''今週の更新'''
* [[m:WMDE Technical Wishes/Finding and inserting templates|テンプレートの検索、追加と削除]]を行うツールを更新する予定です。これは適切なテンプレートを簡単に探して使えるようにするためです。7月7日に最初のウィキ群に導入されます。さらにほかのウィキにも今年中に導入する予定です。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Removing_a_template_from_a_page_using_the_VisualEditor][https://phabricator.wikimedia.org/T284553]
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* ウィキメディアのウィキには [[m:Special:MyLanguage/Flagged Revisions|フラグ付き査読機能]]あるいは変更の保留機能を採用するところがあります。新規登録のアカウントや未登録の閲覧者には、巡回されるまでその編集は非表示にされます。フラグ付き査読に伴う自動査読の処理は今後、ログを取らなくなります。自動査読の過去ログもすべて削除される予定です。不要なログを大量に作成することへの対処です。 [https://phabricator.wikimedia.org/T285608]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年7月5日 (月) 17:33 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21694636 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/29|Tech News: 2021-29]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/29|翻訳]]されています。
'''最近の更新'''
* [[m:WMDE Technical Wishes/Finding and inserting templates|テンプレートの検索、除去]]に使うツールが更新されました。適切なテンプレートを探したり使ったりするのを楽にすることを目指しました。当初、7月7日には第1弾のウィキに実装する予定でした。代わりに7月12日に延期されました。その他のウィキには今年中に導入の見込みです。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Removing_a_template_from_a_page_using_the_VisualEditor][https://phabricator.wikimedia.org/T284553]
* [[Special:UnconnectedPages|特別:項目に接続されていないページ]]の一覧にあるページはウィキデータに登録されていません。これはウィキデータに連携する必要のあるページを探す助けになります。特定のページはウィキデータに登録すべきではありません。特別ページに収集させないページには、マジックワードの<code><nowiki>__EXPECTED_UNCONNECTED_PAGE__</nowiki></code>を使うことができます。 [https://phabricator.wikimedia.org/T97577]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-07-20|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-07-21|ja}}に、その他のウィキには{{#time:n月j日|2021-07-22|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">How media is structured in the [[:w:en:Parsing|parser's]] HTML output will soon change. This can affect bots, gadgets, user scripts and extensions. You can [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/L2UQJRHTFK5YG3IOZEC7JSLH2ZQNZRVU/ read more]. You can test it on [[:testwiki:Main Page|Testwiki]] or [[:test2wiki:Main Page|Testwiki 2]].</span>
* [[File:Octicons-tools.svg|15px|link=|<span lang="en" dir="ltr" class="mw-content-ltr">Advanced item</span>]] <span lang="en" dir="ltr" class="mw-content-ltr">The parameters for how you obtain [[mw:API:Tokens|tokens]] in the MediaWiki API were changed in 2014. The old way will no longer work from 1 September. Scripts, bots and tools that use the parameters from before the 2014 change need to be updated. You can [[phab:T280806#7215377|read more]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年7月19日 (月) 15:32 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21755027 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/30|Tech News: 2021-30]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/30|翻訳]]されています。
'''最近の更新'''
* [[mw:MediaWiki 1.37/wmf.14|新しいバージョン]]のMediaWikiソフトウェアは先々週、 ウィキメディアのウィキ群で展開されました。当該の週は休刊したため、 技術ニュースへの掲載はありませんでした。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-07-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-07-28|ja}}に、その他のウィキには{{#time:n月j日|2021-07-29|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Special:MyLanguage/Skin:MonoBook|Monobook 外装]]を使っている場合は、モバイル版で[[:w:ja:レスポンシブウェブデザイン|レスポンシブデザイン]]を無効にできます。この機能が他の外装でも利用できるようになります。もし<code>{{int:monobook-responsive-label}}</code>のチェックを外している場合は、新しい[[Special:Preferences#mw-prefsection-rendering|個人設定の項目]] <code>{{int:prefs-skin-responsive}}</code>にもチェックを付けないでください。さもないと設定が無効になります。インターフェース管理者はウィキでこの処理を自動化できます。詳細は[[phab:T285991|こちら]]をご参照ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年7月26日 (月) 21:11 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21771634 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/31|Tech News: 2021-31]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/31|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] ウィキでマークアップに <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-ltr"></nowiki></code></bdi> あるいは <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-rtl"></nowiki></code></bdi> を使いながら必須の <bdi lang="zxx" dir="ltr"><code>dir</code></bdi>属性を指定していない場合、今後2週間で機能しなくなります。短期的な回避策として、ローカルウィキの Common.css ページに加筆する方法が[[phab:T287701|T287701]]で説明されています。今後は <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-ltr" dir="ltr" lang="en"></nowiki></code></bdi> または <bdi lang="zxx" dir="ltr"><code><nowiki><div class="mw-content-rtl" dir="rtl" lang="he"></nowiki></code></bdi> のように完全な属性を指定する必要があります。これはその他のHTMLタグ、たとえば<code>span</code> や <code>code</code> も該当します。更新が必要なページを探すときは、[[phab:T287701|T287701]]にある手順の解説を参考にしてください。
* 再掲:ウィキメディアではチャットルームのネットワークを旧来のFreenodeから[[m:Special:MyLanguage/IRC/Migrating to Libera Chat| Libera Chat IRC]]へ移設しました。ローカルの解説文書の更新をお願いします。
'''問題点'''
* 先週、すべてのウィキでアクセスが遅延したり不可能になる障害が30分程度発生しました。ロシア語版ウィキニュースにおいて記事の動的一覧の生成に問題が起こり、3日間に20万件超の新規記事を一括してインポートしたため、データベースに障害が出たためです。問題を起こした機能は当該ウィキで無効にされており、開発者が適切に修正できるかどうか議論しています。 [https://phabricator.wikimedia.org/T287380][https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-07-26_ruwikinews_DynamicPageList]
'''今週の更新'''
* [[mw:VisualEditor|VisualEditor]]または[[mw:Special:MyLanguage/2017 wikitext editor|2017年ウィキテキスト編集機能]]を使ってページにリンクを追加するとき、[[mw:Special:MyLanguage/Extension:Disambiguator|曖昧さ回避ページ]]は検索結果の一覧で最下部にのみ表示されるようになりました。意図的に曖昧さ回避ページへ向けてリンクすることがごく稀であるためです。 [https://phabricator.wikimedia.org/T285510]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-04|ja}}に、その他のウィキには{{#time:n月j日|2021-08-05|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/Android|Android版ウィキペディア・アプリのチーム]]ではアプリ内のコミュニケーション機能を開発中です。他の編集者と会話したり通知を受信する方法について取り組んでいます。[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication|詳細はこちら]]をご参照ください。[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication/UsertestingJuly2021|計画のテスト]]に参加してくれる希望者を募集中です。Android スマホを持っていてアプリのダウンロードをしてもよいという編集者の皆さん、参加してください。
* {{int:discussiontools-preference-label}}の[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]が数週間以内に更新される予定です。トークページで[[mw:Talk pages project/Notifications|節ごとに購読]]できるウィキを増やします。トークページのURL ([https://meta.wikimedia.org/wiki/Meta_talk:Sandbox?dtenable=1 例]) の末尾に <code>?dtenable=1</code> と追加することでこの機能を試用することができます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月2日 (月) 20:48 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21818289 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/32|Tech News: 2021-32]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/32|翻訳]]されています。
'''問題点'''
* 8月10日にウィキ17件では、数分にわたり閲覧はできても編集ができない状態になります。時間は15:00 (UTC) の予定です。データベースの作業を行うためです。 [https://phabricator.wikimedia.org/T287449]
'''今週の更新'''
* [[wmania:Special:MyLanguage/2021:Hackathon|ウィキマニア ハッカソン]]はリモート開催で8月13日 5:00 UTC から 24時間にわたり行います。色々な参加方法が用意されています。プロジェクトやセッションの申し込みは引き続き受付中です。
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-10|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-11|ja}}に、その他のウィキには{{#time:n月j日|2021-08-12|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] 旧来のCSS <bdi lang="zxx" dir="ltr"><code><nowiki><div class="visualClear"></div></nowiki></code></bdi> は8月12日以降、サポートされなくなります。代わりに、テンプレートやページには <bdi lang="zxx" dir="ltr"><code><nowiki><div style="clear:both;"></div></nowiki></code></bdi> を使用してください。ウィキで旧来のCSSを使っている場合は、置換の作業を手伝ってください。[[phab:T287962|T287962]]でグローバル検索のリンクが提供されています。
'''今後の予定'''
* [[m:Special:MyLanguage/The Wikipedia Library|ウィキペディア図書館]]とは、ウィキペディア編集者の皆さんが典拠情報へアクセスできるようにするための空間です。いつ参加できるようになるか、ユーザーに知らせるための新しい[[mw:Special:MyLanguage/Extension:TheWikipediaLibrary|拡張機能]]があります。お知らせは通知機能を利用します。最初に参加出来るようになった利用者に対して9月に通知を行う予定です。その後、対象を拡大して順次通知を行います。 [https://phabricator.wikimedia.org/T288070]
* [[File:Octicons-tools.svg|15px|link=|高度]] MediaWikiでは将来的に[[w:ja:JavaScript|JavaScript]]のフレームワークとして[[w:ja:Vue.js|Vue.js]]を採用する予定です。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/SOZREBYR36PUNFZXMIUBVAIOQI4N7PDU/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月9日 (月) 16:21 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21856726 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/33|Tech News: 2021-33]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/33|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|改良型ベクタースキン]]でサイドバーから言語間リンクを編集するための項目が再度追加されました。当該のページからウィキデータの項目に移動してリンクを編集することができます。改良型ベクタースキンでは言語間リンクの配置を変えましたが、この新しい言語選択機能からは言語リンクを追加することができないためです。 [https://phabricator.wikimedia.org/T287206]
'''問題点'''
* 翻訳拡張機能を使用するウィキで不具合が発生していました。翻訳が反映されない、或いは英文に置き換えられるという問題が発生しました。不具合は既に修正済みです。 [https://phabricator.wikimedia.org/T288700][https://phabricator.wikimedia.org/T288683][https://phabricator.wikimedia.org/T288719]
'''今週の更新'''
* [[mw:Special:MyLanguage/Extension:Disambiguator|曖昧さ回避ページ]]へのリンクを追加した版に対して、[[mw:Help:Tags|タグ]]が付与されるようになります。意図せず曖昧さ回避ページへのリンクを追加してしまうケースがあるためです。このタグを活用することで、誤って追加されたリンクを見つけて修正することが容易になります。この機能が不要である場合、ウィキの設定で[[mw:Help:Tags#Deleting a tag added by the software|非表示]]にすることができます。 [https://phabricator.wikimedia.org/T287549]
*ツールに関する情報改善に協力してみませんか?あなたのコミュニティがツールリストについて話し合うための小規模な仮想ミートアップに出席、或いはミートアップを主催しませんか?[[m:Toolhub/The Quality Signal Sessions|Toolhub Quality Signal Sessions]]のトークページに連絡してください。[[m:Talk:Toolhub/The Quality Signal Sessions#Discussion topic for "Quality Signal Sessions: The Tool Maintainers edition"|ツールのメンテナ]]からの特定の質問に対するフィードバックを求めています。
* 利用者の会話ページへの書き込みが行われた場合、サブページを編集した場合でも[[mw:Special:MyLanguage/Help:Notifications#mute|ミュートした利用者のリスト]]に関係なく通知が行われるようになっていました。今週から会話ページ本体を編集した場合のみ通知が行われるようになります。 [https://phabricator.wikimedia.org/T288112]
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-18|ja}}に、その他のウィキには{{#time:n月j日|2021-08-19|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/33|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月16日 (月) 19:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21889213 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/34|Tech News: 2021-34]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/34|翻訳]]されています。
'''最近の更新'''
* 記譜用の拡張機能 [[mw:Special:MyLanguage/Extension:Score|Score]] (<bdi lang="zxx" dir="ltr"><code><nowiki><score></nowiki></code></bdi> notation) は公開ウィキで再び使えるようになり、新しいバージョンにアップグレードされました。一部の機能は「セーフモード」でのみ機能するようになったため、使用できない場合があります。セキュリティの問題点が解決され、[[mw:Special:MyLanguage/Extension:Score/2021 security advisory|セキュリティ アドバイザリ]]が公開されました。
'''問題点'''
* {{#time:n月j日|2021-08-25|ja}}に[[phab:T289130|複数のウィキ]]で閲覧はできても編集ができない時間が数分、発生する見込みです。時間は[https://zonestamp.toolforge.org/1629871217 06:00 UTC] 頃を予定しています。データベースの管理を行うためです。 この時間はグローバルアカウントの管理操作もできなくなります
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-08-25|ja}}に、その他のウィキには{{#time:n月j日|2021-08-26|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月23日 (月) 21:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21923254 のリストを使用して送信したメッセージ -->
== Read-only reminder ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="MassMessage"/>
A maintenance operation will be performed on [https://zonestamp.toolforge.org/1629871231 {{#time: l F d H:i e|2021-08-25T06:00|en}}]. It should only last for a few minutes.
This will affect your wiki as well as 11 other wikis. During this time, publishing edits will not be possible.
Also during this time, operations on the CentralAuth will not be possible (GlobalRenames, changing/confirming e-mail addresses, logging into new wikis, password changes).
For more details about the operation and on all impacted services, please check [[phab:T289130|on Phabricator]].
A banner will be displayed 30 minutes before the operation.
Please help your community to be aware of this maintenance operation. {{Int:Feedback-thanks-title}}<section end="MassMessage"/>
</div>
2021年8月24日 (火) 20:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21927201 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/35|Tech News: 2021-35]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/35|翻訳]]されています。
'''最近の更新'''
* 一部の楽譜は構文が動作しなくなっており、修正を行う必要があります。[[:Category:{{MediaWiki:score-error-category}}]] を確認して修正が必要なページを確認してください。
'''問題点'''
* フォントがないため楽譜に歌詞を表示できないという不具合がありました。現在は修正済みです。別のフォントを使用したい場合、Phabricator で申請を行ってください。 [https://phabricator.wikimedia.org/T289554]
'''今週の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] MediaWiki API で[[mw:API:Tokens|トークン]]を取得する際に使用するパラメータは2014年に変更されました。古いパラメータは9月1日から使用できなくなります。2014年に変更される前のパラメータを使用しているスクリプト、ボット、ツールは修正が必要です。本件に関する詳細は[[phab:T280806#7215377|こちらをご覧ください]]。
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-08-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-01|ja}}に、その他のウィキには{{#time:n月j日|2021-09-02|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
'''今後の予定'''
* {{#time:n月j日|2021-09-06|ja}}に[[phab:T289660|コモンズ]]で閲覧はできても編集ができない時間が数分、発生する見込みです。時間は[https://zonestamp.toolforge.org/1630818058 05:00 UTC] 頃を予定しています。データベースの管理を行うためです。
* 9月13日の週に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T287539]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年8月30日 (月) 16:02 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21954810 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/36|Tech News: 2021-36]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/36|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth/Feature_summary|Growth 機能]]が展開されたウィキではA/Bテストが行われている間、一部の新規利用者が新しい機能を使えませんでした。このたび、対象のウィキで最も規模が小さな21件において、新規利用者全員が新しい機能を利用できるようにしました。 [https://phabricator.wikimedia.org/T289786]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 2017年に jQuery ライブラリが 1 から 3 へとアップグレードされたため、互換レイヤーが提供されていました。移行期間はまもなく終了するため、サイトの読み込みが高速化します。ガジェットやユーザースクリプトを管理している利用者は JQMIGRATE エラーが出ていないかどうか確認して、コードを修正してください。放置するとエラーの原因になります。 [https://phabricator.wikimedia.org/T280944][https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/6Z2BVLOBBEC2QP4VV4KOOVQVE52P3HOP/]
* ポルトガル語版ウィキメディアでは昨年、編集するとき強制的にログインを行わせる実験を行いました。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Impact report for Login Required Experiment on Portuguese Wikipedia|この実験の影響調査報告書]] が公開されました。嫌がらせ行為対策ツールチームでは次の段階として、匿名利用者の編集を制限する短期的な実験に参加してくれるプロジェクトを募集しています。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Login Required Experiment|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年9月6日 (月) 15:20 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=21981010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/37|Tech News: 2021-37]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/37|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Growth 機能]]を利用できるウィキペディアが45件になりました。 [https://phabricator.wikimedia.org/T289680]
* [[mw:Special:MyLanguage/Growth/Deployment table|大部分のウィキペディア]]では現在、Growth 機能にアクセスできます。Growth チームでは機能に関する[[mw:Special:MyLanguage/Growth/FAQ|よくある質問のページを公開]]しています。この翻訳可能なページでは機能の説明、使い方、設定の変更方法その他を扱っています。
'''問題点'''
* 9月14日には数分にわたり、[[m:Special:MyLanguage/Tech/Server switch|すべてのウイキで閲覧はできても保存ができなくなります]]。時間は [https://zonestamp.toolforge.org/1631628002 14:00 UTC]の予定です。 [https://phabricator.wikimedia.org/T287539]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.37/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-09-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-15|ja}}に、その他のウィキには{{#time:n月j日|2021-09-16|ja}}に展開されます([[mw:MediaWiki 1.37/Roadmap|工程表はこちら]])。
* 今週からイタリア語版ウィキペディアでは、毎週水曜日にソフトウェアの定期更新を行います。従来の実施日は木曜日でした。この変更により、バグの通知と修正が早まる見込みです。 [https://phabricator.wikimedia.org/T286664]
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|改良型ベクタースキン]]ではサイドバーから言語間リンクを編集するための項目が再度、追加されました。当該のページからウィキデータの項目に移動してリンクを編集することができます。改良型ベクタースキンでは言語間リンクの配置を変えましたが、この新しい言語選択機能からは言語リンクを追加することができないためです。 [https://phabricator.wikimedia.org/T287206]
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調]]ツールはコードごとに色分けして表示します。現在では23件の新しいコード言語を 協調表示するようになりました。さらに加えて、[[d:Q37227|Go プログラム言語]]のエイリアスとして<bdi lang="zxx" dir="ltr"><code>golang</code></bdi>を代用できるようになり、プログラムの出力を表示させる特殊な<bdi lang="zxx" dir="ltr"><code>output</code></bdi>モードを追加しました。 [https://phabricator.wikimedia.org/T280117][https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SyntaxHighlight_GeSHi/+/715277/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年9月13日 (月) 15:36 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22009517 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/38|Tech News: 2021-38]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/38|翻訳]]されています。
'''最近の更新'''
* Growth機能をほとんどの言語版のウィキペディアに展開しました。[[phab:T290582|殆どの小規模ウィキ]]では、[[mw:Special:MyLanguage/Growth/FAQ#enable|機能のテスト]]と[[mw:Special:MyLanguage/Growth/FAQ#config|構成]]を行うため、ある程度編集経験がある利用者のみが使えるようにしてあります。新規利用者には2021年9月20日から順次、使えるようにする予定です。
* MediaWiki ではローカルにある短い記事のリンクをそれぞれ異なるスタイルで強調する機能がありました。「スタブ」に指定するサイズは、利用者ごとに設定していました。この機能はパフォーマンス上非常によくなかったため、聞き取り調査を行った上で機能を除去しました。 [https://phabricator.wikimedia.org/T284917]
* モノブック外装は管理の効率と保持性を高めるため、技術的な変更を施しました。HTML に若干の変更を加え、モノブックでも HTML 記述を他の外装と共通にしました。編集者が受ける影響を最小にするよう留意しましたが、問題がある場合はウィキ上で [[m:User:Jon (WMF)|Jon (WMF)]] に通知するか、[[phab:T290888|phabricator]] に報告をお願いします。
'''問題点'''
* 先週、検索機能に問題が発生しました。検索サーバーが予期せず再起動したため、2時間にわたり検索リクエストが実行できませんでした。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-09-13_cirrussearch_restart]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-09-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-22|ja}}に、その他のウィキには{{#time:n月j日|2021-09-23|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] 査読用の [[s:Special:ApiHelp/query+proofreadinfo|meta=proofreadpage API]] が変更されました。<bdi lang="zxx" dir="ltr"><code><nowiki>piprop</nowiki></code></bdi> パラメータの名前を改め、<bdi lang="zxx" dir="ltr"><code><nowiki>prpiprop</nowiki></code></bdi>に変えました。API 利用者の皆さんはコードの更新を行い、パラメータを認識できないという警告が出ないようにしてください。Pywikibot をご利用の場合はバージョン6.6.0に更新をお願いします。 [https://phabricator.wikimedia.org/T290585]
'''今後の予定'''
* 今後の数週間で[[mw:Special:MyLanguage/Help:DiscussionTools#Replying|返信ツール]]を残りのウィキに実装できる見込みです。 現状ではほとんどのウィキで[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]の「{{int:discussiontools-preference-label}}」の一部として提供されています。無効にするには[[Special:Preferences#mw-prefsection-editing-discussion|個人設定を編集]]してください。 [https://phabricator.wikimedia.org/T262331]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:MediaWiki_1.37/Deprecation_of_legacy_API_token_parameters|以前、お知らせした]] API からトークンを取得する方法の変更はPywikibotとの不整合が判明したため、実施を9月21日に延期しました。ボットを運用している利用者でPywikibotをお使いの方は修正の進捗状況を[[phab:T291202|T291202]]で追跡し、トークンの取得方法が変更されたら6.6.1へアップグレードしていただくようお願いします。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年9月20日 (月) 18:33 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22043415 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/39|Tech News: 2021-39]] ==
<section begin="technews-2021-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/39|翻訳]]されています。
'''最近の更新'''
* [[w:ja:IOS|iOS 15]]に備わった新機能[https://support.apple.com/ja-jp/HT212614 プライベートリレー] (Apple ウェブサイト) は、[[w:ja:Safari (software)|Safari]] ブラウザを使うとき利用者の IP アドレスを秘匿できます。代替の IP が表示される点で [[:w:ja:VPN|VPN]](バーチャル プライベート ネットワーク)に似ていると言えます。これはオプトイン機能であり、[[w:ja:ICloud|iCloud]] に使用料を支払っている利用者のみが対象です。[[:w:ja:OSX|OSX]] 版の Safari ユーザーにも後日、提供される見込みです。ウィキメディアのウィキ群にとってどんな意味があるか、[[phab:T289795|技術的な議論]]を行っています。
'''問題点'''
* [[File:Octicons-tools.svg|15px|link=|高度]] ガジェットやユーザースクリプトには、外装の[[m:Customization:Explaining_skins#Portlets|ポートレット]] (記事用ツール) に項目を追加するものがあります。最近の HTML 変更により、それらリンクの文字サイズが変わった可能性があります。CSS クラス <bdi lang="zxx" dir="ltr"><code>.vector-menu-dropdown-noicon</code></bdi> を追加することで修正することができます。 [https://phabricator.wikimedia.org/T291438]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-09-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-09-29|ja}}に、その他のウィキには{{#time:n月j日|2021-09-30|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Onboarding_new_Wikipedians#New_experience|GettingStarted 拡張機能]]は2013年に作成され、ウィキペディアの一部の言語版で新規アカウントの所有者に初めての使い方を解説するプロセスを提供してきました。しかしながら、最近開発された[[mw:Special:MyLanguage/Growth/Feature_summary|Growth 機能]]の方が優れた入門体験を提供します。現在はウィキペディアの言語版のほとんどで後者にアクセスできるため、GettingStarted は10月4日以降、無効化される予定です。 [https://phabricator.wikimedia.org/T235752]
* ごく一部の利用者は9月30日以降、ウィキメディアのウィキ群にアクセスできなくなる見込みです。理由は旧来の[[:w:ja:ルート証明書|ルート証明書]]が機能しなくなるためです。また同じ利用者群では、他の多くのウェブサイトでも問題が出るかもしれません。過去5年以内にソフトウェアのアップデートを行った利用者には発生しにくい問題です。ヨーロッパ、アフリカ、アジアの利用者は、古いすぎるソフトウェアをら使っている場合でもすぐに問題が発生しない可能性があります。詳細は[[m:Special:MyLanguage/HTTPS/2021 Let's Encrypt root expiry|こちらをご覧ください]]。
* 誰かが利用者トークページやトークページのコメントで皆さんに言及したとき、 [[mw:Special:MyLanguage/Help:Notifications|通知が届く]]ようにすることができます。その通知をクリックすると当該のコメントが開き、強調表示するようになりました。これまでは同じ操作をしても、当該のコメントではなくそれを含む節見出しにジャンプしていました。詳細は[[phab:T282029|T282029をご参照ください]]。
'''今後の予定'''
* [[mw:Special:MyLanguage/Help:DiscussionTools#Replying|返信ツール]]は今後の数週間で未導入だったウィキに展開される予定です。現状では[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]の「{{int:discussiontools-preference-label}}」の一部の機能です。[[Special:Preferences#mw-prefsection-editing-discussion|個人設定の「編集」]]から無効にできるようになります。 [[phab:T288485|対象となるウィキの一覧はこちらをご覧ください。]] [https://phabricator.wikimedia.org/T262331]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W39"/>
2021年9月27日 (月) 22:24 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22077885 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/40|Tech News: 2021-40]] ==
<section begin="tech-newsletter-content"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/40|翻訳]]されています。
'''最近の更新'''
* ウィキデータからウィキメディアウィキに送られた情報をより効率的に表示する方法が次の10のウィキで有効になりました: mediawiki.org、ウィキペディアの イタリア語版、カタロニア語版、ヘブライ語版、ベトナム語版、フランス語版ウィキソース、英語版ウィキボヤージュ、同ウィキブックス、同ウイクショナリー、同ウィキニュース ウィキデータの変更が当該のウィキで、最近の更新あるいは皆さんのウォッチリストになにか不具合があった場合は、[[phab:T48643|開発者にお知らせください]]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-06|ja}}に、その他のウィキには{{#time:n月j日|2021-10-07|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] API を使用して不正利用フィルターのログを読み取るガジェットとボットの一部に不具合が発生する可能性があります。<bdi lang="zxx" dir="ltr"><code>hidden</code></bdi> プロパティはエントリが <bdi lang="zxx" dir="ltr"><code>implicit</code></bdi> (本文が秘匿されていてログ自体は秘匿されていない)であるという結果を返さなくなります。ボットでこの情報を取得する場合は別にリビジョンクエリを実行してください。プロパティは表示されているエントリの値に <bdi lang="zxx" dir="ltr"><code>false</code></bdi> の値を返します(従来はこの値を返しませんでした) [https://phabricator.wikimedia.org/T291718]
* ウィキデータから送信された更新情報をウィキメディアのウィキで効率的に表示する方法が''全てのウィキの本番環境''で有効化されます。 ウィキデータの変更点に関する表示が、最近の更新あるいはウォッチリストでおかしくなった場合は、[[phab:T48643|開発者にお知らせください]]。
'''今後の予定'''
* まもなく[[mw:Wikimedia Apps/Team/iOS|iOS 版ウィキペディア・アプリ]]でもウィキ間通知が届くようになります。プッシュ通知を使って受信することもできるようになります。今後のバージョンで通知機能のさらなるアップデートを予定しています。 [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/iOS/Notifications#September_2021_update]
* [[File:Octicons-tools.svg|15px|link=|高度]] JavaScript の <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:Interface/JavaScript#mw.config|mw.config]]</code></bdi> にある変数 <bdi lang="zxx" dir="ltr"><code>wgExtraSignatureNamespaces</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgLegalTitleChars</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgIllegalFileChars</code></bdi> はまもなく除去されます。これらはウィキのJavaScriptで使用できる「安定した」変数ではありません。 [https://phabricator.wikimedia.org/T292011]
* [[File:Octicons-tools.svg|15px|link=|高度]] JavaScript の変数 <bdi lang="zxx" dir="ltr"><code>wgCookiePrefix</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgCookieDomain</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgCookiePath</code></bdi>、<bdi lang="zxx" dir="ltr"><code>wgCookieExpiration</code></bdi> はまもなく mw.config から除去される予定です。代わりに「<bdi lang="zxx" dir="ltr">[[mw:ResourceLoader/Core_modules#mediawiki.cookie|mediawiki.cookie]]</bdi>」モジュールの <bdi lang="zxx" dir="ltr"><code>mw.cookie</code></bdi> を使用する必要があります。 [https://phabricator.wikimedia.org/T291760]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="tech-newsletter-content"/>
2021年10月4日 (月) 16:33 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22101208 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/41|Tech News: 2021-41]] ==
<section begin="technews-2021-W41"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/41|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-13|ja}}に、その他のウィキには{{#time:n月j日|2021-10-14|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Manual:Table_of_contents#Auto-numbering|個人設定の「見出しに番号を自動的に振る」]]という項目は除去されました。理由と協議の内容は[[phab:T284921]]をご参照ください。この変更については[[m:Tech/News/2021/26|以前]]、お知らせしてあります。自動的な番号付与の継続を希望するウィキは[[mw:Snippets/Auto-number_headings|JavaScript のスニペット]]がありますので、ガジェットの作成にご利用ください。
'''ミーティング'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ版の改善]]についてミーティングにご参加ください。 [[mw:Reading/Web/Desktop Improvements/Features/Sticky Header|最新の機能]]のデモ版を公開する予定です。期日は10月12日(火曜)、16:00 (UTC) 開始予定です。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web/12-10-2021|参加登録はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W41"/>
2021年10月11日 (月) 15:31 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22152137 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/42|Tech News: 2021-42]] ==
<section begin="technews-2021-W42"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/42|翻訳]]されています。
'''最近の更新'''
*[[m:Toolhub|Toolhub]]は、ウィキメディアのプロジェクト群で作業に使えるソフトウェアを簡単に見つけられるカタログです。[https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LF4SSR4QRCKV6NPRFGUAQWUFQISVIPTS/ 詳細はこちら]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-20|ja}}に、その他のウィキには{{#time:n月j日|2021-10-21|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Wikimedia Apps/Team/Android|ウィキペディアのAndroid版アプリ]]の開発者は[[mw:Wikimedia Apps/Team/Android/Communication|アプリ内のコミュニケーション]]を改善中です。ぜひ[[mw:Wikimedia Apps/Team/Android/Communication/UsertestingOctober2021|アンケート]]に回答してご協力をお願いします。
* 3–5% の編集者が今後4、5ヵ月のうちにブロックされる可能性があります。[[w:ja:Proxy server|プロキシ]]あるいは[[w:ja:VPN|VPN]]に似た iCloud プライベートリレー という機能が Safari で新しく採用されたためです。Meta で[[m:Special:MyLanguage/Apple iCloud Private Relay|この件に関する議論を行なっています]]。コミュニティにとって iCloud プライベートリレーがどんな意味を持つか理解することを目標にしています。
* [[m:Special:MyLanguage/Wikimedia Enterprise|ウィキメディア・エンタープライズ]]は大量の情報をウィキメディアのプロジェクト群から取材して他のサイトで使う人向けの [[w:ja:API|API]] です。大規模商用ユーザーに有償でデータを提供する方法です。まもなくウィキメディア・エンタープライズのデータセット一式が提供されます。詳細は[https://lists.wikimedia.org/hyperkitty/list/wikitech-ambassadors@lists.wikimedia.org/message/B2AX6PWH5MBKB4L63NFZY3ADBQG7MSBA/ こちらをご覧ください]。また[https://wikimedia.zoom.us/j/88994018553 Zoom]にて [https://www.timeanddate.com/worldclock/fixedtime.html?hour=15&min=00&sec=0&day=22&month=10&year=2021 10月22日 15:00 UTC]より質疑応答の場を設けます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W42"/>
2021年10月18日 (月) 20:54 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22176877 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/43|Tech News: 2021-43]] ==
<section begin="technews-2021-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/43|翻訳]]されています。
'''最近の更新'''
* [[m:Special:MyLanguage/Coolest_Tool_Award|Coolest Tool Award 2021]](最もクールなツールに贈られる賞)のノミネート作品を募集しています。10月27日まで受け付けを行います。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-10-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-10-27|ja}}に、その他のウィキには{{#time:n月j日|2021-10-28|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
*[[m:Special:MyLanguage/Help:Diff|差分ページ]]でコピーとペーストが行いやすくなります。[[m:Special:MyLanguage/Community Wishlist Survey 2021/Copy paste diffs|この変更]]により変更前と変更後の差分が別のカラムとして表示されるようになり、不要な構文をコピーせずに済むようになります。 [https://phabricator.wikimedia.org/T192526]
* SVGファイルで使用されている [[w:ja:Liberation fonts|Liberation フォント]]が新しいバージョンにアップグレードされます。新しく生成されるサムネイルのみが影響を受けるようになり、Liberation Sans Narrow フォントは変更されません。 [https://phabricator.wikimedia.org/T253600]
'''ミーティング'''
* [[m:Special:MyLanguage/Community Wishlist Survey|コミュニティの要望アンケート]]に関するミーティングへの参加者を募集しています。[[m:Special:MyLanguage/Community Wishlist Survey 2021/Warn when linking to disambiguation pages|曖昧さ回避]]と[[m:Special:MyLanguage/Community Wishlist Survey 2021/Real Time Preview for Wikitext|リアルタイムプレビュー]]の要望が上がっています。ミーティングは11月27日水曜日の 14:30(UTC) に実施予定です。[[m:Special:MyLanguage/Community Wishlist Survey/Updates/Talk to Us|参加方法はこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W43"/>
2021年10月25日 (月) 20:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22232718 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/44|Tech News: 2021-44]] ==
<section begin="technews-2021-W44"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/44|翻訳]]されています。
'''最近の更新'''
* ひとりの利用者が1日に送れるウィキメールの通数には上限があります。今回、この上限の適用をウィキ単位からグローバル単位に変更しました。不正利用防止の措置です。 [https://phabricator.wikimedia.org/T293866]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-11-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-11-03|ja}}に、その他のウィキには{{#time:n月j日|2021-11-04|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W44"/>
2021年11月1日 (月) 20:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22269406 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/45|Tech News: 2021-45]] ==
<section begin="technews-2021-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/45|翻訳]]されています。
'''最近の更新'''
* モバイル機器から編集を行う IP 利用者には、トークページにメッセージが投稿されたという通知がモバイル版ウェブサイトに届くようになりました。(デスクトップ版のオレンジ色のバナーに似た仕組み 。) メインの名前空間に限らず、どのページでも示され、編集を始めようとする度に現れます。デスクトップでは従来の表示色がわずかに変わりました。 [https://phabricator.wikimedia.org/T284642][https://phabricator.wikimedia.org/T278105]
'''今週の更新'''
* [[phab:T294321|ウィキデータ]]では11月11日に数分の間、データベースのメンテナンスのため閲覧専用の状態になります。日本時間15:00([https://zonestamp.toolforge.org/1636610400 06:00 (UTC)])前後に行われる予定です。 [https://phabricator.wikimedia.org/T294321]
* 今週、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* 将来的に未登録利用者は[[:w:ja:IPアドレス|IPアドレス]]を使わずに識別されるようになります。これは法的な理由によるものです。荒らし、スパム、嫌がらせ行為などに対応するため未登録利用者のIPを知る必要があるユーザーにはIPアドレスを確認できる新しい権限が与えられます。[[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|提案されている仕様]]をご覧ください。また、本件に関する[[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|ご意見もお待ちしています]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W45"/>
2021年11月8日 (月) 20:37 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22311003 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/46|Tech News: 2021-46]] ==
<section begin="technews-2021-W46"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/46|翻訳]]されています。
'''最近の更新'''
* [[c:Special:MyLanguage/Commons:Maximum_file_size#MAXTHUMB|重いファイルをアップロード ]]した時のエラーで「<bdi lang="zxx" dir="ltr"><code>stashfailed</code></bdi>」や「<bdi lang="zxx" dir="ltr"><code>DBQueryError</code></bdi>」と表示されるエラーのほとんどは解消されました。[[wikitech:Incident documentation/2021-11-04 large file upload timeouts|事例レポート]]もご覧ください。
'''問題点'''
* iOS 端末からビジュアルエディタを使って編集すると、オペレーティング・システムの機能が原因で数字の羅列を電話番号のリンクに変換して保存することがあります。現在、この問題を調査中です。 [https://phabricator.wikimedia.org/T116525]
* 先週、検索機能に問題が発生しました。検索サーバーが予期せず再起動したため、2時間にわたり多くの検索リクエストが実行できませんでした。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/2021-11-10_cirrussearch_commonsfile_outage]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-11-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-11-17|ja}}に、その他のウィキには{{#time:n月j日|2021-11-18|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W46"/>
2021年11月15日 (月) 22:07 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22338097 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/47|Tech News: 2021-47]] ==
<section begin="technews-2021-W47"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/47|翻訳]]されています。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
*ビジュアルエディターや[[Special:Preferences#mw-prefsection-betafeatures|新しいウィキテキストモード]]でベータ版として提供されているテンプレートのダイアログ[[phab:T286992|一部のウィキ]]で[[m:WMDE Technical Wishes/VisualEditor template dialog improvements|大幅に機能が改善]]します。[[m:Talk:WMDE Technical Wishes/VisualEditor template dialog improvements|ご意見をお待ちしています]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W47"/>
2021年11月22日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22366010 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/48|Tech News: 2021-48]] ==
<section begin="technews-2021-W48"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/48|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-11-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-12-01|ja}}に、その他のウィキには{{#time:n月j日|2021-12-02|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W48"/>
2021年11月29日 (月) 21:15 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22375666 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/49|Tech News: 2021-49]] ==
<section begin="technews-2021-W49"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/49|翻訳]]されています。
'''問題点'''
* 先週、計画されていた MediaWiki 1.38-wmf.11 の展開は、一部のウィキで予期せぬ問題が発生したため遅延が起こりました。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-12-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-12-08|ja}}に、その他のウィキには{{#time:n月j日|2021-12-09|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* すべてのウィキペディアで指導役ダッシュボード(Mentor Dashboard)を <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MentorDashboard</nowiki></code></bdi> に展開しました。指導役として登録し、新規参加者の初歩を補佐する人たちは、これを使って担当の新規参加者の活動を見守ります。 [[mw:Special:MyLanguage/Growth/Feature summary|Growth 機能]]の一環です。[[mw:Special:MyLanguage/Growth/Mentor dashboard|指導役ダッシュボードのプロジェクト]]の詳細、ご利用のウィキで[[mw:Special:MyLanguage/Growth/Communities/How_to_configure_the_mentors%27_list|指導役名簿]]を有効にする方法をご参照ください。
* [[File:Octicons-tools.svg|15px|link=|高度]] 今週、現在の [[mw:API|MediaWiki 活動 API]] の旧版 <bdi lang="zxx" dir="ltr"><code><nowiki>action=ajax</nowiki></code></bdi>(2008年製作)を除去する予定です。これを利用している全てのボットやスクリプトは対応する API モジュールへの切り替えが必要です。 [https://phabricator.wikimedia.org/T42786]
* [[File:Octicons-tools.svg|15px|link=|高度]] 旧版の ResourceLoader モジュール <bdi lang="zxx" dir="ltr"><code><nowiki>jquery.jStorage</nowiki></code></bdi>which は2016年より非推奨でしたが、今週、除去の予定です。 これを利用している全てのボットやスクリプトは <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.storage</nowiki></code></bdi> への切り替えが必要です。 [https://phabricator.wikimedia.org/T143034]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W49"/>
2021年12月6日 (月) 21:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22413926 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/50|Tech News: 2021-50]] ==
<section begin="technews-2021-W50"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/50|翻訳]]されています。
'''最近の更新'''
* ほとんどのウィキが規定で「Project:」の[[m:Special:MyLanguage/Help:Namespace#Other_namespace_aliases|短いエイリアス]]を利用できるようになりました。たとえばウィキブックスのウィキでは、<bdi lang="zxx" dir="ltr"><code><nowiki>[[WB:]]</nowiki></code></bdi>はローカルの言語で既定の<bdi lang="zxx" dir="ltr"><code><nowiki>[[Project:]]</nowiki></code></bdi>名前空間に飛びます。この変更は小規模コミュニティがこの機能を簡便に利用できるようにするためです。 [[m:Special:MyLanguage/Requesting wiki configuration changes|通常の手続き]]により、その他のローカルのエイリアス作成を依頼することができます。 [https://phabricator.wikimedia.org/T293839]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2021-12-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2021-12-15|ja}}に、その他のウィキには{{#time:n月j日|2021-12-16|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W50"/>
2021年12月13日 (月) 22:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22441074 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2021/51|Tech News: 2021-51]] ==
<section begin="technews-2021-W51"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2021/51|翻訳]]されています。
'''技術ニュース'''
* [[w:ja:年末年始|年末年始]]に当たるため、技術ニュースの次号は2022年1月10日の発行になります。
'''最近の更新'''
* DynamicPageList拡張機能 (<bdi lang="zxx" dir="ltr"><code><nowiki><DynamicPageList></nowiki></code></bdi>) によるクエリは10秒間のみ実行されるようになり、それより長くなった場合はエラーが出るようになります。実行時間の長いクエリによってウィキが停止して、他のウィキまで停止する事態が多発したためです。 [https://phabricator.wikimedia.org/T287380#7575719]
'''今週の更新'''
* 今週と来週は、MediaWikiのバージョン更新はありません。
'''今後の予定'''
* iOS版ウィキペディアアプリの開発者は複数の言語で編集活動を行うテスト参加者を募集しています。[[mw:Wikimedia Apps/Team/iOS/202112 testing|興味がある方はこちらの詳細をご覧下さい]]。
* [[File:Octicons-tools.svg|15px|link=|高度]] Wikimedia [[wikitech:Portal:Cloud VPS|Cloud VPS]] はウィキメディア・ムーブメントの技術プロジェクトをホストしています。年1回、古くて使われていないプロジェクトを削除する時期になりましたので、開発者の皆さんは使用中の[[wikitech:News/Cloud VPS 2021 Purge|プロジェクトの継続使用を申請]]してください。申請のなかったプロジェクトは12月1日以降は閉鎖され、1月1日以降に順次削除される可能性があります。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/2B7KYL5VLQNHGQQHMYLW7KTUKXKAYY3T/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2021/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2021-W51"/>
2021年12月20日 (月) 22:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22465395 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/02|Tech News: 2022-02]] ==
<section begin="technews-2022-W02"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/02|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] 特定のツールに寄って行われた変更を認識できるようにするため、[[mw:Special:MyLanguage/AbuseFilter|不正利用フィルター]]に変数 <bdi lang="zxx" dir="ltr"><code>oauth_consumer</code></bdi> が追加されました。 [https://phabricator.wikimedia.org/T298281]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/ResourceLoader/Migration_guide_(users)#Package_Gadgets|JSON ページを使ってガジェットを構成できる]]ようになりました。これにより、Geonotice などのガジェットはインターフェース管理者の権限を持たない管理者でもガジェットの設定を変更できるようになります。 [https://phabricator.wikimedia.org/T198758]
* [[File:Octicons-tools.svg|15px|link=|高度]] ガジェットに[[mw:Extension:Gadgets#Options|特定の操作を行ったときのみ動作する]]という設定が追加されました。例えば <bdi lang="zxx" dir="ltr"><code>|actions=edit,history</code></bdi> という指定があるガジェットは編集と履歴のページでのみ動作します。 [https://phabricator.wikimedia.org/T63007]
* [[File:Octicons-tools.svg|15px|link=|高度]] <bdi lang="zxx" dir="ltr"><code>withgadget</code></bdi> という URL のパラメータを使用してガジェットをロードできるようになりました。一般的に <bdi lang="zxx" dir="ltr"><code>withJS</code></bdi> や <bdi lang="zxx" dir="ltr"><code>withCSS</code></bdi> として利用されてきた[[mw:Special:MyLanguage/Snippets/Load JS and CSS by URL|従来のスニペット]]を置換することができます。 [https://phabricator.wikimedia.org/T29766]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list|メンターシップが構成されている]]ウィキで Action API を使って[[mw:Special:MyLanguage/Growth/Mentor_dashboard|メンター]](指導する側)のメンティー(指導を受ける側)の一覧を取得できるようになります。 [https://phabricator.wikimedia.org/T291966]
* メインページの見出しを設定できるようになりました。ログイン利用者向けの表示には <span class="mw-content-ltr" lang="en" dir="ltr">[[MediaWiki:Mainpage-title-loggedin]]</span> を、非ログイン利用者はの表示は <span class="mw-content-ltr" lang="en" dir="ltr">[[MediaWiki:Mainpage-title]]</span> を使ってください。旧来、見出しを非表示にするため使われてきた CSS 類は除去する必要があります。 [https://meta.wikimedia.org/wiki/Special:MyLanguage/Small_wiki_toolkits/Starter_kit/Main_page_customization#hide-heading] [https://phabricator.wikimedia.org/T298715]
* 4つの特別ページ(及びそれに対応する API)のデータベースクエリの最大実行時間が30秒に設定されました。対象となるのは最近の更新、ウォッチリスト、投稿黒く、ログのページです。パフォーマンスと安定性が向上します。ワークフローに影響が出る場合の解決策については[https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IPJNO75HYAQWIGTHI5LJHTDVLVOC4LJP/ この変更に関する詳細をご覧ください]。 [https://phabricator.wikimedia.org/T297708]
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Sticky Header|固定ヘッダー]]は[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Frequently asked questions#pilot-wikis|10以上のウィキ]]で50%以上のログインユーザーに提供されています。これは[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ版改善プロジェクト]]の一環です。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Participate|プロジェクトへの参加方法はこちら]]でご案内しています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-01-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-01-12|ja}}に、その他のウィキには{{#time:n月j日|2022-01-13|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''イベント'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022|2022年のコミュニティ要望リスト調査]]が始まります。ウィキメディアプロジェクトの参加者であれば誰でもツールとプラットフォームの改善を提案することができます。提案フェーズは{{#time:n月j日|2022-01-10|ja}} 18:00 UTC から {{#time:n月j日|2022-01-23|ja}} UTC までです。[[m:Special:MyLanguage/Community_Wishlist_Survey/FAQ|詳細はこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W02"/>
2022年1月11日 (火) 01:24 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22562156 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/03|Tech News: 2022-03]] ==
<section begin="technews-2022-W03"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/03|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Extension:WikiEditor|WikiEditor]](一般的には2010年版ウィキテキストエディタと呼ばれる機能です)を使ったとき、曖昧さ回避ページにリンクさせたという警告を表示するようになりました。警告メッセージの「{{int:Disambiguator-review-link}}」をクリック、リンクをもっと固有の用語に付け替えるように指示が出ます。2021年コミュニティ要望に基づき実装されたものです。[[m:Community Wishlist Survey 2021/Warn when linking to disambiguation pages#Jan 12, 2021: Turning on the changes for all Wikis|詳細な情報はこちら]]をご参照ください。
* [[mw:Special:MyLanguage/Talk pages project/Feature summary|議論ツール]]を使うと、ご自分が議論の提案者もしくはコメント者として投稿したすべてのページを[[mw:Special:MyLanguage/Help:DiscussionTools#subscribe|自動的に購読]]できます。他の編集者が返信すると[[mw:Special:MyLanguage/Notifications|通知]]が届きます。この機能はほとんどのウィキで利用できます。使用するときは[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]を開き「{{int:discussiontools-preference-autotopicsub}}」を有効にしてください。 [https://phabricator.wikimedia.org/T263819]
* 新規ページの作成、または議論のページに新しい見出しを立てる場合、入力欄に[[mw:Special:MyLanguage/Manual:Creating_pages_with_preloaded_text|特定の内容を「あらかじめ読み込む」]](プリロードする)ことができます。この機能は現在、ウィキテキスト記法ができるページに限定されています。利用者がだまされ、悪意のある編集をしてしまうのを予防するためです。コンテンツの種類を限定して[[phab:T297725|この機能を再度、使えるようにするかどうか]]、議論中です。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-01-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-01-19|ja}}に、その他のウィキには{{#time:n月j日|2022-01-20|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''イベント'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022|2022年のコミュニティ要望リスト調査]]が進行中です。ウィキメディアプロジェクトの参加者であれば誰でもツールとプラットフォームの改善を提案することができます。提案の受付期間は{{#time:n月j日|2022-01-10|ja}} 18:00 UTC から {{#time:n月j日|2022-01-23|ja}} UTC までです。[[m:Special:MyLanguage/Community_Wishlist_Survey/FAQ|詳細はこちらをご覧ください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W03"/>
2022年1月17日 (月) 19:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22620285 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/04|Tech News: 2022-04]] ==
<section begin="technews-2022-W04"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/04|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|定例]] [[mw:MediaWiki 1.38/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-01-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-01-26|ja}}に、その他のウィキには{{#time:n月j日|2022-01-27|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]が新しく BDD、Elpi、LilyPong、Maxima、Rita、Savi、Sed、Sophia、Spice、.SRCINFO の言語に対応しました。
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|改良型ベクタースキン]]でユーザーメニューを展開せずにウォッチリストへアクセスできるようになりました。ページ最上部の通知アイコンの隣にウォッチリストへのリンクがあります。 [https://phabricator.wikimedia.org/T289619]
'''イベント'''
* [[m:Special:MyLanguage/Coolest Tool Award|Coolest Tool Award 2021]](最もクールなツールに贈られる賞)の結果を発表しています。今年選ばれた14のツールの詳細をご覧ください。
* コミュニケーション要望リストアンケートの[[m:Special:MyLanguage/Community Wishlist Survey 2022/Proposals|提案]]について[[m:Special:MyLanguage/Community_Wishlist_Survey/Help_us|翻訳と告知]]にご協力ください。投票は{{#time:n月j日|2022-01-28|ja}}に開始予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W04"/>
2022年1月24日 (月) 21:38 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22644148 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/05|Tech News: 2022-05]] ==
<section begin="technews-2022-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/05|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 3週間前に[[m:Special:MyLanguage/Tech/News/2022/02|発表された]] URL パラメータ <bdi lang="zxx" dir="ltr"><code>?withgadget</code></bdi> をガジェットでサポートする場合、ガジェットの定義で <bdi lang="zxx" dir="ltr"><code>supportsUrlLoad</code></bdi> を指定する必要があります([[mw:Special:MyLanguage/Extension:Gadgets#supportsUrlLoad|解説]])。 [https://phabricator.wikimedia.org/T29766]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-02|ja}}に、その他のウィキには{{#time:n月j日|2022-02-03|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 昨年に[[m:Special:MyLanguage/Tech/News/2021/16|発表された]]以下の告知内容は実装が遅れていましたが、このたび準備が整いました:
** 利用者グループ <code>oversight</code> は <code>suppress</code> へと改称されます。これは[[phab:T109327|技術的な理由によるものです]]。変更されるのはシステム上の名称です。ウィキ上におけるグループの名称に影響を与えるものではありません。変更作業は3週間以内に実施予定です。意義を申し立てる場合は[[phab:T112147|Phabricator]]にコメントをお願いします。 いつものように関連するラベルは translatewiki ([[phab:T112147|リンク先参照]])またはウィキの管理者が変更できます。
'''イベント'''
* 1月28日から2月11日まで、[[m:Special:MyLanguage/Community Wishlist Survey 2022|コミュニティ要望アンケート]]では提案に対する投票を受け付けています。これにより[[m:Special:MyLanguage/Community Tech|コミュニティ技術チーム]]の作業課題が決まります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W05"/>
2022年1月31日 (月) 17:42 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22721804 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/06|Tech News: 2022-06]] ==
<section begin="technews-2022-W06"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/06|翻訳]]されています。
'''最近の更新'''
* 最近、英語版ウィキペディアでダークモードのガジェットが導入されました。自分たちのウィキでも使ってみたい場合は[[m:Special:MyLanguage/Interface administrators|インターフェース管理者]]に相談してみてください([[w:en:Wikipedia:Dark mode (gadget)|概要及びスクリーンショット]])。
* カテゴリ内のカウントが間違っている場合があります。毎月初めに再度カウントが行われ修正されます。 [https://phabricator.wikimedia.org/T299823]
'''問題点'''
* 先週[[mw:Special:MyLanguage/Manual:Live preview|ライブプレビュー]]のバグを修正するためコードを修正したところ、一部のローカルガジェットやユーザースクリプトに影響が出た可能性があります。<bdi lang="zxx" dir="ltr"><code>vector</code></bdi> 固有のコードがある場合は <bdi lang="zxx" dir="ltr"><code>vector-2022</code></bdi> もチェックするように修正する必要があります。[[phab:T300987|コードスニペット、グローバル検索、サンプルをご覧ください]]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-09|ja}}に、その他のウィキには{{#time:n月j日|2022-02-10|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W06"/>
2022年2月7日 (月) 21:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22765948 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/07|Tech News: 2022-07]] ==
<section begin="technews-2022-W07"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/07|翻訳]]されています。
'''最近の更新'''
* 所属するものが5000件未満しかないカテゴリページを[[mw:Special:MyLanguage/Manual:Purge|パージする]]と、完全な再集計が行われるようになります。件数が間違っているとき、編集者はこれを利用して修正できるようになります。 [https://phabricator.wikimedia.org/T85696]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-16|ja}}に、その他のウィキには{{#time:n月j日|2022-02-17|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]拡張機能の<code dir=ltr>rmspecials()</code> 機能が近日中に更新され、 "半角スペース" を除去しなくなります。どのウィキでもフィルターが正常に機能するよう、<code dir=ltr>rmspecials()</code> を使用する必要があるときには <code dir=ltr>rmwhitespace()</code> で挟むように推奨されます。既存の使用箇所を検出するには、[[Special:AbuseFilter|不正利用フィルター管理]]の検索機能を使ってください。 [https://phabricator.wikimedia.org/T263024]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W07"/>
2022年2月14日 (月) 19:19 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22821788 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/08|Tech News: 2022-08]] ==
<section begin="technews-2022-W08"/><div class="plainlinks">
<div lang="en" dir="ltr" class="mw-content-ltr">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2022/08|Translations]] are available.
</div>
'''最近の更新'''
* [[Special:Nuke|特別:まとめて削除]]で多数のページを削除するときに標準の削除理由(<bdi lang="en" dir="ltr">[[MediaWiki:Deletereason-dropdown]]</bdi> で編集可能)が提示され、使えるようになります。これは[[m:Community Wishlist Survey 2022/Admins and patrollers/Mass-delete to offer drop-down of standard reasons, or templated reasons.|2022年のコミュニティ要望アンケート]]で挙がった要望の一つでした。 [https://phabricator.wikimedia.org/T25020]
* ウィキペディアでは新規アカウントが作成されたときデフォルトで[[mw:Special:MyLanguage/Growth/Feature_summary|Growth 機能]]が有効になるようになりました。各コミュニティで[[mw:Special:MyLanguage/Help:Growth/Tools/Account_creation|ヘルプページを更新]]することが奨励されます。以前は新規アカウントのうち80パーセントだけにGrowth 機能が有効でした。いくつかのウィキペディアはこの変更に影響されません。 [https://phabricator.wikimedia.org/T301820]
* ページ中にある特定の画像が別の場所(PagePreviewsや検索結果など)で表示されることを防ぐことができるようになりました。これは <bdi lang="zxx" dir="ltr"><code><nowiki>class=notpageimage</nowiki></code></bdi> の記法で行います。例としては <code><nowiki>[[File:例.png|class=notpageimage]]</nowiki></code> です。 [https://phabricator.wikimedia.org/T301588]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 特別:投稿記録、特別:統合記録と変更記録のページでは、[[mw:Special:MyLanguage/Skin:Minerva_Neue|モバイル外装]]で変更点の日付によるグループ化をサポートするため、HTMLを変更しました。可能性は低いのですがガジェットやユーザースクリプトに影響が出るかもしれません。[[phab:T298638|すべての HTML 変更の一覧]]は Phabricator にあります。
'''イベント'''
* [[m:Special:MyLanguage/Community Wishlist Survey 2022/Results|コミュニティ要望アンケートの結果]]が公表されました。[[m:Special:MyLanguage/Community Wishlist Survey/Updates/2022 results#leaderboard|優先度の高い提案]]のリストもあります。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-02-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-02-23|ja}}に、その他のウィキには{{#time:n月j日|2022-02-24|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ページ上の動画ファイルと音声ファイルを再生するソフトウェアが、もうすぐ全ウィキで変わります。古い方のソフトウェアは提供されなくなります。音声の再生ツールはこれにより横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しい方のソフトウェア]]はベータ版機能として四年前から利用できています。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Toolforge's underlying operating system is being updated. If you maintain any tools there, there are two options for migrating your tools into the new system. There are [[wikitech:News/Toolforge Stretch deprecation|details, deadlines, and instructions]] on Wikitech.</span> [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EPJFISC52T7OOEFH5YYMZNL57O4VGSPR/]
* 管理者には近々、あるページを削除したときに対応する「トーク」ページもあわせて[[m:Special:MyLanguage/Community Wishlist Survey 2021/(Un)delete associated talk page|削除/復元するオプション]]が与えられます。このオプションの備わったAPIエンドポイントもまた提供します。これは[[m:Community Wishlist Survey 2021/Admins and patrollers/(Un)delete associated talk page|2021年要望調査で採用されたリクエスト]]のひとつでした。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W08"/>
2022年2月21日 (月) 19:12 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22847768 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/09|Tech News: 2022-09]] ==
<section begin="technews-2022-W09"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/09|翻訳]]されています。
'''最近の更新'''
* ページの変更履歴や利用者の投稿履歴を[[mw:Special:MyLanguage/Help:Tags|タグ]]で検索するとき、使用可能なタグをドロップダウンから選べるようにしました。これは[[m:Community Wishlist Survey 2022/Miscellaneous/Improve plain-text change tag selector|2022年コミュニティ技術要望リスト]]で選ばれたものです。 [https://phabricator.wikimedia.org/T27909]
* [[mw:Special:MyLanguage/Growth/Mentor_dashboard|Growth 指導役ダッシュボード]]をご利用の指導役の皆さんには、ご自分の担任になった初学者の一覧に1回以上200回未満の編集回数が表示されるようになりました。従来は指導役に割り当てられた初学者はダッシュボードで確認できても、編集が0回なのか数百回なのか見きわめができませんでした。現在もダッシュボードのフィルタで回数の調整ができます。また直近に選んだフィルタを記録するようになりました。 [https://phabricator.wikimedia.org/T301268][https://phabricator.wikimedia.org/T294460]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 利用者グループの <code>oversight</code> は <code>suppress</code> とへと改称されました。これは[[phab:T109327|技術的な理由]]によるものです。たとえばガジェットなどに記してある元の名称への参照、Special:Listusers へのリンク、あるいは[[mw:Special:MyLanguage/Help:Magic_words|NUMBERINGROUP]]を使うものの更新が必要かどうかチェックしてください。
'''問題点'''
* 最近、 [[mw:Special:MyLanguage/Help:Tracking changes|変更の追跡]]ページの HTML を変更した影響でスクリーンリーダーにいくつかの問題が発生しました。現在は修正済みです。 [https://phabricator.wikimedia.org/T298638]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-02|ja}}に、その他のウィキには{{#time:n月j日|2022-03-03|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''今後の予定'''
* テンプレートの取り扱いが少し楽になります。[[m:WMDE_Technical_Wishes/Templates|複数の改善]] を3月9日付でほとんどのウィキに、3月16日付で英語版ウィキペディアに導入する予定です。次の改善を含みます。カッコの一致、構文の強調表示の色指定、テンプレートの選択と挿入など関連のビジュアルエディタの機能です。
* テンプレート開発者やインタフェース管理者の皆さんで、利用者フィードバック用 CSS (クラス:<code dir=ltr>successbox, messagebox, errorbox, warningbox</code>) の既定のスタイルを意図的に上書きしたり使ったりしている場合は、これらのクラスや関連の CSS はまもなくMediaWiki コアから除去される点にご留意ください。これは同一のクラス名が特定のウィキでも使われる場合に発生する問題の回避措置です。何か影響を受けそうな場合は [[phab:T300314]] にてコメントをお願いします。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W09"/>
2022年2月28日 (月) 23:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22902593 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/10|Tech News: 2022-10]] ==
<section begin="technews-2022-W10"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/10|翻訳]]されています。
'''問題点'''
* 先週、一部のインターフェースのラベルに問題が発生していました。今週、修正される予定です。この変更はアクティブなメンテナがいないスキンのサポートを簡素化するために行っている作業の一環として行われたものです。 [https://phabricator.wikimedia.org/T301203]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-08|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-09|ja}}に、その他のウィキには{{#time:n月j日|2022-03-10|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W10"/>
2022年3月7日 (月) 21:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22958074 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/11|Tech News: 2022-11]] ==
<section begin="technews-2022-W11"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/11|翻訳]]されています。
'''最近の更新'''
* Android 版のウィキペディア・アプリでは画面下部のツールバーを[[mw:Special:MyLanguage/Wikimedia_Apps/Team/Android/Communication#Updates|変更できるようになりました]]。これによりよく使うツールが使いやすくなります、また、閲読に集中できるモードも導入されています。 [https://phabricator.wikimedia.org/T296753][https://phabricator.wikimedia.org/T254771]
'''問題点'''
* 2021年6月から2022年1月まで、すべてのウィキの一部のページで閲覧回数のデータ収集に不具合が生じていました。統計が不完全だった可能性があります。どのプロジェクトが最も影響を受けたか計算するため、関連するデータセットが更に30日間保存されます。詳細は[[m:Talk:Data_retention_guidelines#Added_exception_for_page_views_investigation|メタウィキをご覧ください]]。
* 3月10日、データベースの問題が発生しました。すべてのウィキでログインしているユーザーが12分間すべてのウィキにアクセスできなくなりました。ログインしていないユーザーがページを閲覧することはできましたが、編集したり、キャッシュされていないページを閲覧することはできませんでした。 [https://wikitech.wikimedia.org/wiki/Incident_documentation/2022-03-10_MediaWiki_availability]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.38/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-16|ja}}に、その他のウィキには{{#time:n月j日|2022-03-17|ja}}に展開されます([[mw:MediaWiki 1.38/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:System_message#Finding_messages_and_documentation|<bdi lang="zxx" dir="ltr"><code>uselang=qqx</code></bdi> を使用してローカライズ対象のメッセージを調べるとき]]、「{{int:vector-view-history}}」などのナビゲーションタブで使用可能なメッセージキーをすべて表示するようになりました。 [https://phabricator.wikimedia.org/T300069]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[{{#special:RevisionDelete}}]] へのアクセス権限が拡張されました。以前は <code dir=ltr>deleterevision</code> 権限を持つユーザーのみがアクセスできましたが、<code dir=ltr>deletedhistory</code> と <code dir=ltr>deletedhistory</code> 権限を持つユーザーもアクセスできるようになります。 [https://phabricator.wikimedia.org/T301928]
* [[{{#special:Undelete}}]] のページで差分表示を行ったとき、削除された版の一覧を表示していたページへ戻るためのリンクが提供されるようになりました。 [https://phabricator.wikimedia.org/T284114]
'''今後の予定'''
* ウィキメディア財団はIPマスキングの実相戦略と次のステップについて発表を行いました。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation#feb25|発表の詳細をご覧ください]]。
* [[mw:Special:MyLanguage/Wikimedia Apps/Android FAQ|Wikipedia Android アプリ]]の開発者は利用者の会話ページや記事のノートページに関する[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Communication|新しい機能]]の開発に取り組んでいます。 [https://phabricator.wikimedia.org/T297617]
'''イベント'''
* [[mw:Wikimedia Hackathon 2022|Wikimedia ハッカソン 2022]]は2022年5月20-22日にハイブリッドイベントとして開催されます。ハッカソンはオンラインで開催され、世界各地の交流をサポートするための助成金も利用できます。助成金の申請は3月20日まで受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W11"/>
2022年3月14日 (月) 22:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=22993074 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/12|Tech News: 2022-12]] ==
<section begin="technews-2022-W12"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/12|翻訳]]されています。
'''今週の新しいコードリリーススケジュール'''
* 今週は1回ではなく4回の MediaWiki のリリースを予定しています。これは問題解決と将来のアップデートを高速化するための試みです。月曜日、火曜日、水曜日の様々な時間帯にすべてのウィキでリリースを予定しています。[[mw:Special:MyLanguage/Wikimedia Release Engineering Team/Trainsperiment week|このプロジェクトに関する詳細はこちらをご覧ください]]。
'''最近の更新'''
* 検索結果の表示件数を[[Special:Preferences#mw-prefsection-searchoptions|個人設定]]から設定できるようになりました。これは[[m:Special:MyLanguage/Community Wishlist Survey 2022/Results|2022年のコミュニティ要望リスト]]で12番目に多かった要望です。 [https://phabricator.wikimedia.org/T215716]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Jupyter notebooks のツール [[wikitech:PAWS|PAWS]] がアップデートされ、インターフェースが新しくなりました。 [https://phabricator.wikimedia.org/T295043]
'''今後の予定'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] を介したマップがまもなく [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevisions]] 拡張機能で使えるようになります。Kartographer で改善してほしいところがあれば[https://wikimedia.sslsurvey.de/Kartographer-Workflows-EN/ お知らせください]。この調査には簡単な英語で答えることができます。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W12"/>
2022年3月21日 (月) 16:01 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23034693 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/13|Tech News: 2022-13]] ==
<section begin="technews-2022-W13"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/13|翻訳]]されています。
'''最近の更新'''
* macOS ユーザー向けにウィキメディアコモンズの簡略なアップロード用ツール [[c:Commons:Sunflower|Sunflower]] が利用できるようになりました。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-03-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-03-30|ja}}に、その他のウィキには{{#time:n月j日|2022-03-31|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* データベースの定期的な保守のため、一部のウィキが数分程度、閲覧専用の状態になる予定です。実施日時は{{#time:j xg|2022-03-29|ja}}の7:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象のウィキはこちら]) ならびに{{#time:j xg|2022-03-31|ja}} の7:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象のウィキはこちら]) の見込みです。 [https://phabricator.wikimedia.org/T301850][https://phabricator.wikimedia.org/T303798]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W13"/>
2022年3月28日 (月) 19:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23073711 のリストを使用して送信したメッセージ -->
== [[m:Special:MyLanguage/Tech/News/2022/14|Tech News: 2022-14]] ==
<section begin="technews-2022-W14"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/14|翻訳]]されています。
'''問題点'''
* 先週は数日の間、編集初学者に向けたおすすめ編集が [[{{#special:recentchanges}}]] フィードでタグ付けされていませんでした。このバグは修正済みです。 [https://phabricator.wikimedia.org/T304747]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-06|ja}}に、その他のウィキには{{#time:n月j日|2022-04-07|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-04-07|ja}}<!-- 4月7日 {{#time:j xg|2022-04-07|ja}} -->の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象のウィキの一覧はこちら]。)
'''今後の予定'''
* 来週から技術ニュースの題名が翻訳対象になります。配信時の表示はこれまでの<code dir=ltr>Tech News: 2022-14</code>ではなくなるかもしれません。コミュニティによってはフィルタの設定に影響が出る可能性があります。 [https://phabricator.wikimedia.org/T302920]
* 今後の数ヵ月にわたり、Growth 機能のひとつ「[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクを追加]]」 を[[phab:T304110|より多くのウィキペディアで使えるようになる予定です]]。週単位で複数のウィキに機能を展開する見込みです。[[mw:Special:MyLanguage/Growth#deploymentstable|「リンクのおすすめ機能」が実装されている一部のウィキ]]であれば、このツールをテストすることができます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W14"/>
2022年4月4日 (月) 21:01 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23097604 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-15 ==
<section begin="technews-2022-W15"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/15|翻訳]]されています。
'''最近の更新'''
* サーバーの状態を閲覧できるサイトとして、 <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikimediastatus.net/ www.wikimediastatus.net]</span> が新しく利用できるようになりました。このサイトでは5つの大まかな指標で私たちのウィキの技術的な状態を閲覧することができ<!-- automated high-level metrics -->、私たちのウィキの技術的環境の健全度やパフォーマンスを把握できます。また影響範囲の大きい障害に関して、技術者の書く更新情報<!-- manually-written updates -->もあります。こうした更新情報は技術者が実際に問題解決をするかたわら、時間を取れ次第できる限り迅速に執筆しています。このサイトは私たちの運営するウィキのインフラとは切り離した外部サービス上で動作しているため、私たちのウィキが短期間アクセス不能になっても閲覧することができます。[https://diff.wikimedia.org/2022/03/31/announcing-www-wikimediastatus-net/ このプロジェクトの詳細はこちら]。
* ウィクショナリーでは、ページ上の動画ファイルと音声ファイルを再生するソフトウェアが変わりました。これまでのソフトウェアは削除されています。今回のソフトウェア変更により、音声の再生ツールの一部では横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しいソフトウェア]]は4年前からベータ版機能として導入されていたものです。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-13|ja}}に、その他のウィキには{{#time:n月j日|2022-04-14|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W15"/>
2022年4月11日 (月) 19:45 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23124108 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-16 ==
<section begin="technews-2022-W16"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/16|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-20|ja}}に、その他のウィキには{{#time:n月j日|2022-04-21|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-04-19|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-04-21|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s8.dblist 対象となるウィキの一覧])を予定しています。
* 管理者が特定のページを削除または復帰するとき、[[m:Community Wishlist Survey 2021/(Un)delete associated talk page|付随する「トーク」ページも合わせて削除や復帰]]ができるようになります。関連する API のエンドポイントのオプションも利用可能になります。これは[[m:Community Wishlist Survey 2021/Admins and patrollers/(Un)delete associated talk page|2021年コミュニティ要望リストで挙がった11項目の要望]]のうちのひとつです。
* [[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#test-wikis|一部のウィキ]]ではログインユーザーの半分が新しい[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Table of contents|目次機能]]を利用できるようになりました。ページを上下にスクロールしたとき、目次が画面内の同じ場所に固定されます。これは[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|デスクトップ版改善]]プロジェクトの一環です。 [https://phabricator.wikimedia.org/T304169]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] MediaWiki によって自動的に生成されるメッセージボックスから <code dir=ltr>successbox</code>, <code dir=ltr>errorbox</code>, <code dir=ltr>warningbox</code> の CSS クラスが除去されます。この三クラスと <code dir=ltr>messagebox</code> は MediaWiki のコアから除去されます。ウィキテキストでこれらのクラスを使用している場合や、CSS でこれらの外観を変更していた場合、この変更の影響を受けます。ローカルにおけるクラスの使用状況や、スタイルの定義を確認してください。これは[[m:Special:MyLanguage/Tech/News/2022/09|2月28日の技術ニュース]]でもすでにお伝えしています。
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:Kartographer|Kartographer]] が [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevisions による査読機能]]で利用できるようになります。Kartographer の地図が[[mw:Special:MyLanguage/Help:Pending changes|査読を保留中のページ]]でも動作するようになります。[https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Project_descriptions] これに伴い、Kartographer の説明も更新されます。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Kartographer/Getting_started] [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:VisualEditor/Maps] [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Kartographer]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W16"/>
2022年4月18日 (月) 23:12 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23167004 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-17 ==
<section begin="technews-2022-W17"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/17|翻訳]]されています。
'''最近の更新'''
* [https://noc.wikimedia.org/conf/dblists/group1.dblist 多数のウィキ](グループ1)でページ上の動画ファイルと音声ファイルを再生するプレイヤーが変わりました。従来使われていたプレイヤーは削除されています。今回のプレイヤー変更により、音声の再生ツールの一部では横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しいプレイヤー]]は4年前からベータ版機能として導入されていたものです。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-04-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-04-27|ja}}に、その他のウィキには{{#time:n月j日|2022-04-28|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-04-26|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist 対象となるウィキの一覧]。)
* 一部の極端に古いブラウザとオペレーティングシステムのサポートを終了します。Internet Explorer 9 または 10、Andoroid 4、Firefox 38以前のブラウザではウィキの一部が正しく表示されなかったり、動作しなくなる可能性があります。 [https://phabricator.wikimedia.org/T306486]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W17"/>
2022年4月25日 (月) 22:56 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23187115 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-18 ==
<section begin="technews-2022-W18"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/18|翻訳]]されています。
'''最近の更新'''
* [https://noc.wikimedia.org/conf/dblists/group2.dblist 残りのウィキすべて](グループ2)でページ上の動画ファイルと音声ファイルを再生するプレイヤーが変更されました。従来使われていたプレイヤーは削除されています。今回のプレイヤー変更により、音声の再生ツールの一部では横幅が広くなります。[[mw:Special:MyLanguage/Extension:TimedMediaHandler/VideoJS_Player|新しいプレイヤー]]は4年前からベータ版機能として導入されていたものです。 [https://phabricator.wikimedia.org/T100106][https://phabricator.wikimedia.org/T248418]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-05-04|ja}}に、その他のウィキには{{#time:n月j日|2022-05-05|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 開発者は[[mw:Wikimedia Apps/Team/iOS|iOS版ウィキペディアアプリ]]でトークページ機能の実装に取り組んでいます。[https://wikimedia.qualtrics.com/jfe/form/SV_9GBcHczQGLbQWTY フィードバック]をお待ちしています。フィードバックは英語、ドイツ語、ヘブライ語、中国語で受け付けています。
* [[m:WMDE_Technical_Wishes/VisualEditor_template_dialog_improvements#Status_and_next_steps|殆どのウィキ]]でビジュアルエディターまたはウィキテキストモードを使用したときに[[m:WMDE_Technical_Wishes/VisualEditor_template_dialog_improvements|改良型テンプレートダイアログ]]が利用できるようになります。 [https://phabricator.wikimedia.org/T296759] [https://phabricator.wikimedia.org/T306967]
* ウィキテキストでの編集時に構文強調表示を使用した場合、[[m:WMDE_Technical_Wishes/Improved_Color_Scheme_of_Syntax_Highlighting#Color-blind_mode|カラーブラインドに応じた配色]]を使用できるようになります。 [https://phabricator.wikimedia.org/T306867]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] MediaWiki のインターフェースメッセージに関連したいくつかの CSS の ID が削除されます。技術関係の編集者は[[phab:T304363|対象となる ID とこれらを使用しているページの一覧]]をご確認ください。<code dir=ltr>#mw-anon-edit-warning</code>, <code dir=ltr>#mw-undelete-revision</code> とその他3種類の ID が対象となります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W18"/>
2022年5月2日 (月) 19:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23232924 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-19 ==
<section begin="technews-2022-W19"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/19|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Android|Android 版のウィキペディアアプリ]]でもカテゴリが表示されるようになりました。 [https://phabricator.wikimedia.org/T73966]
'''問題点'''
* 先週、ウィキデータの検索候補の表示に不具合がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T307586]
* 先週、すべてのウィキのログインユーザーとキャッシュされていないページで20分ほど、アクセスが重いかアクセスできない状態が発生していました。これはデータベースの変更に伴う問題が原因でした。 [https://phabricator.wikimedia.org/T307647]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。 [https://phabricator.wikimedia.org/T305217#7894966]
* [[mw:Special:MyLanguage/Help:Extension:FlaggedRevs|FlaggedRevs 拡張機能]]における [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] との[[m:WMDE Technical Wishes/Geoinformation#Current issues|非互換性の問題]]が修正される見込みです。展開はすべてのウィキで5月10日を予定しています。Kartographer は[[phab:T307348|この拡張機能を未導入のウィキ5件]]でも5月24日に展開する予定です。
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|2022年版ベクター]] (Vector) 外装はウィキペディアのアラビア語版とカタロニア語版で規定となる予定です。ログイン利用者の場合、旧来の2010年版ベクターに戻すことが可能です。詳細は2022年版ベクターの[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2022-04 for the largest wikis|最新の更新情報]]をご参照ください。
'''オンライン会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームのオープンミーティング]]が5月17日に開催される予定です。6月7日、6月21日、7月5日、7月19日にもミーティングが計画されています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W19"/>
2022年5月9日 (月) 15:23 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23256717 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-20 ==
<section begin="technews-2022-W20"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/20|翻訳]]されています。
'''今週の更新'''
* 一部のウィキで[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が利用できるようになります。水曜日に運用開始予定です。{{int:project-localized-name-cawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ptwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-simplewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-svwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ukwiki/ja}}が対象となります。これは[[phab:T304110|様々なウィキペディアにツールを配備する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304542]
* [[mw:Special:MyLanguage/Wikimedia Hackathon 2022|ウィキメディアハッカソン 2022]]はオンラインで5月20日から22日に開催予定です。英語で実施されます。ドイツ、ガーナ、ギリシャ、インド、ナイジェリア、アメリカではローカルでも[[mw:Special:MyLanguage/Wikimedia Hackathon 2022/Meetups|ハッカソンのミートアップ]]が行われます。技術関係に興味があるウィキメディアンはソフトウェア・プロジェクトに取り組み、新しいスキルを身につけることもできます。セッションを主催したり、取り組みたいプロジェクトを投稿したりすることもできます。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-05-18|ja}}に、その他のウィキには{{#time:n月j日|2022-05-19|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 翻訳可能なページをビジュアルエディターで編集できるようになります。例えばメタやコモンズで翻訳対象に指定されているページでこの機能が使用できます。 [https://diff.wikimedia.org/2022/05/12/mediawiki-1-38-brings-support-for-editing-translatable-pages-with-the-visual-editor/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W20"/>
2022年5月16日 (月) 18:58 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23291515 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-21 ==
<section begin="technews-2022-W21"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/21|翻訳]]されています。
'''最近の更新'''
* 管理者はモバイルウェブ版のインターフェースを使用しているとき、利用者ページから直接 Special:Block の特別ページにアクセスできるようになりました。 [https://phabricator.wikimedia.org/T307341]
* <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wiktionary.org/ www.wiktionary.org]</span> のポータルページは現在、自動的に更新されるシステムを使用しています。他の[[m:Project_portals|プロジェクトのポータル]]も今後数ヶ月の間に更新される予定です。 [https://phabricator.wikimedia.org/T304629]
'''問題点'''
* Growthチームは新規参加者のためのメンターシッププログラムに取り組んでいます。従来は新規参加者がこのプログラムからオプトアウトすることができないようになっていました。2022年5月19日以降、新規参加者がGrowthのメンターシップからオプトアウトできるようになりました。 [https://phabricator.wikimedia.org/T287915]
* 投稿記録のメニューからコンテンツ翻訳ツールを読み込もうとするとページが動作しなくなるという問題が一部の編集者に発生しています。ただいま修正対応中です。Special:ContentTranslation を直接開いた場合はページが正常に動作するはずです。 [https://phabricator.wikimedia.org/T308802]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-05-25|ja}}に、その他のウィキには{{#time:n月j日|2022-05-26|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] MediaWikiの開発者からのサポート向上を目的とする[[mw:User:Jdlrobson/Extension:Gadget/Policy|技術方針の草案]]について、ガジェットやユーザースクリプトの開発者からのフィードバックを募集しています。 [https://phabricator.wikimedia.org/T308686]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W21"/>
2022年5月24日 (火) 00:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23317250 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-22 ==
<section begin="technews-2022-W22"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/22|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|高度]] [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]] 拡張機能に IP がいずれかの帯域に含まれるかどうかを調べる <code dir=ltr>ip_in_ranges()</code> 関数が追加されました。ウィキではパフォーマンス向上のため、複数の <code dir=ltr>ip_in_range()</code> 関数を <code>|</code> で繋いで1つの式とすることが推奨されています。[[Special:AbuseFilter|Special:AbuseFilter]] を使ってローカルでの使用例を検索することができます。 [https://phabricator.wikimedia.org/T305017]
* 不正利用フィルターを編集する利用者が IP に関する情報へアクセスできるようにするため、[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature|IP 情報]]という機能をすべてのウィキでベータ版として[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#May 24, 2022|実装しました]]。これは test.wikipedia.org で数週間にわたって行ったベータテストの結果に基づくものです。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-05-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-01|ja}}に、その他のウィキには{{#time:n月j日|2022-06-02|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-05-31|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象となるウィキの一覧]。)
* [[mw:Special:MyLanguage/Help:DiscussionTools#New topic tool|話題追加ツール]]はすべてのエディタに対応し、ほとんどのウィキを対象にまもなく導入の予定です。この機能を無効にするには、このツール内と[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]で指定してください。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/New_discussion][https://phabricator.wikimedia.org/T287804]
* [[File:Octicons-tools.svg|15px|link=|高度]] [[:mw:Special:ApiHelp/query+usercontribs|list=usercontribs API]] は近日中に [[mw:Special:MyLanguage/Help:Range blocks#Non-technical explanation|IP の帯域]]からの投稿の取得をサポートする予定です。API を使用するときは <code>uciprange</code> パラメータを指定することにより、[[:mw:Manual:$wgRangeContributionsCIDRLimit|制限値]]の範囲内で帯域内から投稿を取得することができます。 [https://phabricator.wikimedia.org/T177150]
* 新しいパーサー関数 <bdi lang="zxx" dir="ltr"><code><nowiki>{{=}}</nowiki></code></bdi> が導入されます。これは「=」という名前の既存のテンプレートを置き換えるものです。[[w:ja:等号|等号]]を挿入するものであり、テンプレート内のパラメータで使われる等号をエスケープするために使用します。 [https://phabricator.wikimedia.org/T91154]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W22"/>
2022年5月30日 (月) 20:29 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23340178 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-23 ==
<section begin="technews-2022-W23"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/23|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-08|ja}}に、その他のウィキには{{#time:n月j日|2022-06-09|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[Special:AbuseFilter|不正利用フィルター]]に新しく実装された関数 <bdi lang="zxx" dir="ltr"><code>str_replace_regexp()</code></bdi> は[[w:ja:正規表現|正規表現]]で文の一部を置換することができます。 [https://phabricator.wikimedia.org/T285468]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]を使い配信しています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W23"/>
2022年6月7日 (火) 02:46 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23366979 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-24 ==
<section begin="technews-2022-W24"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/24|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Extension:Kartographer|Kartographer]] 地図を全てのウィキで利用できるようになりました。この Kartographer 地図は[[mw:Special:MyLanguage/Help:Pending changes|査読待ち]]のページでも有効です。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Project_descriptions][https://phabricator.wikimedia.org/T307348]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-15|ja}}に、その他のウィキには{{#time:n月j日|2022-06-16|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-06-14|ja}}の6:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象となるウィキの一覧]。) [https://phabricator.wikimedia.org/T300471]
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-abwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-acewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-adywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-afwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-akwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-alswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-amwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-anwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-angwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-arcwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-arzwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-astwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-atjwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-avwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-aywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-azwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-azbwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304548]
* [[mw:Special:MyLanguage/Help:DiscussionTools#New topic tool|話題追加ツール]]はすべてのエディタに対応し、まもなくコモンズ、ウィキデータならびに複数のウィキに導入する予定です。ツールや[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]でこの機能を無効化することができます。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/New_discussion][https://phabricator.wikimedia.org/T287804]
'''今後の会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームの公開ミーティング]]が6月13日に開催予定です。今後は6月28日、7月12日、7月26日にもミーティングが計画されています。
'''今後の予定'''
* 7月末までに[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|2022年版ベクター]]外装が全てのウィキで既定になる予定です。それぞれのコミュニティのニーズに応じて調整するため、今後の数週間に議論を始める予定です。個人設定でいつでも旧バージョンに戻すことが可能です。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2022-04 for the largest wikis|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W24"/>
2022年6月13日 (月) 16:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23389956 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-25 ==
<section begin="technews-2022-W25"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/25|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Android|Android用ウィキペディアアプリ]]にページ全体を一度に編集する機能が追加されました。オーバーフローメニュー(3つの点のメニュー [[File:Ic more vert 36px.svg|15px|link=|alt=]])から選択できます。 [https://phabricator.wikimedia.org/T103622]
* [[File:Octicons-tools.svg|15px|link=|alt=|上級者向け]] 最近行われたデータベースの変更に伴い、[[m:Research:Quarry|Quarry ツール]]を使った検索に影響が出る可能性があります。英語版ウィキペディア、コモンズ、ウィキデータの <bdi lang="zxx" dir="ltr"><code>site_stats</code></bdi> に対するクエリを更新する必要があります。[[phab:T306589|詳細はこちらをご覧ください]]。
* [[File:Octicons-tools.svg|15px|link=|alt=|上級者向け]] [[Special:AbuseFilter|不正利用フィルター]]に新しい変数 <bdi lang="zxx" dir="ltr"><code>user_global_editcount</code></bdi> が追加され、グローバルに活動している利用者を除外することができるようになりました。 [https://phabricator.wikimedia.org/T130439]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-22|ja}}に、その他のウィキには{{#time:n月j日|2022-06-23|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* モバイルデバイスでレスポンシブではない外装(MonoBook や Vector など)を使用している場合、デフォルトのズームレベルが多少変更される場合があります。ズームを最適化してコンテンツ(Vector 2022 のテーブルコンテンツなど)がページ内に収まるようにするためです。この機能によってサイトの閲覧に不具合が生じる場合、その状況を把握したいと思いますので、議論を行うとき <span class="mw-content-ltr" lang="en" dir="ltr">[[m:User:Jon (WMF)|Jon (WMF)]]</span> に ping を送ってください。 [https://phabricator.wikimedia.org/T306910]
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は7月中にアップデートが行われる予定です。議論の外観が変更される予定です。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Parsoid による HTML 出力はファイルリンクに対して異なる <bdi lang="zxx" dir="ltr"><code>typeof</code></bdi> 属性値を付与しないようになり、全てに <bdi lang="zxx" dir="ltr"><code>mw:File</code></bdi> のファイルタイプを使用するようになります。ツールの作者は <bdi lang="zxx" dir="ltr"><code>mw:Image</code></bdi>、<bdi lang="zxx" dir="ltr"><code>mw:Audio</code></bdi>、<bdi lang="zxx" dir="ltr"><code>mw:Video</code></bdi> のファイルタイプを要求するコードを修正する必要があります。 [https://phabricator.wikimedia.org/T273505]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W25"/>
2022年6月20日 (月) 20:18 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23425855 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-26 ==
<section begin="technews-2022-W26"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/26|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[m:Special:MyLanguage/Wikimedia Enterprise|ウィキメディアエンタープライズ]] API サービスでは無料のオンデマンドリクエストとマンスリースナップショットが利用できるセルフサービスアカウントが提供されます([https://enterprise.wikimedia.com/docs/ API ドキュメント])。コミュニティから[[m:Special:MyLanguage/Wikimedia Enterprise/FAQ#community-access|データベースダンプとウィキメディアクラウドサービス]]へのアクセスは継続されます。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] テンプレートやモジュールを作成したあと、[[d:Special:MyLanguage/Wikidata:Wiktionary#lua|ウィキメディアウィキでからLuaを使ってウィキデータの語彙素を利用できるようになります]]。これに関する議論は[[d:Wikidata_talk:Lexicographical_data#You_can_now_reuse_Wikidata_Lexemes_on_all_wikis|プロジェクトのトークページ]]で受け付けています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-06-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-06-29|ja}}に、その他のウィキには{{#time:n月j日|2022-06-30|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-06-28|ja}}の6:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧]。) [https://phabricator.wikimedia.org/T311033]
* メインのデータベース入れ替えのため、一部のグローバルサービスとクロスウィキサービスは数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-06-30|ja}}の6:00 UTC からです。コンテンツ翻訳、通知、構造化議論、GrowthExperiments機能、その他一部のサービスが影響を受けます。 [https://phabricator.wikimedia.org/T300472]
* モバイル外装を使用したとき、ソートが設定されたテーブルをソートできるようになります。 [https://phabricator.wikimedia.org/T233340]
'''今後の会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームの公開ミーティング]]が明日(6月28日)に開催されます。7月12日、7月26日にもミーティングが計画されています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W26"/>
2022年6月27日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23453785 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-27 ==
<section begin="technews-2022-W27"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/27|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-07-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-07-06|ja}}に、その他のウィキには{{#time:n月j日|2022-07-07|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-07-05|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-07-07|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象となるウィキの一覧])を予定しています。
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は7月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
* [[File:Octicons-tools.svg|15px|link=|alt=| 高度]] この変更はウィキソースの標準名前空間にあるページにのみ影響します。 Javascript の<bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:Interface/JavaScript#mw.config|mw.config]]</code></bdi> から設定変数 <bdi lang="zxx" dir="ltr"><code>proofreadpage_source_href</code></bdi> を削除して <bdi lang="zxx" dir="ltr"><code>prpSourceIndexPage</code></bdi> に置き換える予定です。 [https://phabricator.wikimedia.org/T309490]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W27"/>
2022年7月4日 (月) 19:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23466250 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-28 ==
<section begin="technews-2022-W28"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/28|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|2022年版ベクター外装]]ではページ題名の下にタブを並べて、議論、閲覧、編集、履歴表示その他にアクセスできるようにしました。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates#Page title/tabs switch|詳細はこちら]]。 [https://phabricator.wikimedia.org/T303549]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 個別のウイキに対する設定をひと目で確認できるようになり、2つのウィキの間で設定内容が異なる場合は比較できるようになりました。例:[https://noc.wikimedia.org/wiki.php?wiki=jawiktionary ウィクショナリー日本語版の設定]、[https://noc.wikimedia.org/wiki.php?wiki=eswiki&compare=eowiki スペイン語とエスペラント語のウィキペディアの設定比較] ローカルコミュニティで設定の変更について[[m:Special:MyLanguage/Requesting_wiki_configuration_changes|議論や提案を行う]]ことがあるかもしれません。名前がつけられた設定の詳細を[[mw:Special:Search|MediaWiki.org]]で検索することができます。 [https://phabricator.wikimedia.org/T308932]
*アンチハラスメント・ツール・チームはこのたび、IP情報を表示する機能を[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能として全てのウィキに]]対して[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#May|実装しました]]。荒らしに対応する利用者はこのツールを通じてIPアドレスの情報を得ることができます。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Info feature#April|ツールがどこにあるかや、その使い方]]については更新情報をご確認ください。ご意見、ご感想がありましたらツールにあるリンクからお寄せください。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-07-12|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象となるウィキの一覧]。)
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は7月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W28"/>
2022年7月11日 (月) 19:25 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23502519 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-29 ==
<section begin="technews-2022-W29"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/29|翻訳]]されています。
'''問題点'''
* モバイルウェブ版の機能[[mw:Special:MyLanguage/Extension:NearbyPages|近くの場所に関するページ]]は先週、利用できませんでした。この問題は今週は修正されます。 [https://phabricator.wikimedia.org/T312864]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-07-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-07-20|ja}}に、その他のウィキには{{#time:n月j日|2022-07-21|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[mw:Technical_decision_making/Forum|技術決定フォーラム]]では[[mw:Technical_decision_making/Community_representation|コミュニティの代表者]]を募集中です。〆切は8月12日、オンウィキまたは<span class="mw-content-ltr" lang="en" dir="ltr">TDFSupport@wikimedia.org</span>宛にメールで応募してください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W29"/>
2022年7月18日 (月) 23:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23517957 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-30 ==
<section begin="technews-2022-W30"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/30|翻訳]]されています。
'''最近の更新'''
* <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikibooks.org/ www.wikibooks.org]</span> と<span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikiquote.org/ www.wikiquote.org]</span> のポータルページは現在、自動的に更新されるシステムを使用しています。他の[[m:Project_portals|プロジェクトのポータル]]も今後数ヶ月の間に更新される予定です。 [https://phabricator.wikimedia.org/T273179]
'''問題点'''
* 先週、メインのデータベースを緊急で切り替えたことに伴い、一部のウィキが数分間、閲覧はできても編集はできない状態になりました([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 影響を受けたウィキの一覧])。 [https://phabricator.wikimedia.org/T313383]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-07-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-07-27|ja}}に、その他のウィキには{{#time:n月j日|2022-07-28|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* レガシー版ベクターと2022年版ベクターで外部リンクのアイコンが若干ですが変更されます。解像度が低い画面でも認識しやすくなるよう、新しいアイコンはよりシンプルな形状のものを採用します。 [https://phabricator.wikimedia.org/T261391]
* 管理者が既にブロックされている利用者のページを開くと、これまでの「{{int:blockip}}」ボタンの代わりに、「{{int:changeblockip}}」と「{{int:unblockip}}」の二つが表示されるようになりました。 [https://phabricator.wikimedia.org/T308570]
'''今後の会議'''
* 2022年版ベクター外装に関する[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|ウェブチームの公開ミーティング]]が明日(7月26日)に開催されます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W30"/>
2022年7月25日 (月) 19:27 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23545370 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-31 ==
<section begin="technews-2022-W31"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/31|翻訳]]されています。
'''最近の更新'''
* <bdi lang="zxx" dir="ltr"><code>Phantom</code></bdi>タグのサポートにより、[[m:Special:MyLanguage/Help:Displaying_a_formula#Phantom|数学レンダリング用のためのLaTeX機能]]がウィキで利用できるようになりました。これにより、2022年コミュニティ要望アンケートの[[m:Community_Wishlist_Survey_2022/Editing/Missing_LaTeX_capabilities_for_math_rendering|59番目の要望]]の一部が完了しました。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-03|ja}}に、その他のウィキには{{#time:n月j日|2022-08-04|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:Extension:WikiEditor/Realtime_Preview|リアルタイムプレビュー]]は[https://noc.wikimedia.org/conf/highlight.php?file=dblists%2Fgroup0.dblist Group 0] のウィキでベータ版として利用できるようになります。この機能は、[[m:Special:MyLanguage/Community_Wishlist_Survey_2021/Real_Time_Preview_for_Wikitext|コミュニティ要望アンケートの提案の1つ]]に応じる形で作成されました。
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は8月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。
'''今後の会議'''
* 今週は、[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector (2022)]] に関する3つの会議が同時通訳付きで開催されます。火曜日はロシア語での通訳があります。木曜日には、アラビア語とスペイン語の話者のための会議が行われます。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/Talk to Web|参加方法を確認する]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W31"/>
2022年8月1日 (月) 21:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23615613 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-32 ==
<section begin="technews-2022-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/32|翻訳]]されています。
'''最近の更新'''
* [[:m:Special:MyLanguage/Meta:GUS2Wiki/Script|GUS2Wiki]]は [[{{#special:GadgetUsage}}]] の情報をウィキ上のページにコピーして履歴を確認できるようにするものです。[[d:Q113143828|ウィキデータのProject:GUS2Wikiのエントリ]]にないウィキは手動でGUS2Wikiを実行するか[[:m:Special:MyLanguage/Meta:GUS2Wiki/Script#Opting|情報を配信してもらうように依頼をしてください]]。 [https://phabricator.wikimedia.org/T121049]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-08-09|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-08-11|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist 対象となるウィキの一覧])を予定しています。
'''今後の会議'''
* [[wmania:Special:MyLanguage/Hackathon|ウィキマニアハッカソン]]は8月12日から14日にかけてオンラインで開催されます。プロジェクトについて学び、協力者を見つけるための[[wmania:Special:MyLanguage/Hackathon/Schedule|プレハッキング・ショーケース]]もお忘れのないようにお願いします。誰でも[[phab:/project/board/6030/|企画を提案したり]]、[[wmania:Special:MyLanguage/Hackathon/Schedule|セッションを開催する]]ことができます。[[wmania:Special:MyLanguage/Hackathon/Newcomers|初めての方でも歓迎します]]!
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W32"/>
2022年8月8日 (月) 19:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23627807 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-33 ==
<section begin="technews-2022-W33"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/33|翻訳]]されています。
'''最近の更新'''
* ペルシャ語版 (Farsi) ウィキペディアのコミュニティは2021年10月から2022年4月まで、IP利用者の編集をブロックすることを決定しました。ウィキメディア財団の製品解析チームはこの変更の影響を追跡しました。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/IP Editing Restriction Study/Farsi Wikipedia|影響調査報告書]]が公開されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-17|ja}}に、その他のウィキには{{#time:n月j日|2022-08-18|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-08-16|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s1.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-08-18|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s8.dblist 対象となるウィキの一覧])を予定しています。
* [[mw:Special:MyLanguage/Help:Extension:WikiEditor/Realtime_Preview|リアルタイムプレビュー]]は[https://noc.wikimedia.org/conf/highlight.php?file=dblists%2Fgroup1.dblist グループ1] のウィキでベータ版として利用できるようになります。この機能は、[[m:Special:MyLanguage/Community_Wishlist_Survey_2021/Real_Time_Preview_for_Wikitext|コミュニティ要望アンケートの提案の1つ]]に応じる形で作成されました。
'''今後の予定'''
* ベータ版機能の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]は8月中にアップデートが行われる予定です。議論の外観が変更されます。[[mw:Special:MyLanguage/Talk pages project/Usability/Prototype|変更案の一部]]をご覧ください。 [https://www.mediawiki.org/wiki/Talk_pages_project/Usability#4_August_2022][https://www.mediawiki.org/wiki/Talk_pages_project/Usability#Phase_1:_Topic_containers][https://phabricator.wikimedia.org/T312672]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/33|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W33"/>
2022年8月15日 (月) 21:09 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23658001 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-34 ==
<section begin="technews-2022-W34"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/34|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] 地図に問題が2件発生していました。現在は解決済みです。VisualEditor 経由で Geolines を生成したとき、地図を空白で表示しなくなりました。Geolines のうち QID で構成されるもの(例:地下鉄路線)にピンのアイコンは表示されなくなりました。 [https://phabricator.wikimedia.org/T292613][https://phabricator.wikimedia.org/T308560]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-24|ja}}に、その他のウィキには{{#time:n月j日|2022-08-25|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインのデータベース入れ替えのため、複数のウィキで数分間、閲覧しかできない状態になる見込みです。実施予定日時は{{#time:n月j日|2022-08-25|ja}}の7:00 UTC からです([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象となるウィキの一覧]。)
* リンクと他のテキストとの違いをより明確にするために、リンクと訪問済みリンクの色が変わります。 [https://phabricator.wikimedia.org/T213778]
'''今後の予定'''
* 新しい[{{int:discussiontools-topicsubscription-button-subscribe}}]ボタンは、[[mw:Talk pages project/Notifications#12 August 2022|初心者が回答を得るのに役立ちます]]。編集機能開発チームは、このツールをあらゆる場所で有効にしています。この機能は[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]でオフにすることができます。 [https://phabricator.wikimedia.org/T284489]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W34"/>
2022年8月23日 (火) 00:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23675501 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-35 ==
<section begin="technews-2022-W35"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/35|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:WikiEditor/Realtime_Preview|リアルタイムプレビュー]]は[https://noc.wikimedia.org/conf/highlight.php?file=dblists%2Fgroup2.dblist グループ2]のウィキでベータ版として利用できます。この機能は、[[m:Special:MyLanguage/Community_Wishlist_Survey_2021/Real_Time_Preview_for_Wikitext|コミュニティ要望アンケートの提案の1つ]]に応じる形で作成されました。このベータ版を有効にすると、一部のウィキ固有のガジェットと競合する可能性があることに注意してください。
'''問題点'''
* ここ数か月、コモンズ、ウィキデータ、英語版ウィキペディアなどの[[{{#special:statistics}}]]で不正確な数値が表示されていました。現在は修正済みです。 [https://phabricator.wikimedia.org/T315693]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-08-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-08-31|ja}}に、その他のウィキには{{#time:n月j日|2022-09-01|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-08-30|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-09-01|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧])を予定しています。
'''今後の予定'''
* ウィキメディア財団は、ウィキメディアコミュニティが有害な出来事を報告する方法を改善するために、[[m:Special:MyLanguage/Private Incident Reporting System|プライベートインシデント報告システム (PIRS)]]を構築して、利用者が簡単かつ安全に報告できるようにしたいと考えています。[[m:Special:MyLanguage/Private Incident Reporting System#Phase 1|提供された質問]]に答えるため、トークページにコメントをすることができます。報告した/報告したい有害な状況に直面したことがある場合は、PIRSのインタビューに参加して、経験を共有してください。サインアップするには、<span class="mw-content-ltr" lang="en" dir="ltr">[[m:User:MAna (WMF)|Madalina Ana]]</span>に[[m:Special:EmailUser/MAna_(WMF)|メール]]してください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W35"/>
2022年8月29日 (月) 23:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23725814 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-36 ==
<section begin="technews-2022-W36"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/36|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.39/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-07|ja}}に、その他のウィキには{{#time:n月j日|2022-09-08|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-09-06|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s1.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-09-08|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象となるウィキの一覧])を予定しています。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 特別ページでページ上欄外のタブが1つしかない場合、2022年版ベクター外装ではスペースを節約するためタブバーを非表示にする予定です。ガジェットがタブを使う場合は表示されます。現在、<bdi lang="zxx" dir="ltr"><code>#p-namespaces</code></bdi> の CSS IDを直接追加しているガジェットは、<bdi lang="zxx" dir="ltr"><code>[[mw:ResourceLoader/Core_modules#addPortletLink|mw.util.addPortletLink]]</code></bdi> 関数を使うよう更新する必要があります。ガジェットでこの ID にスタイルを追加する場合は、新しい ID <bdi lang="zxx" dir="ltr"><code>#p-associated-pages</code></bdi> も対象にすることを検討してください。[[phab:T316908|例はこちら]]。 [https://phabricator.wikimedia.org/T316908][https://phabricator.wikimedia.org/T313409]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W36"/>
2022年9月5日 (月) 23:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23757743 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-37 ==
<section begin="technews-2022-W37"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/37|翻訳]]されています。
'''最近の更新'''
* 検索サーバが新しいメジャーバージョンにアップグレードされました。検索の不具合にお気づきの場合は、[[phab:project/view/1849/|Phabricator]]に報告してください。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/XPCTYYTN67FVFKN6XOHULJVGUO44J662]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-14|ja}}に、その他のウィキには{{#time:n月j日|2022-09-15|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|構文強調表示]]の追跡は、現状では[[mw:Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit|時間の掛かるパーサ関数]]として実行しています。時間の掛かる高い関数呼び出しは、単一ページに500件までしか実行できません。この上限値を超えたページは、特定の[[:Category:{{MediaWiki:expensive-parserfunction-category}}|追跡カテゴリ]]に追加されます。 [https://phabricator.wikimedia.org/T316858]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W37"/>
2022年9月13日 (火) 01:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23787318 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-38 ==
<section begin="technews-2022-W38"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/38|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code><nowiki>templatelinks</nowiki></code></bdi> のデータベースフィールド、<bdi lang="zxx" dir="ltr"><code><nowiki>tl_namespace</nowiki></code></bdi> と <bdi lang="zxx" dir="ltr"><code><nowiki>tl_title</nowiki></code></bdi> は削除されました。これらのフィールドを使用していたクエリはすべて、<bdi lang="zxx" dir="ltr"><code><nowiki>tl_target_id</nowiki></code></bdi> という正規化された新しいフィールドを使うように変更しなけれなりません。詳細は <span class="mw-content-ltr" lang="en" dir="ltr">[[phab:T299417|T299417]]</span> を御覧ください。これはリンクテーブルの[[w:ja:関係の正規化|正規化]]の一環として行われています。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/message/U2U6TXIBABU3KDCVUOITIGI5OJ4COBSW/][https://www.mediawiki.org/wiki/User:ASarabadani_(WMF)/Database_for_devs_toolkit/Concepts/Normalization]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-20|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-21|ja}}に、その他のウィキには{{#time:n月j日|2022-09-22|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]地図では、共通する地点のマーカーにアイコンを使用できます。火曜日に、[[mw:Special:MyLanguage/Help:Extension:Kartographer/Icons|従来のアイコンセット]]が[https://de.wikipedia.beta.wmflabs.org/wiki/Hilfe:Extension:Kartographer/Icons バージョン maki 7.2]に更新されます。約100個の新しいアイコンが利用可能になります。さらに、既存のアイコンはすべて、明確にするために更新され、国際的な状況でより適切に機能するようになりました。 [https://phabricator.wikimedia.org/T302861][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation#Update_maki_icons]
'''今後の予定'''
* [[m:Content_Partnerships_Hub/Software/Volunteer_developers_discussion_at_Wikimania_2022|ウィキマニアのグループディスカッション]]で30人以上の人がウィキメディア運動におけるコンテンツ・パートナーシップを持続可能なものにするための話し合いを行いました。ボランティア開発者はどのようなサポートが許容されるでしょうか。まとめをご覧の上、[[m:Talk:Content Partnerships Hub/Software/Volunteer developers discussion at Wikimania 2022|ご意見をお聞かせください]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W38"/>
<span class="mw-content-ltr" lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</span> 2022年9月19日 (月) 22:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23826293 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-39 ==
<section begin="technews-2022-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/39|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Parsoidクライアントはリンクの <bdi lang="en" dir="ltr"><code>rel</code></bdi> 属性をスペースで区切って複数の値を指定できるよう、更新する必要があります。詳細は<bdi lang="en" dir="ltr">[[phab:T315209|T315209]]</bdi>をご覧ください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-09-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-09-28|ja}}に、その他のウィキには{{#time:n月j日|2022-09-29|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/VisualEditor/Diffs|視覚的な差分]]はウィクショナリーとウィキペディアを除いて、すべての利用者が利用できるようになります。 [https://phabricator.wikimedia.org/T314588]
* アラビア語版、バングラ語版、中国語版、フランス語版、ハイチ・クレオール語版、ヘブライ語版、韓国語版、ベトナム語版ウィキペディアで[[mw:Special:MyLanguage/Help:DiscussionTools#Mobile|モバイル版のトークページ]]が変更されます。変更後は更に使いやすくなり、より多くの情報を提供できるはずです。 [https://phabricator.wikimedia.org/T318302] [https://www.mediawiki.org/wiki/Talk_pages_project/Mobile]
* [[mw:Lua/Scripting|{{ns:828}}]]名前空間で<bdi lang="en" dir="ltr"><code>.json</code></bdi>で終わるページは、{{ns:2}}名前空間および{{ns:8}}名前空間のように、JSONとして扱われます。 [https://phabricator.wikimedia.org/T144475]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年9月27日 (火) 00:30 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23860085 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-40 ==
<section begin="technews-2022-W40"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/40|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]の地図は QID や SPARQL を介してウィキデータから位置情報を取得できるようになりました。従来は geoshape と geoline からのみ取得可能でした。 [https://phabricator.wikimedia.org/T307695] [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation/Geopoints_via_QID]
* [[m:Special:MyLanguage/Coolest_Tool_Award|Coolest Tool Award 2022年]](最もクールなツールに贈られる賞)の候補作品を推薦してください。応募は10月12日まで受け付けます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-05|ja}}に、その他のウィキには{{#time:n月j日|2022-10-06|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:DiscussionTools#Mobile|モバイル版のトークページ]]は、アラビア語版、バングラ語版、中国語版、フランス語版、ハイチ・クレオール語版、ヘブライ語版、韓国語版、ベトナム語版ウィキペディアで変更されます。変更後は更に使いやすくなり、より多くの情報を提供できるはずです。 (先週の週報は配信が遅れました) [https://phabricator.wikimedia.org/T318302] [https://www.mediawiki.org/wiki/Talk_pages_project/Mobile]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code>scribunto-console</code></bdi> API モジュールは [[mw:Special:MyLanguage/API:Tokens|CSRF トークン]]を要求します。これは内部モジュールとして文書化されており、使用はサポートされていません。 [[phab:T212071|[5]]]
* 2022年版ベクター外装はウィキメディアの最小規模のプロジェクト群で既定の外装として設定されました。[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#Deployment_plan_and_timeline|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月4日 (火) 00:24 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23885489 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-41 ==
<section begin="technews-2022-W41"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/41|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-12|ja}}に、その他のウィキには{{#time:n月j日|2022-10-13|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* 一部のウィキでは、[[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]マップを全画面表示すると、近くの記事を表示できるようになります。フィードバック期間の後、続けてさらに多くのウィキに導入される予定です。 [https://phabricator.wikimedia.org/T316782][https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation/Nearby_articles]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W41"/>
2022年10月10日 (月) 14:09 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23912412 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-42 ==
<section begin="technews-2022-W42"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/42|翻訳]]されています。
'''最近の更新'''
* 最近実装された[[phab:T306883|Special:Searchで記事のサムネイル画像]]を表示する機能はウィキペディアプロジェクトのみに限定されます。詳細は[[phab:T320510|T320510]]をご覧ください。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Structured_Data_Across_Wikimedia/Search_Improvements]
* Special:Searchで記事のサムネイルを読み込む際に問題が発生するバグは修正されました。詳細は[[phab:T320406|T320406]]をご覧ください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-19|ja}}に、その他のウィキには{{#time:n月j日|2022-10-20|ja}}に展開されます([[mw:MediaWiki 1.39/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Lua モジュールを制作するとき、JSON ページからデータを読み込む際に <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Extension:Scribunto/Lua_reference_manual#mw.loadJsonData|mw.loadJsonData()]]</code></bdi> を使えます。 [https://phabricator.wikimedia.org/T217500]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] Lua モジュールを制作するとき、<bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Extension:Scribunto/Lua_reference_manual#Strict_library|require( "strict" )]]</code></bdi> を有効にすることで想定される幾つかの問題についてエラーを検出することができます。これはほとんどのウィキで使われていた "[[wikidata:Q16748603|Module:No globals]]" を置き換えるものです。 [https://phabricator.wikimedia.org/T209310]
'''今後の予定'''
* [[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]の[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]はほとんどのウィキで更新される予定です。この変更を受けて「{{int:discussiontools-replylink}}」ボタンの見た目が変わります。 [https://phabricator.wikimedia.org/T320683]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月17日 (月) 21:46 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23943992 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-43 ==
<section begin="technews-2022-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/43|翻訳]]されています。
'''最近の更新'''
* 特別:検索で、オーディオプレーヤーの配置と画像プレースホルダの高さに関して、微細な修正が行われました。詳細は[[phab:T319230|T319230]]に記載されています。
* ウィキペディアの[[Special:Preferences#mw-prefsection-searchoptions|個人設定]]に新しい項目を追加、特別:検索の実行をした時に記事のサムネイルを非表示にできるようになりました。詳細は[[phab:T320337|T320337]]をご参照ください。
'''問題点'''
* 先週は3件のウィキ ({{int:project-localized-name-frwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-jawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ruwiki/ja}}) で、閲覧はできても編集ができない状態が最大25分発生しました。原因はハードウェアの問題でした。 [https://phabricator.wikimedia.org/T320990]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-10-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-10-26|ja}}に、その他のウィキには{{#time:n月j日|2022-10-27|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-10-25|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-10-27|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s4.dblist 対象となるウィキの一覧])を予定しています。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-aswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-banwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-barwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bat smgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bclwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-be x oldwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bhwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-biwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bjnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bpywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-brwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bugwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-bxrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-idwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304549]
* 2022年10月26日(水曜)より、[[d:Q14339834 |Growth メンター制度を導入済みのウィキ]]では、メンター名簿のアップグレードを予定しています。メンター制度自体はこれまでまでと同じように機能します。登録手順は[[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list#add|変更され]]、新しい管理オプションが提供される予定です。あわせて今回の更新により[[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list#create|ウィキペディアでメンター制度の構築が簡略化されます]]。 [https://phabricator.wikimedia.org/T314858][https://phabricator.wikimedia.org/T310905][https://www.mediawiki.org/wiki/Special:MyLanguage/Growth/Structured_mentor_list]
* ユニコード11に準拠し、欧文のページ題名で1文字目が小文字の場合は改名もしくは削除の対象になります。影響を受けるページ名の一覧は[<bdi lang="en" dir="ltr">[[m:Unicode 11 case map migration]]</bdi> こちら]。詳細は[[phab:T292552|T292552]]をご参照くださ。
* 2022年版ベクター外装はウィキメディアの最小規模のプロジェクト群で既定の外装として設定されます。[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements#smallest-1|詳細はこちら]]。
'''今後の予定'''
* [[mw:Special:MyLanguage/Talk pages project/Replying|返信ツール]]ならびに[[mw:Special:MyLanguage/Talk pages project/New discussion|新しい話題の追加ツール]]は近日中に[[mw:Special:MyLanguage/VisualEditor/Special characters|特殊文字メニュー]]が導入されます。 [https://phabricator.wikimedia.org/T249072]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月24日 (月) 21:23 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23975411 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-44 ==
<section begin="technews-2022-W44"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/44|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] 地図でキーボードナビゲーションを利用する場合、フォーカスを視認しやすくなります。 [https://phabricator.wikimedia.org/T315997]
* {{#special:RecentChanges}}で「{{int:rcfilters-filter-newuserlogactions-label}}」というフィルタを使うと、ログで利用者アカウントの新規作成を非表示にできます。 [https://phabricator.wikimedia.org/T321155]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-11-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-11-02|ja}}に、その他のウィキには{{#time:n月j日|2022-11-03|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* ビジュアルエディタでは [[mw:Special:MyLanguage/Help:Extension:Kartographer|地図のダイヤログ]]にヘルプ文を少し表示するようになりました。 [https://phabricator.wikimedia.org/T318818]
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]地図をビジュアルエディタで表示する時に、ドロップダウンメニューで言語の選択ができるようになりました。 [https://phabricator.wikimedia.org/T318817]
* ビジュアルエディタで[[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]地図にキャプションを追加できるようになりました。 [https://phabricator.wikimedia.org/T318815]
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] 地図の枠線は、ビジュアルエディタで非表示にできるようになりました。 [https://phabricator.wikimedia.org/T318813]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年10月31日 (月) 21:16 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=23977539 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-45 ==
<section begin="technews-2022-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/45|翻訳]]されています。
'''最近の更新'''
* [[m:Special:MyLanguage/EventCenter/Registration|イベント登録]]ツールの更新版が[[testwiki:|testwiki]]および[[test2wiki:|test2wiki]]で試用できるようになりました。同ツールはイベント主催者と参加者双方のための機能を提供します。[[m:Talk:Campaigns/Foundation Product Team/Registration|プロジェクトのトークページ]]に皆さんのフィードバックをお寄せください。[[m:Campaigns/Foundation Product Team/Registration|プロジェクト]]に関する詳細もご覧ください。 [https://phabricator.wikimedia.org/T318592]
'''問題点'''
* 先週のあいだに2回、およそ45分にわたり、一部のファイルやサムネイルの読み込みやアップロードができない不具合が発生し、主にログインユーザーが影響を受けました。原因は調査中で、近く事故報告書が発表されます。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月8日 (火) 00:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24001035 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-46 ==
<section begin="technews-2022-W46"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/46|翻訳]]されています。
'''最近の更新'''
* ウィキデータでは、特定の条件が満たされた場合にウィキ間リンクがリダイレクトページを指すようになりました。[[wikidata:Special:MyLanguage/Wikidata:Sitelinks_to_redirects|リダイレクトへのサイトリンク]]と呼ぶ機能です。1つのウィキが1つのページを使用して複数の概念を扱っているが、別のウィキがそれより多くのページを使用して同じ概念を扱っている場合に必要とされます。新しいガイドラインの提案に関する[[wikidata:Special:MyLanguage/Wikidata talk:Sitelinks to redirects|フィードバック]]をお待ちしています。 [https://phabricator.wikimedia.org/T278962]
* <span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikinews.org/ www.wikinews.org]</span>と<span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikiversity.org/ www.wikiversity.org]</span>、<span class="mw-content-ltr" lang="en" dir="ltr">[https://www.wikivoyage.org/ www.wikivoyage.org]</span>のポータルページに自動更新システムが導入されました。 [https://phabricator.wikimedia.org/T273179]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-11-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-11-16|ja}}に、その他のウィキには{{#time:n月j日|2022-11-17|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* テンプレートページに直接「TemplateDataの編集」をする新しいリンクが追加されます。 [https://phabricator.wikimedia.org/T316759]
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] モバイル版[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]が有効なウィキ([[mw:Special:MyLanguage/Talk pages project/Deployment Status|こちらを参照]])でがまもなく、トークページ上部に配置されたテンプレートを表示するため、完全なCSSスタイルが適用されるようになります。これらの「トークページボックス」をモバイルデバイスの画面幅に適用させるには[https://en.wikipedia.org/w/index.php?title=Module:Message_box/tmbox.css&oldid=1097618699#L-69 この例]のようなメディアクエリを使用することができます。 [https://phabricator.wikimedia.org/T312309]
* 2023年1月から、[[m:Special:MyLanguage/Community Tech|コミュニティ技術チーム]]は[[m:Special:MyLanguage/Community Wishlist Survey/Updates/2023 Changes Update|2年ごとにコミュニティー要望アンケート (CWS) を実施します]]。したがって2024年は新しい提案や投票はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月14日 (月) 21:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24071290 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-47 ==
<section begin="technews-2022-W47"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/47|翻訳]]されています。
'''最近の更新'''
* 検索バーとSpecial:Searchでの記事のサムネイル画像において自由使用できないメディアの表示が非アクティブ化されました。詳細は[[phab:T320661|T320661]]をご覧ください。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-11-22|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s2.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-11-24|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s7.dblist 対象となるウィキの一覧])を予定しています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月21日 (月) 23:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24071290 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-48 ==
<section begin="technews-2022-W48"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/48|翻訳]]されています。
'''最近の更新'''
* 個人設定の新項目、「横幅制限モード」が[[Special:Preferences#mw-prefsection-rendering|2022年ベクター外装]]に追加されました。ご利用のモニタが 1600px よりも幅が広ければ、この設定はページを表示するたび、トグル表示されます。この設定により、ログイン、ログアウトの状態に関わらず、利用者はページの表示幅を広めにすることができます。 [https://phabricator.wikimedia.org/T319449]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-11-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-11-30|ja}}に、その他のウィキには{{#time:n月j日|2022-12-01|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] メインデータベース切り替えのため、一部のウィキが数分間、閲覧できても編集ができない状態になります。作業は {{#time:n月j日|2022-11-29|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist 対象となるウィキの一覧])と {{#time:n月j日|2022-12-01|ja}} 7:00 (UTC)([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s1.dblist 対象となるウィキの一覧])を予定しています。
* SVG形式の画像内に表示される数式は、今後はサポートしない端末のためにPNG形式によるフォールバックを伴わなくなります。これは画像生成システムの刷新作業の一環として実施します。2018年2月以前の既定では、PNG形式の画像のみ表示していました。 [https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/3BGOKWJIZGL4TC4HJ22ICRU2SEPWGCR4/][https://phabricator.wikimedia.org/T311620][https://phabricator.wikimedia.org/T186327]
* FlaggedRevisions拡張機能を使用する[[phab:P40224|一部のウィキ]]では、特別:投稿記録に[[mw:Special:MyLanguage/Help:Extension:FlaggedRevs#Special:Contributions|新しいチェックボックスが追加]]され、利用者による[[mw:Special:MyLanguage/Help:Pending changes|保留中の変更]]のみを表示できるようになります。 [https://phabricator.wikimedia.org/T321445]
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] HTML構文解析出力におけるメディアの構造が、来週初めに[https://wikitech.wikimedia.org/wiki/Deployments/Train#Wednesday グループ1のウィキ]で変更されます (ウィキメディアコモンズやメタウィキを除く)。この変更により、コンテンツのアクセシビリティが向上し、関連するCSSの記述が容易になります。それに伴いサイトのCSS、ユーザースクリプト、ガジェットの更新が必要になる場合があります。[[mw:Special:MyLanguage/Parsoid/Parser_Unification/Media_structure/FAQ|確認するコード、コードを更新する方法、および関連問題を報告する場所についての詳細]]があります。 [https://phabricator.wikimedia.org/T314318]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年11月28日 (月) 20:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24114342 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-49 ==
<section begin="technews-2022-W49"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/49|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] ウィキソースでは ProofreadPage というツールを使います。これは OpenSeadragon というオープンソースのツールを採用します。OpenSeadragon の Javascript API は大幅に書き換えられ、画像を動的に読み込むようになりました。旧バージョンの API が提供する機能は今も使えるはずですが、サポートは既に終了しています。ユーザースクリプトとガジェットは API の新しいバージョンに移行してください。新しいバージョンの API が提供する機能は[[mw:Extension:Proofread_Page/Page_viewer#JS_API|メディアウィキに解説があります]]。 [https://phabricator.wikimedia.org/T308098][https://www.mediawiki.org/wiki/Extension:Proofread_Page/Edit-in-Sequence]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-12-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-12-07|ja}}に、その他のウィキには{{#time:n月j日|2022-12-08|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年12月6日 (火) 00:41 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24151590 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-50 ==
<section begin="technews-2022-W50"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/50|翻訳]]されています。
'''最近の更新'''
* 15件のウィキペディアで[[mw:Special:MyLanguage/Talk pages project/Mobile|モバイル版のトークページ・プロジェクト]]のA/Bテストが始まりました。[[mw:Reading/Web/Mobile|モバイル版のウェブサイト]]では半数の利用者が{{int:discussiontools-replybutton}}ツールやその他の機能を使えるか使うことができます。 [https://phabricator.wikimedia.org/T321961]
* テンプレートとの整合性を高めるため、<code>=</code> という文字は新規の利用者名に 使えなくなります。既存の利用者名に影響はありません。 [https://phabricator.wikimedia.org/T254045]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2022-12-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2022-12-14|ja}}に、その他のウィキには{{#time:n月j日|2022-12-15|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]で使う HTML は[[mw:Special:MyLanguage/Talk_pages_project/Usability#Phase_1:_Topic_containers|節の見出しの中に議論のメタデータを表示]]していましたが、今度から見出しの下に挿入されるようになります。これによりスクリーンリーダーを使った際の議論ツールのアクセシビリティが改善されます。 [https://phabricator.wikimedia.org/T314714]
'''イベント'''
* 第4回[[m:Special:MyLanguage/Coolest_Tool_Award|クーレスト・ツール賞]]が[https://zonestamp.toolforge.org/1671210002 2022年12月16日金曜日の17:00(UTC)]にオンラインで開催されます!イベントはYouTubeの[https://www.youtube.com/user/watchmediawiki MediaWikiチャンネル]でライブ配信され、その後コモンズに追加されます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年12月12日 (月) 23:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24216570 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2022-51 ==
<section begin="technews-2022-W51"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2022/51|翻訳]]されています。
'''技術ニュース'''
* [[w:ja:年末年始|年末年始]]に当たるため、技術ニュースの次号は2023年1月9日の発行になります。
'''最近の更新'''
* 利用者の投稿記録では「差し戻し済み」のようにタグが付けられた編集をフィルタリングすることができます。このたび、タグが付けられていない編集も全てフィルタリングできるようになりました。これは2022年のコミュニティ要望リストに基づくものです。 [https://phabricator.wikimedia.org/T119072]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] ガジェット開発者向けに、記事のタイトルの下にコンテンツを追加する機能が新しく実装されました。この機能はすべての外装で動作する安定版 API として提供されます。[[mw:Special:MyLanguage/ResourceLoader/Core_modules#addSubtitle|仕様を解説したドキュメントが用意されています]]。 [https://phabricator.wikimedia.org/T316830]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] [[test2wiki:|テストウィキのひとつ]]は [[w:ja:Kubernetes|Kubernetes]] ([[wikitech:MediaWiki On Kubernetes|詳細]])を搭載した新しいインフラで提供されています。2023年初頭には更に多くのウィキのインフラが切り替わる予定です。試用してみて問題があればお知らせください。 [https://phabricator.wikimedia.org/T290536]
'''問題点'''
* 先週は全てのウィキで、閲覧はできても編集ができない状態が9分間発生しました。原因はデータベースの問題でした。 [https://wikitech.wikimedia.org/wiki/Incidents/2022-12-13_sessionstore]
'''今週の更新'''
* 今週と来週は、MediaWikiのバージョン更新はありません。
* "{{int:discussiontools-replybutton}}"という単語はアラビア語 ("<bdi lang="ar">ردّ</bdi>") など一部の言語では非常に短く表されます。そのためトークページの{{int:discussiontools-preference-label}}ボタンが使いづらくなっています。ボタンが短く表示される言語には矢印アイコンが追加される予定です。この変更は[[Special:Preferences#mw-prefsection-betafeatures|ベータ版機能]]を有効にしている編集者にのみ表示されます。 [https://www.mediawiki.org/wiki/Talk_pages_project/Usability#Status] [https://phabricator.wikimedia.org/T323537]
'''今後の予定'''
* ソフトウェアや{{int:Abusefilter}}にシステムにより、編集には自動的に「タグ付け」が行われることがあります。これらのタグはタグに関して説明したページにリンクされています。近々「最近の更新」にもリンクされ、同じタグが付けられた他の編集についても確認できるようになります。これは2022年のコミュニティ要望リストに基づくものです。 [https://phabricator.wikimedia.org/T301063]
* 信頼と安全ツールチームは事故報告システムに関する[[m:Special:MyLanguage/Private Incident Reporting System/Timeline and Updates|新しい計画]]を共有しました。このシステムにより、編集者が嫌がらせを受けたとき、より助けを求めやすくなります。
* [[m:Special:MyLanguage/Community Wishlist Survey 2021/Real Time Preview for Wikitext|ウィキテキスト編集時のリアルタイムプレビュー]]は2010年版ウィキテキスト[[mw:Special:MyLanguage/Editor|エディター]]のユーザー全員が使える機能として、2023年1月第二週からベータ版でリリースされる予定です。2010年版ウィキテキストエディターのツールバーから利用できるようになります。この機能は2021年のコミュニティ要望リストで4番目に多かった要望でした。
'''イベント'''
* 5月19日から21日にギリシャのアテネで開催される[[mw:Special:MyLanguage/Wikimedia Hackathon 2023/Participate|ウィキメディア・ハッカソン2023]]への参加登録の受付を行っています。1月14日まで奨学金の申請も受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2022/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2022-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2022年12月20日 (火) 00:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24258101 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-02 ==
<section begin="technews-2023-W02"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/02|翻訳]]されています。
'''最近の更新'''
* タグを使用して、最近の更新やウォッチリストにある編集を絞り込めるようになりました。タグを使用して、見たくない編集を除外することができるようになります。これまでは、タグを使用すると、そのタグが付いた編集のみ抽出できるようになっていました。 [https://phabricator.wikimedia.org/T174349]
* [[Special:WhatLinksHere|特別:リンク元]]は、特定のページにリンクしているすべてのページを表示します。この度、表示したページをアルファベット順に並び替える機能の[https://wlh.toolforge.org プロトタイプ]が作成されました。詳細は[[phab:T4306|Phabricatorのチケット]]で確認できます。
* ウォッチリストと投稿記録ページで[[mw:Special:MyLanguage/Extension:Thanks|感謝]]機能を使用できるようになります。 [https://phabricator.wikimedia.org/T51541]
* ウィキのページは、移動して新しい名前を付けることができます。ページを移動するときに、よくある理由をドロップダウンメニューから選択できるようになりました。これにより、毎回説明を書かなくてもよくなりました。 [https://phabricator.wikimedia.org/T325257]
* [[m:Special:MyLanguage/Matrix.org|Matrix]]はチャットツールです。<code>matrix:</code>を使って、ウィキページにMatrixへのリンクを作成することができるようになりました。 [https://phabricator.wikimedia.org/T326021]
* 多言語ウィキの最近の更新を見る際、翻訳をフィルタリングできます。従来は名前空間単位でしかフィルタリングできませんでしたが、翻訳されたサブページを非表示にすることもできるようになりました。 [https://phabricator.wikimedia.org/T233493]
'''今週の更新'''
* [[m:Special:MyLanguage/Real Time Preview for Wikitext|ウィキテキストのリアルタイム・プレビュー]]は、編集者がウィキテキストを編集しているときにページのプレビューを表示することができるツールです。2010年版ウィキテキストエディターを使用しているすべての利用者に対して有効になります。機能を有効にするとエディターのツールバーにプレビューボタンが追加されます。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] 一部のウィキではメインのデーターベース入れ替えのため、数分間読み取り専用になります。{{#time:n月j日|2023-01-10|ja}}07:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 対象のウィキ])と{{#time:n月j日|2023-01-12|ja}}07:00 UTC ([https://noc.wikimedia.org/conf/highlight.php?file=dblists/s6.dblist 対象のウィキ])に実行されます。
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-10|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-01-11|ja}}に、その他のウィキには{{#time:n月j日|2023-01-12|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W02"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月10日 (火) 01:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24342971 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-03 ==
<section begin="technews-2023-W03"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/03|翻訳]]されています。
'''問題点'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] ページの変更履歴にある「{{int:last}}」リンク内のURLは、<bdi lang="zxx" dir="ltr"><code><nowiki>diff=[revision ID]&oldid=[revision ID]</nowiki></code></bdi>から<bdi lang="zxx" dir="ltr"><code><nowiki>diff=prev&oldid=[revision ID]</nowiki></code></bdi>に変更されました。これはタグによって履歴の絞り込みを行った際、リンクが不適切な差分を生成する問題を解決するためです。この変更の影響で、ユーザスクリプトに不具合が生じる可能性があります。 [https://phabricator.wikimedia.org/T243569]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-01-18|ja}}に、その他のウィキには{{#time:n月j日|2023-01-19|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Talk pages project/Usability|トークページの外観の変更]]は、これまで<code>{{ns:1}}:</code>と<code>{{ns:3}}:</code>名前空間にしか適用されていませんでした。今後はその他のトークページ、たとえば<code>{{ns:5}}:</code>などにも反映の予定です。トークページ以外の名前空間には、<code>{{ns:4}}:</code>ページを含めて反映しません(例えば井戸端など)。[[Special:Preferences#mw-prefsection-editing-discussion|個人設定]]([[Special:Preferences#mw-prefsection-betafeatures|ベータ機能]])を変更してご利用ください。 [https://phabricator.wikimedia.org/T325417]
*ウィキソースを閲覧していて、どこかのPage: 名前空間で画像を拡大したり全体表示した場合、その倍率をシステムが記憶し、特定のIndex: 名前空間にリンクしたPage: 名前空間すべてで採用します。 [https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ProofreadPage/+/868841]
* 2022年版ベクター外装は英語版ウィキペディアのデスクトップ利用者の既定の外装として設定されます。 変更は1月18日15:00 (UTC) に実施されます。 [[:en:w:Wikipedia:Vector 2022|詳細はこちら]]
'''今後の予定'''
* 寄稿者にツールや改善点に関する技術的な提案と投票を呼びかける[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望アンケート]]の2023年版が、来週2023年1月23日18:00 (UTC) に開始する予定です。[[m:Community Wishlist Survey/Sandbox|CWSサンドボックス]]で提案の下書きを始めることができます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月17日 (火) 01:11 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24381020 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-04 ==
<section begin="technews-2023-W04"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/04|翻訳]]されています。
'''問題点'''
* 先週、約15分程度すべてのウィキですべてのログインユーザーとキャッシュされていないページへのアクセスが不可能になる不具合が発生しました。処理のタイミングに起因するものです。 [https://wikitech.wikimedia.org/wiki/Incidents/2023-01-17_MediaWiki]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-01-25|ja}}に、その他のウィキには{{#time:n月j日|2023-01-26|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* ベータ版機能の[[mw:Special:MyLanguage/Talk pages project|議論ツール]]を有効にすると、トークページの外観が変更されて議論のアクティビティに関する情報が表示されるようになります。 [https://www.mediawiki.org/wiki/Special:MyLanguage/Talk_pages_project/Usability#Status][https://phabricator.wikimedia.org/T317907]
* 利用者に技術的な提案やツールの改善点について呼びかける[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望アンケート]] (Community Wishlist Survey, CWS)の2023年版が1月23日月曜日の[https://zonestamp.toolforge.org/1674496814 18:00 (UTC)]に開始されます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/04|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W04"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月23日 (月) 23:46 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24418874 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-05 ==
<section begin="technews-2023-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/05|翻訳]]されています。
'''問題点'''
* 先週に15分程度、一部の利用者がログインまたはページの編集が出来ないことがありました。これは、セッションストレージの問題によるものでした。 [https://wikitech.wikimedia.org/wiki/Incidents/2023-01-24_sessionstore_quorum_issues]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-01-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-01|ja}}に、その他のウィキには{{#time:n月j日|2023-02-02|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 出典にローカライズされた番号付与方式を使用しているウィキでは、新しいCSSを追加する必要があります。これにより、すべての閲覧・編集モードで同じように出典番号を表示することができるようになります。もしあなたのウィキが自分たちでCSSの設定をしたい場合、[[mw:Special:MyLanguage/Parsoid/Parser Unification/Cite CSS|詳細とコピーするCSSの例]]を確認して、あなたのウィキを自分自身で変更を加えたいウィキのリストに追加してください。それ以外のウィキは、週初めの2月5日から、開発者が直接お手伝いをする予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年1月31日 (火) 00:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24455949 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-06 ==
<section begin="technews-2023-W06"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/06|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|ベクター2022年版外装]]では、全幅トグルを使用している非ログイン利用者はページを更新や新しいページを開いた後でも選択した設定でページを閲覧することが出来るようになります。 これは、ベクター2022年版が既定の外装であるウィキでのみ適用されます。 [https://phabricator.wikimedia.org/T321498]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-08|ja}}に、その他のウィキには{{#time:n月j日|2023-02-09|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* 以前は、メインデータベースの切り替えにより一部のウィキが数分間読み取り専用になる時間を案内していました。読み取り専用時間が最小限となったため、切り替えは今後案内されません。切り替えは引き続き、火曜日と木曜日の午前7時 (UTC) に行われます。 [https://phabricator.wikimedia.org/T292543#8568433]
* 全てのウィキで2022年版ベクター外装を使うログイン利用者には、[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements/Features/Page_tools|新しいサイドメニュー]]にページ関連の「リンク元」などリンクを表示するようになります。表示領域は既存のメニューの反対側です。すでにウィキペディアのチェコ語版、英語版、ベトナム語版に展開済みです。 [https://phabricator.wikimedia.org/T328692]
*[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望調査2023]]では新規の提案受付の〆切を[https://zonestamp.toolforge.org/1675706431 2023年2月6日月曜の18:00 UTC]とします。提案者の皆さんはそれまでに編集を終えて、その後の[[m:Special:MyLanguage/Community_Wishlist_Survey/Help_us|翻訳]]と審査の時間を確保してください。投票は2月10日に開始します。
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] デスクトップとモバイルのサイトでガジェットやユーザスクリプトの読み込み方が変わります。従来これらはデスクトップ版サイトのみで読み込まれるようになっていました。ウィキの管理者は、この改訂に先立って[[MediaWiki:Gadgets-definition|ガジェットの定義]]を確認してから、モバイル版で読み込むべきではないガジェットに<bdi lang="zxx" dir="ltr"><code>skins=…</code></bdi>を追加してください。[https://phabricator.wikimedia.org/T328610 詳細はこちら]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月6日 (月) 10:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24491749 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-07 ==
<section begin="technews-2023-W07"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/07|翻訳]]されています。
'''問題点'''
* 編集の巡回が有効になっているウィキでは現在、自動巡回権限を持つ指導役が[[mw:Special:MyLanguage/Growth/Communities/How to configure the mentors' list|指導役名簿]]を変更しても巡回済と正しくマークされません。今週中に修正する予定です。 [https://phabricator.wikimedia.org/T328444]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-15|ja}}に、その他のウィキには{{#time:n月j日|2023-02-16|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[mw:Special:MyLanguage/Help:DiscussionTools#Mobile|議論ツール]]の返信ツールとその他の部分をモバイル版サイトを使うすべての編集者に向けて展開します。[[mw:Special:MyLanguage/Talk_pages_project/Mobile#Status_Updates|決定の詳細はこちら]]。 [https://phabricator.wikimedia.org/T298060]
'''今後の更新'''
* 3月1日に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。実施は13:30 - 15:30([[:w:ja:世界協定時|UTC]])の時間帯を予定しています。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T328287][https://phabricator.wikimedia.org/T327920][https://wikitech.wikimedia.org/wiki/Deployments]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/07|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W07"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月14日 (火) 01:49 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24540832 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-08 ==
<section begin="technews-2023-W08"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/08|翻訳]]されています。
'''問題点'''
* 先週、クラウドサービスの計画メンテナンス中に予期せぬ問題が発生したため、クラウドサービスチームはデータの破損を防ぐために、クラウドサービスで運用されている全てのツールを2 - 3時間停止しなければなりませんでした。今後同様の問題が発生しないように作業が進行中です。 [https://phabricator.wikimedia.org/T329535]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-02-22|ja}}に、その他のウィキには{{#time:n月j日|2023-02-23|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
*[[m:Special:MyLanguage/Community Wishlist Survey 2023|コミュニティ要望調査2023年]]の投票期間が[https://zonestamp.toolforge.org/1677261621 2月24日18:00 ([[:w:ja:世界協定時|UTC]])]に終了します。調査結果は2月28日に発表されます。
'''今後の予定'''
* 3月1日に数分間、すべてのウィキが閲覧専用になり編集ができない状態となります。実施は13:30 - 15:30([[:w:ja:世界協定時|UTC]])の時間帯を予定しています。詳細は追って技術ニュースに掲載されるほか、近日中に個別のウィキへ告知を行う計画です。 [https://phabricator.wikimedia.org/T328287][https://phabricator.wikimedia.org/T327920][https://wikitech.wikimedia.org/wiki/Deployments]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月21日 (火) 01:58 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24570514 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-09 ==
<section begin="technews-2023-W09"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/09|翻訳]]されています。
'''問題点'''
* 先週末に一部の地域で、ページの読み込みに20分間、編集の保存に55分間、問題が発生していました。これらの問題は、定期メンテナンス作業中に発生した予期せぬ出来事によってキャッシュサーバーに問題が発生したことが原因でした。 [https://wikitech.wikimedia.org/wiki/Incidents/2023-02-22_wiki_outage][https://wikitech.wikimedia.org/wiki/Incidents/2023-02-22_read_only]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-02-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-01|ja}}に、その他のウィキには{{#time:n月j日|2023-03-02|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* 3月1日に数分間、すべてのウイキで閲覧専用となり編集が出来ない状態となります。時間は[https://zonestamp.toolforge.org/1677679222 14:00 UTC]を予定しています。 [https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/09|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W09"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年2月27日 (月) 23:47 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24634242 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-10 ==
<section begin="technews-2023-W10"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/10|翻訳]]されています。
'''最近の更新'''
* コミュニティ要望調査2023年は終了しました。コミュニティ技術チームは[[m:Special:MyLanguage/Community Wishlist Survey 2023/Results|調査結果を公表]]しており、2023年4月に次の展開をお知らせする予定です。
* 複数の書記体系を処理するために[[mw:Special:MyLanguage/Writing_systems|LanguageConverter]]を使用しているウィキにおいて、ウィキテキストで独自の変換規則を使用している記事(主に中国版ウィキペディア)では、特に2022年版ベクタースキンにて、目次でこれらの規則が一貫して適用されない場合がありました。現在は修正済です。 [https://phabricator.wikimedia.org/T306862]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-08|ja}}に、その他のウィキには{{#time:n月j日|2023-03-09|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[Special:Preferences|個人設定画面]]に、検索システムが追加されました。これにより、さまざまな設定をより簡単に見つけることができます。近日中には携帯機器でも動作するようになる予定です。 [https://phabricator.wikimedia.org/T313804]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月6日 (月) 23:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24676916 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-11 ==
<section begin="technews-2023-W11"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/11|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.40/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-15|ja}}に、その他のウィキには{{#time:n月j日|2023-03-16|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-cbk_zamwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cdowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cebwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-chwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-chrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-chywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ckbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-csbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cuwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-cywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-itwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304542][https://phabricator.wikimedia.org/T304550]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月13日 (月) 23:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24700189 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-12 ==
<section begin="technews-2023-W12"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/12|翻訳]]されています。
'''問題点'''
* 先週、一部の利用者が画像のサムネイルを読み込む際に問題が発生していました。これは誤ってキャッシュされた画像が原因でした。 [https://phabricator.wikimedia.org/T331820]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-22|ja}}に、その他のウィキには{{#time:n月j日|2023-03-23|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:Contributions}}]]で利用者の[[{{#special:CentralAuth}}]]ページが表示されるようになります — このリンクを追加していたユーザースクリプトは競合してしまう可能性があります。この機能リクエストは[[:m:Community Wishlist Survey 2023/Admins and patrollers/Add link to CentralAuth on Special:Contributions|コミュニティ要望調査2023年の結果、17位に選ばれました]]。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:AbuseFilter}}]]の編集画面はサイズ変更が可能になり、既定で大きくなります。この機能リクエストは[[:m:Community Wishlist Survey 2023/Anti-harassment/Make the AbuseFilter edit window resizable and larger by default|コミュニティ要望調査2023年の結果、80位に選ばれました]]。
* 管理者が利用者のブロックを解除する際、解除対象となるアカウントの利用者ページを管理者自身のウォッチリストに追加できるようになります。この機能は[[{{#special:Unblock}}]]とAPIの双方で利用できます。 [https://phabricator.wikimedia.org/T257662]
'''ミーティング'''
* ウィキペディアモバイルアプリチームとの次のミーティングに参加できます。ミーティングでは現在の機能と今後の計画について話し合います。ミーティングは[https://zonestamp.toolforge.org/1679677204 3月24日17:00 (UTC)] に行われます。[[mw:Special:MyLanguage/Wikimedia Apps/Office Hours|詳細と参加方法]]をご覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月21日 (火) 01:26 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24732558 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-13 ==
<section begin="technews-2023-W13"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/13|翻訳]]されています。
'''最近の更新'''
* [[:mw:Special:MyLanguage/Extension:AbuseFilter|不正利用フィルター]]の条件制限が1000から2000に引き上がりました。 [https://phabricator.wikimedia.org/T309609]
* [[:m:Special:MyLanguage/Global AbuseFilter#Locally disabled actions|グローバル不正利用フィルターの一部で使用されていた対処操作]]がローカルプロジェクトにて適用されなくなりました。 [https://phabricator.wikimedia.org/T332521]
* デスクトップ版を使用している利用者は{{int:toolbox}}メニューの{{int:discussiontools-newtopicssubscription-button-subscribe-label}}リンクをクリックすると、トークページを購読できるようになりました。その購読中は、新しい話題が始まると[[mw:Special:MyLanguage/Notifications|通知]]が届きます。これはページをウォッチリストに入れたり単一の話題の購読とは別の機能です。 [https://phabricator.wikimedia.org/T263821]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-03-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-03-29|ja}}に、その他のウィキには{{#time:n月j日|2023-03-30|ja}}に展開されます([[mw:MediaWiki 1.40/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ウィクショナリーとウィキペディアで[[mw:Special:MyLanguage/VisualEditor/Diffs|視覚的な差分]]を、すべての[[m:Special:MyLanguage/Help:Page history|履歴ページ]]で選択できるようになります。 [https://phabricator.wikimedia.org/T314588]
* [[File:Octicons-tools.svg|15px|link=|alt=|高度]] 従来の[[mw:Mobile Content Service|モバイルコンテンツサービス]]が2023年7月に廃止されます。それまでに開発者はサービス継続のためにParsoidまたは別のAPIに切り替えることをお勧めします。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/4MVQQTONJT7FJAXNVOFV3WWVVMCHRINE/]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年3月28日 (火) 01:14 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24780854 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-14 ==
<section begin="technews-2023-W14"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/14|翻訳]]されています。
'''最近の更新'''
* [[mw:Special:MyLanguage/Extension:Babel|Babel]]拡張機能が使用しているカテゴリ自動作成システムには重要な変更と修正が加えられました。変更点の一つとしては、作成時に自動生成されるカテゴリ説明文にテンプレートを追加し、新しいカテゴリを分類できるようになりました。 [https://phabricator.wikimedia.org/T211665][https://phabricator.wikimedia.org/T64714][https://phabricator.wikimedia.org/T170654][https://phabricator.wikimedia.org/T184941][https://phabricator.wikimedia.org/T33074]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-05|ja}}に、その他のウィキには{{#time:n月j日|2023-04-06|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 今週から[[w:ja:ウェブブラウザ|ブラウザ]]が古いとウィキメディアのウィキで[[w:ja:JavaScript|JavaScript]]を使えなくなる場合があります。これは主にInternet Explorer 11を使用している利用者に影響します。もし古いブラウザを使用している場合は、新しいバージョンへアップグレードすることをお勧めします。 [https://phabricator.wikimedia.org/T178356]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 非推奨の<bdi lang="zxx" dir="ltr"><code>jquery.hoverIntent</code></bdi>モジュールは削除されました。このモジュールはガジェットやユーザースクリプトで使用して、JavaScriptのhoverイベントへの応答を人為的に遅らせることができました。ガジェットやユーザースクリプトは、代わりにjQueryの<bdi lang="zxx" dir="ltr"><code>hover()</code></bdi>または<bdi lang="zxx" dir="ltr"><code>on()</code></bdi>を使用する必要があります。[[mw:Special:MyLanguage/ResourceLoader/Migration_guide_(users)#jquery.hoverIntent|移行ガイド]]に例が掲載されています。 [https://phabricator.wikimedia.org/T311194]
* [[{{#special:SpecialPages}}]]にある一部のリンクを整理する予定です。すべての利用者に関係するリンクと、各自の利用者アカウントに関連のあるリンクが、より明確に判別できるようになります。 [https://phabricator.wikimedia.org/T333242]
* 新しい<bdi lang="zxx" dir="ltr"><code><nowiki>__ARCHIVEDTALK__</nowiki></code></bdi>マジックワードで、過去ログ化された議論ページで[[mw:Special:MyLanguage/Talk pages project/Replying|返信ボタン]]を隠すことができるようになる予定です。また、新規導入予定の<bdi lang="zxx" dir="ltr"><code>.mw-archivedtalk</code></bdi>というCSSクラスを用いると、ページの個々の節で返信ボタンを表示しなくなります。 [https://phabricator.wikimedia.org/T249293][https://phabricator.wikimedia.org/T295553][https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DiscussionTools/+/738221]
'''今後の予定'''
* ページ中にグラフなどデータを可視化するVegaソフトウェアを最新バージョンにアップグレードする予定です。かなり古い1.5バージョンの構文をまだ使用しているグラフは正常に動作しなくなる恐れがあります。ほとんどの既存用例はすでに洗い出して更新済みですが、残りの確認作業と、ローカルの解説文書の更新を手伝ってください。[[phab:T260542|これら対象となるグラフの発見と修復の例はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月3日 (月) 23:40 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24820268 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-15 ==
<section begin="technews-2023-W15"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/15|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] ビジュアルエディターで、ギャラリーダイアログを開かずにギャラリー内の画像のキャプションを編集できるようになりました。この機能リクエストは[[:m:Community Wishlist Survey 2023/Editing/Editable gallery captions in Visual Editor|コミュニティ要望調査2023年の結果、61位に選ばれました]]。 [https://phabricator.wikimedia.org/T190224]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] 他の利用者があなたの利用者ページを編集したときに、通知を受け取ることができるようになりました。個人設定で"{{int:Echo-category-title-edit-user-page}}"設定をご覧ください。この機能リクエストは[[:m:Community Wishlist Survey 2023/Anti-harassment/Notifications for user page edits|コミュニティ要望調査2023年の結果、3位に選ばれました]]。 [https://phabricator.wikimedia.org/T3876]
'''問題点'''
* すべてのタイプの中央管理通知バナーにおいて、ログインユーザーが特定のタイプのバナーを[[Special:Preferences#mw-prefsection-centralnotice-banners|無効]]にしても、表示されてしまう問題がありました。現在は修正済みです。 [https://phabricator.wikimedia.org/T331671]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-12|ja}}に、その他のウィキには{{#time:n月j日|2023-04-13|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-arywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-dawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-dinwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-dsbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-eewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-elwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-emlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-eowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-etwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-euwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-extwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tumwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ffwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fiu_vrowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fjwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-fowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-frpwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-frrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-furwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gcrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-glwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-glkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gomwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gotwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-guwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-gvwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T304551][https://phabricator.wikimedia.org/T308133]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月10日 (月) 20:05 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24851886 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-16 ==
<section begin="technews-2023-W16"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/16|翻訳]]されています。
'''最近の更新'''
* 新しい機能である"{{int:Kartographer-sidebar-nearbybutton}}"ボタンを使って、[[mw:Special:MyLanguage/Help:Extension:Kartographer#Show_nearby_articles|Kartographer地図の上で近くの場所の記事]]を見ることができるようになりました。10月から6つのウィキでこの機能のテストが行われています。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/Geoinformation/Nearby_articles#Implementation][https://phabricator.wikimedia.org/T334079]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[m:Special:GlobalWatchlist|特別:グローバルウォッチリスト]]ページの各項目に"{{int:globalwatchlist-markpageseen}}"リンクが追加されました。この機能リクエストは[[m:Community Wishlist Survey 2023/Notifications, Watchlists and Talk Pages/Button to mark a single change as read in the global watch list|コミュニティ要望調査2023年の結果、161位に選ばれました]]。 [https://phabricator.wikimedia.org/T334246]
'''問題点'''
* ウィキメディア・コモンズでは、新しいバージョンの画像がアップロードされた後に、一部のサムネイルが正しく置き換わらないことがありました。今週末には修正される予定です。 [https://phabricator.wikimedia.org/T331138][https://phabricator.wikimedia.org/T333042]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 直近数週間、一部の外部ツールでOAuthログインに一貫性のない問題が発生していました。現在は修正済みです。 [https://phabricator.wikimedia.org/T332650]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-19|ja}}に、その他のウィキには{{#time:n月j日|2023-04-20|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/16|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W16"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月18日 (火) 01:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24881071 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-17 ==
<section begin="technews-2023-W17"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/17|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:Contributions}}]](利用者の投稿記録)などのページの日付選択メニューにおいて、現在と将来の10年ではなく、現在と過去の10年の年範囲が表示されるようになりました。この機能リクエストは[[m:Community Wishlist Survey 2023/Miscellaneous/Change year range shown in date selection popup|2023年コミュニティ要望調査の結果、145位に選ばれました]]。 [https://phabricator.wikimedia.org/T334316]
'''問題点'''
* [[mw:Special:MyLanguage/Extension:Graph|グラフ拡張機能]]におけるセキュリティ上の問題のため、すべてのウィキメディアプロジェクトでグラフが無効化されました。ウィキメディア財団チームは、この脆弱性に対応するための計画を進めています。 [https://phabricator.wikimedia.org/T334940]
* 数日間ほど、モバイル版ウィキで一部の編集を保存できないことがありました。現在は修正済です。 [https://phabricator.wikimedia.org/T334797][https://phabricator.wikimedia.org/T334799][https://phabricator.wikimedia.org/T334794]
'''今週の更新'''
* 4月26日に数分間、すべてのウィキで閲覧専用となり編集が出来ない状態となります。時間は[https://zonestamp.toolforge.org/1682517653 14:00 UTC]を予定しています。 [https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-04-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-04-26|ja}}に、その他のウィキには{{#time:n月j日|2023-04-27|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 編集チームでは、[[mw:Special:MyLanguage/Talk pages project/Usability|トークページプロジェクトのユーザビリティ分析]](使い勝手に関する分析)のために、A/Bテストを予定しています。[[mw:Special:MyLanguage/Talk pages project/Usability/Analysis|予定されている測定方法は公開されています]]。あなたのウィキも[[phab:T332946|参加の招待を受けるかもしれません]]。測定計画に対する改善点があれば[[mw:Talk:Talk pages project/Usability|議論ページ]]で提案してください。
* [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2023-2024|ウィキメディア財団の年次計画2023-2024年度の草案は、5月19日までコメントと意見を募集しています]]。最終計画は2023年7月にメタウィキで公開される予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/17|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W17"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年4月24日 (月) 22:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24933592 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-18 ==
<section begin="technews-2023-W18"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/18|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] コンテンツ帰属ツールである[[mw:Special:MyLanguage/Who Wrote That?|Who Wrote That?]]、[[xtools:authorship|XTools 著者統計]]および[[xtools:blame|XTools Blame]]はフランス語版とイタリア語版ウィキペディアをサポートするようになりました。今後、さらに多くの言語を追加する予定です。これは[[m:Community Wishlist Survey 2023/Reading/Extend "Who Wrote That?" tool to more wikis|コミュニティ要望調査2023年で7位の要望]]の一部です。 [https://phabricator.wikimedia.org/T243711][https://phabricator.wikimedia.org/T270490][https://phabricator.wikimedia.org/T334891]
* [[:commons:Special:MyLanguage/Commons:Video2commons|Video2commons]]ツールのアップデートが行われました。これにより、YouTubeからのアップロードに関連するいくつかのバグが修正されました。 [https://github.com/toolforge/video2commons/pull/162/commits]
* モバイルウェブ版の<!-- 個人設定 -->[[{{#special:Preferences}}]] ページはデザインを変更しました。これにより異なるカテゴリごとや設定を小さな画面でも見やすくなりました。またモバイルウェブ版はサイドバーにリンクを設け、個人設定ページを直接、開くことができるようにしました。 [https://www.mediawiki.org/wiki/Moderator_Tools/Content_moderation_on_mobile_web/Preferences]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-03|ja}}に、その他のウィキには{{#time:n月j日|2023-05-04|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/18|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W18"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月2日 (火) 01:45 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24966974 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-19 ==
<section begin="technews-2023-W19"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/19|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] 先週、コミュニティ技術チームは、2022年コミュニティ要望調査で1位となった[[m:Special:MyLanguage/Community Wishlist Survey 2022/Better diff handling of paragraph splits|差分表示改善]]のための第一回アップデートをリリースしました。[[phab:T324759|この更新版]]は差分をインラインで表示し、説明とツールチップを追加し、青色と黄色の色分け表示に慣れていないユーザーにも編集内容が分かりやくすなりました。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] MediaViewer経由で画像を表示した際、ブラウザバックを行うと直前に表示していたWikiページに戻るようになりました。この機能は、[[m:Community Wishlist Survey 2023/Reading/Return to the article when closing the MediaViewer|2023年コミュニティ要望調査の投票で65位]]でした。 [https://phabricator.wikimedia.org/T236591]
* [[mw:Special:MyLanguage/Extension:SyntaxHighlight|SyntaxHighlight]] 拡張機能は、言語の選択肢として<bdi lang="en" dir="ltr"><code>wikitext</code></bdi>(ウィキ構文)をサポートしました。旧来ウィキ構文の強調表示の代用として使われていた <bdi lang="en" dir="ltr"><code>html5</code></bdi>、<bdi lang="en" dir="ltr"><code>moin</code></bdi>、<bdi lang="en" dir="ltr"><code>html+handlebars</code></bdi> を置き換えることができます。 [https://phabricator.wikimedia.org/T29828]
* [[mw:Special:MyLanguage/Manual:Creating pages with preloaded text|新規ページまたは節にテキストをプリロードする]]とき、翻訳済みの MediaWiki インタフェース メッセージを読み込むことが可能になりました。[https://cs.wikipedia.org/wiki/User_talk:Martin_Urbanec_(WMF)?action=edit§ion=new&preload=MediaWiki:July 一例として] {{int:project-localized-name-cswiki/ja}} では <bdi lang="zxx" dir="ltr"><code><nowiki>preload=MediaWiki:July</nowiki></code></bdi> を使っています。 [https://phabricator.wikimedia.org/T330337]
'''問題点'''
* Graph Extensionの更新: 財団の開発者は、視覚化ソフトウェアをVega5にアップグレードしました。コミュニティが使用する既存のVega2準拠のグラフとは互換性ありません。ローカルのグラフやテンプレート、luaモジュールを更新する必要があります。[https://vega.github.io/vega/docs/porting-guide/ Vegaの移行ガイド]ではVega2からの移行に関する最も包括的な詳細を説明しています。[https://www.mediawiki.org/w/index.php?title=Template:Graph:PageViews&action=history 移行の例]も参考にしてください。現在、Vega5 はテスト環境を提供する目的から、mediawiki.orgで既に有効化されています。 [https://phabricator.wikimedia.org/T334940#8813922]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-10|ja}}に、その他のウィキには{{#time:n月j日|2023-05-11|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] これまで、すべての新しいOAuthアプリはすべて手動で審査されていました。今週から、利用者情報の認証のみ、または基本的な機能のみにアクセスするアプリは審査が不要になります。 [https://phabricator.wikimedia.org/T67750]
'''今後の予定'''
* 来年から、MediaWikiはログインせずに編集を行うユーザーを識別するためにIPアドレスを使用するのをやめ、一意の仮ユーザー名を自動的に割り当てるようになります。詳細は[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/Updates|IPによる編集について: プライバシー保護と荒らし行為の軽減/更新版]]をお読みください。[[m:Special:MyLanguage/IP Editing: Privacy Enhancement and Abuse Mitigation/Updates#What will temporary usernames look like?|仮ユーザー名のフォーマット]]に関する[[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation#What should it look like?|議論への参加]]もお待ちしています。 [https://phabricator.wikimedia.org/T332805]
* 2022年版ベクター外装が既定のウィキペディア10言語版で[[:w:ja:A/Bテスト|A/Bテスト]]を実施します。ログインしているデスクトップ版利用者の半数に対し、インターフェースの構成要素の分かれ目を分かりやすく表示します。[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Updates/2023-05 Zebra9 A/B test|詳細はこちら]]をご覧ください。 [https://phabricator.wikimedia.org/T333180][https://phabricator.wikimedia.org/T335972]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <code>jquery.tipsy</code>は MediaWiki コアから除去される予定です。 いくつかのユーザスクリプトに影響が出る可能性があります。<code>.tipsy(</code> と言う記述がある行はコメントアウトする必要があります。スクリプトを従来と同じように動作させる場合、<code>OO.ui.PopupWidget</code> を使ってください。[[:mw:Help:Locating broken scripts|壊れたスクリプトの探し方]]については[[phab:T336019|詳細]]を参照してください。 [https://phabricator.wikimedia.org/T336019]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月9日 (火) 00:36 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=24998636 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-20 ==
<section begin="technews-2023-W20"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/20|翻訳]]されています。
'''問題点'''
* [[:w:ja:ISBN|ISBN]]に基づいて引用を自動生成する機能は現在不具合があり動作しません。これは、[[mw:Special:MyLanguage/Help:VisualEditor/User_guide/Citations-Full#Automatic|VisualEditorの自動タブ]]およびガジェットやユーザースクリプトでcitoid APIを使用する場合に影響があります。現在、機能を復旧するために作業を行っています。 [https://phabricator.wikimedia.org/T336298]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-17|ja}}に、その他のウィキには{{#time:n月j日|2023-05-18|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-gorwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hakwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hawwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hifwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hsbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-htwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-igwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ilowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-inhwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-iuwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-jamwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-jvwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308134]
'''今後の予定'''
* 最近ウィキメディア財団では新しいツールの開発に取り組むチームが設立されました。現在チームは[[m:Wikimedia_Foundation_Annual_Plan/2023-2024/Draft/Future_Audiences#FA2.2_Conversational_AI|ChatGPTによって生成された情報をウィキメディアプロジェクトへ適切に帰属させるためのChatGPTプラグインのプロトタイプ]]を構築しています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ガジェットとユーザースクリプトの開発者は<bdi lang="zxx" dir="ltr"><code>jquery.cookie</code></bdi>を<bdi lang="zxx" dir="ltr"><code>mediawiki.cookie</code></bdi>に置き換える必要があります。<bdi lang="zxx" dir="ltr"><code>jquery.cookie</code></bdi>ライブラリは1ヶ月以内に削除されます。削除時点で残っている使用箇所は開発スタッフがスクリプトを使用して置き換えます。 [https://phabricator.wikimedia.org/T336018]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月15日 (月) 21:45 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25011501 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-21 ==
<section begin="technews-2023-W21"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/21|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] ページをウォッチリストに入れている人が"最近の編集"に訪問したものとして計上される期間が30日となりました。以前は180日でした。これは[[m:Community Wishlist Survey 2023/Notifications, Watchlists and Talk Pages/Change information about the number of watchers on a page|コミュニティ要望調査で提案]]されました。 [https://phabricator.wikimedia.org/T336250]
'''今週の更新'''
* ウィキペディアでは、[[mw:special:MyLanguage/Growth/Positive reinforcement#Impact|改良版の影響力モジュール]]が利用できるようになる予定です。影響力モジュールは、新規参加者が[[mw:Special:MyLanguage/Growth/Feature summary#Newcomer homepage|個人ホームページ]]で利用できる機能です。編集回数や、編集したページの閲覧者数、受け取った感謝の数などが表示されます。また、Special:Impactにアクセスすることによっても見ることができます。 [https://phabricator.wikimedia.org/T336203]
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-23|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-24|ja}}に、その他のウィキには{{#time:n月j日|2023-05-25|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W21"/>
2023年5月22日 (月) 16:55 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25028325 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-22 ==
<section begin="technews-2023-W22"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/22|翻訳]]されています。
'''最近の更新'''
* ZoteroのISBN検索機能により、再びISBNから引用を自動生成することができるようになりました。現在のデータソースは、アメリカ議会図書館、フランス国立図書館、K10plus ISBN(ドイツ語のリポジトリ)です。さらなるデータソース検索機能を[[mw:Citoid/Creating Zotero translators|Zoteroに提案]]することができます。 [[mw:Special:MyLanguage/Help:VisualEditor/User_guide/Citations-Full#Automatic|ビジュアルエディターの自動タブ]]のISBNラベルは、今週後半に再び表示されます。 [https://phabricator.wikimedia.org/T336298#8859917]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[{{#special:EditWatchlist}}]]で、それぞれの名前空間内にある全ページを選択するための"{{int:watchlistedit-normal-check-all}}"ボタンが追加されました。この機能リクエストは、[[m:Community Wishlist Survey 2023/Notifications, Watchlists and Talk Pages/Watchlist edit - "check all" checkbox|2023年コミュニティ要望調査の投票で161位でした]]。 [https://phabricator.wikimedia.org/T334252]
'''問題点'''
* 今月上旬の数日間、ツールメニューの"言語間リンクを追加"機能が正常に動作しないことがありました。現在は修正済です。 [https://phabricator.wikimedia.org/T337081]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-05-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-05-31|ja}}に、その他のウィキには{{#time:n月j日|2023-06-01|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* VisualEditorは今週、[https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/dblists/small.dblist 小規模]および[https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/dblists/medium.dblist 中規模]のウィキで新しいバックエンドに切り替えられる予定です。これはParsoidをMediaWikiのコアに移行する取組みの一部です。この変更による利用者への影響は軽微なものと思われますが、VisualEditorを使用した際に読み込みが遅いなどの不具合を感じた場合は、右のリンク先のphabricatorチケットでご報告ください。 [https://phabricator.wikimedia.org/T320529]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年5月29日 (月) 22:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25079963 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-23 ==
<section begin="technews-2023-W23"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/23|翻訳]]されています。
'''最近の更新'''
* [[:mw:Special:MyLanguage/Help:Extension:RealMe|RealMe]]拡張機能を使用して、利用者ページ上にあるURLをMastodonや同様のソフトウェア向けに検証済みとしてマークすることができます。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] ビジュアルエディターを使用している際に、脚注リストから引用と脚注の編集を開始できるようになりました。この機能リクエストは、[[m:Community Wishlist Survey 2023/Citations/Allow citations to be edited in the references section with VisualEditor|2023年コミュニティ要望調査の投票で2位でした]]。 [https://phabricator.wikimedia.org/T54750]
* 以前は、URLに絞り込みフィルターを含む他人の"最近の更新"へのリンクをクリックすると、意図せず"{{int:Rcfilters-group-results-by-page}}"の設定が変更されることがありました。現在は修正済です。 [https://phabricator.wikimedia.org/T202916#8874081]
'''問題点'''
* 先週の数日間、データベース複製の問題により、一部のツールやボットが古い情報を返し、修正中は完全にダウンしていた可能性があります。現在、問題は修正済です。 [https://phabricator.wikimedia.org/T337446]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.12|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-06-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-06-07|ja}}に、その他のウィキには{{#time:n月j日|2023-06-08|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* ボットは、[[mw:Special:MyLanguage/Extension:SpamBlacklist|スパムブラックリスト]]に一致するURLに起因して編集を妨げられることがなくなります。 [https://phabricator.wikimedia.org/T313107]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月5日 (月) 22:52 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25114640 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-24 ==
<section begin="technews-2023-W24"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/24|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] コンテンツ帰属ツールである[[mw:Special:MyLanguage/Who Wrote That?|Who Wrote That?]]、[[xtools:authorship|XTools 著者統計]]および[[xtools:blame|XTools Blame]]はオランダ語版、ドイツ語版、ハンガリー語版、インドネシア語版、日本語版、ポーランド語版およびポルトガル語版ウィキペディアをサポートするようになりました。これは[[m:Community Wishlist Survey 2023/Reading/Extend "Who Wrote That?" tool to more wikis|コミュニティ要望調査2023年で7位の要望]]の一部です。 [https://phabricator.wikimedia.org/T334891]
* [[mw:Special:MyLanguage/Structured Data Across Wikimedia/Search Improvements#Search Preview panel|検索プレビューパネル]]は4つのウィキペディア(カタロニア語版、オランダ語版、ハンガリー語版およびノルウェー語版)に展開されました。パネルでは、記事に関連する画像(存在する場合)、記事の導入節、関連画像(コモンズのMediaSearchから)、そして記事に関連する姉妹プロジェクトの記事が表示されます。 [https://phabricator.wikimedia.org/T306341]
* [[:mw:Special:MyLanguage/Help:Extension:RealMe#Verifying_a_link_on_non-user_pages|RealMe]]拡張機能により、管理者が任意のページにおいて、Mastodonや同様のソフトウェア向けのURLを検証することができるようになりました。 [https://phabricator.wikimedia.org/T324937]
* 標準で適用されるプロジェクトのライセンスがCC BY-SA 4.0に[https://lists.wikimedia.org/hyperkitty/list/wikimediaannounce-l@lists.wikimedia.org/thread/7G6XPWZPQFLZ2JANN3ZX6RT4DVUI3HZQ/ アップグレードされました]。これに伴い、ソフトウェアのインターフェースメッセージも更新されています。従来のCC BY-SA 3.0に関する方針や関連文書の取り扱いについては各コミュニティにお任せします。 [https://phabricator.wikimedia.org/T319064]
'''問題点'''
* 先月3日間、VisualEditorやDiscussionToolsで編集されたいくつかのウィンペディアのページで、編集中に意図しない<code><nowiki>__TOC__</nowiki></code>(またはそのローカライズされた形)が追加されました。まだ修正が必要と思われる、[[mw:Parsoid/Deployments/T336101_followup|影響を受けたページをウィキごとに分類した一覧]]があります。 [https://phabricator.wikimedia.org/T336101]
* 現在、VisualEditorの"{{int:Visualeditor-dialog-meta-categories-defaultsort-label}}"機能は壊れています。既存の<code><nowiki>{{DEFAULTSORT:...}}</nowiki></code>は、VisualEditorで欠落したテンプレートとして誤って表示されます。開発者は、この問題を修正する方法を模索しています。その間に、ページの既定のソートキーを編集したい方は、ソース編集に切り替えることをお勧めします。 [https://phabricator.wikimedia.org/T337398]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 先週、削除フォームの更新が行われたため、それにより一部のガジェットやユーザースクリプトが壊れた可能性があります。理由欄を操作する(空欄にする)必要がある場合は、<bdi lang="zxx" dir="ltr"><code>#wpReason</code></bdi>を<bdi lang="zxx" dir="ltr" style="white-space: nowrap;"><code>#wpReason > input</code></bdi>に置き換えてください。[https://cs.wikipedia.org/w/index.php?title=MediaWiki%3AGadget-CleanDeleteReasons.js&diff=22859956&oldid=12794189 修正例]をご覧ください。 [https://phabricator.wikimedia.org/T337809]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-06-13|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-06-14|ja}}に、その他のウィキには{{#time:n月j日|2023-06-15|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* <span lang="en" dir="ltr" class="mw-content-ltr">VisualEditor will be switched to a new backend on English Wikipedia on Monday, and all other [https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/dblists/large.dblist large] wikis on Thursday. The change should have no noticeable effect on users, but if you experience any slow loading or other strangeness when using VisualEditor, please report it on the phabricator ticket linked here.</span> [https://phabricator.wikimedia.org/T320529]
'''今後の予定'''
* 6月5日から7月17日まで、財団のセキュリティチームは、ボランティアによって開発されたガジェットやスクリプトにおけるサードパーティのリソースの使用を規制するための方針案について、投稿者との協議を実施しています。フィードバックや提案をメタウィキの[[m:Special:MyLanguage/Third-party resources policy|サードパーティのリソースの方針]]で受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月12日 (月) 14:52 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25133779 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-25 ==
<section begin="technews-2023-W25"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/25|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] WikimediaDebugでフレームグラフが利用可能になりました。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/JXNQD3EHG5V5QW5UXFDPSHQG4MJ3FWJQ/][https://techblog.wikimedia.org/2023/06/08/flame-graphs-arrive-in-wikimediadebug/]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
* ビジュアルエディターにツールバー検索ポップアップが追加されました。<code>\</code>と入力するか<code>ctrl + shift + p</code>を押すことで起動します。これによりエディター内で利用可能なツールのほとんどに素早くアクセスできるようになりました。 [https://commons.wikimedia.org/wiki/File:Visual_editor_toolbar_search_feature.png][https://phabricator.wikimedia.org/T66905]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月19日 (月) 20:09 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25159510 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-26 ==
<section begin="technews-2023-W26"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/26|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 操作APIモジュールと特別:外部リンク検索は、すべての <bdi lang="zxx" dir="ltr"><code>prop=extlinks</code></bdi> の応答でベアドメインの末尾に <bdi lang="zxx" dir="ltr"><code>/</code></bdi> を追加するようになりました。これは、<code>externallinks</code> データベーステーブルの重複を解消するための作業の一部です。 [https://phabricator.wikimedia.org/T337994]
'''問題点'''
* 先週、23時間にわたってコモンズとウィキデータで検索ができませんでした。 [https://phabricator.wikimedia.org/T339810][https://wikitech.wikimedia.org/wiki/Incidents/2023-06-18_search_broken_on_wikidata_and_commons]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.15|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-06-27|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-06-28|ja}}に、その他のウィキには{{#time:n月j日|2023-06-29|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] Minerva 外装は CSS クラス <bdi lang="zxx" dir="ltr"><code>.mbox-text</code></bdi> で従来より多くのスタイルを事前定義するようになりました。これにより table 要素の代わりに div 要素を使うテンプレートもサポートするようになります。新しいスタイルがウィキで使用されている他のテンプレートに影響が出ないよう注意してください。 [https://gerrit.wikimedia.org/r/c/mediawiki/skins/MinervaNeue/+/930901/][https://phabricator.wikimedia.org/T339040]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 従来はデスクトップのみだったガジェットがデスクトップとモバイルの双方で標準で読み込まれるようになりました。<bdi lang="zxx" dir="ltr"><code>|targets=</code></bdi> パラメータを使用して読み込み対象を変更するのは非推奨であり、使用すべきではありません。ユーザーがモバイルウェブサイトを使用するかデスクトップウェブサイトを使用するかに関わらず、ガジェットをモバイルで動作させるか無効化するかは外装(<bdi lang="en" dir="ltr">MediaWiki:Gadgets-definition</bdi> の <bdi lang="zxx" dir="ltr"><code>|skins=</code></bdi> パラメータを使用します)で行うべきです。人気のあるガジェットがモバイル版でエラーを起こす場合は開発者が一時的な措置として Minerva 外装での動作を無効化する予定です。 [https://phabricator.wikimedia.org/T127268]
* すべての名前空間は標準で同じ[[m:Special:MyLanguage/Help:Keyboard_shortcuts|アクセスキー]]を持つようになりました。従来はカスタム或いは拡張機能で定義された名前空間は手動で設定する必要がありました。 [https://phabricator.wikimedia.org/T22126]
* Flagged Revisions の査読フォームは標準化された[[mw:Special:MyLanguage/Codex|ユーザーインターフェースコンポーネント]]を使用するようになりました。 [https://phabricator.wikimedia.org/T191156]
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 数週間後、HTML構文解析出力におけるメディアの構造が[[:wikitech:Deployments/Train#Thursday|グループ2のウィキ]]で変更されます。この変更により、コンテンツのアクセシビリティが向上します。それに伴いサイトのCSS、ユーザースクリプト、ガジェットの更新が必要になる場合があります。[[mw:Special:MyLanguage/Parsoid/Parser_Unification/Media_structure/FAQ|確認するコード、コードを更新する方法、および関連問題を報告する場所についての詳細]]があります。 [https://phabricator.wikimedia.org/T314318]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年6月26日 (月) 16:19 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25202311 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-27 ==
<section begin="technews-2023-W27"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/27|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] [[m:Community Wishlist Survey 2022/Multimedia and Commons/Audio links that play on click|クリックすると音声が再生されるリンク]]に対する要望提案を展開する一環として、[https://noc.wikimedia.org/conf/highlight.php?file=dblists/small.dblist 小規模ウィキ]では[[mw:Extension:Phonos|Phonos]]拡張機能によって実装される[[mw:Special:MyLanguage/Help:Extension:Phonos#Inline audio player mode|インライン音声プレーヤー]]を使用できるようになります。 [https://phabricator.wikimedia.org/T336763]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 今週から、全てのガジェットがモバイルサイトとデスクトップサイトに自動的に読み込まれるようになりました。ウィキのガジェットに何らかの不具合が生じる場合は、ガジェット定義ファイルの[[mw:Special:MyLanguage/Extension:Gadgets#Options|ガジェットオプション]]を調整してください。 [https://phabricator.wikimedia.org/T328610]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-05|ja}}に、その他のウィキには{{#time:n月j日|2023-07-06|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月3日 (月) 22:51 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25231546 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-28 ==
<section begin="technews-2023-W28"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/28|翻訳]]されています。
'''最近の更新'''
* [[:mw:Special:MyLanguage/Structured Data Across Wikimedia/Section-level Image Suggestions|節レベルの画像推薦機能]]は7のウィキペディア(ポルトガル語版、ロシア語版、インドネシア語版、カタルーニャ語版、ハンガリー語版、フィンランド語版およびノルウェー語版)に展開されました。この機能は、寄稿者のウォッチリストに登録されている記事の各節に相応しい画像を推薦します。
* (オプトアウトした)英語版と日本語版ウィキペディアを除く全てのウィキメディアプロジェクトにおいて、[[:m:Special:MyLanguage/Global AbuseFilter|グローバル不正使用フィルター]]が有効になりました。この変更は、[[:m:Requests for comment/Make global abuse filters opt-out|グローバルコメント依頼]]に従って行われました。 [https://phabricator.wikimedia.org/T341159]
* [[{{#special:BlockedExternalDomains}}]] は管理者がスパムに対応するための新しいツールです。これはプレーンドメイン(とそのサブドメイン)をブロックするためのインターフェースを提供し、検索がより容易になり、編集に対する処理速度が従来よりも向上します。正規表現、URLのパスマッチ、[[MediaWiki:Spam-whitelist|MediaWiki:Spam-whitelist]] をサポートしませんが、既存の[[MediaWiki:Spam-blacklist|MediaWiki:Spam-blacklist]] の機能を概ね置き換えるものです。[[mw:Special:MyLanguage/Manual:BlockedExternalDomains|このツールの解説文書]]ではすべてのシンプルドメインをこのツールへ移行するための Python スクリプトと機能の詳細を解説しています。この機能は Meta-wiki、コモンズ、ウィキデータを除くすべてのウィキで使用可能です。 [https://phabricator.wikimedia.org/T337431]
* WikiEditor 拡張機能がアップデートされました。ウィキテキスト編集で使用頻度の高い機能がいくつか盛り込まれています。以前は多くのメッセージを管理者のみが翻訳可能でしたが、現在は translatewiki の翻訳者全員が翻訳可能となっています。WikiEditor の[https://translatewiki.net/wiki/Special:MessageGroupStats?group=ext-wikieditor&messages=&x=D#sortable:0=asc あなたが使用する言語の翻訳の進捗状況]を確認し、進捗が 100% 未満であれば翻訳を完了させてください。[https://lists.wikimedia.org/hyperkitty/list/wikitech-ambassadors@lists.wikimedia.org/thread/D4YELU2DXMZ75PGELUOKXXMFF3FH45XA/ 詳細と説明についてもご覧いただけます]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-12|ja}}に、その他のウィキには{{#time:n月j日|2023-07-13|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[{{#special:LinkSearch}}]]と対応するAPIのデフォルトプロトコルが http から http と https の両方に変更されました。 [https://phabricator.wikimedia.org/T14810]
* [[{{#special:LinkSearch}}]]と対応するAPIは、クエリにて指定されたURLの全てで検索するようになりました。以前は最初の60文字だけでした。この機能は15年前にリクエストされました。 [https://phabricator.wikimedia.org/T17218]
'''今後の予定'''
* ただいま[[:w:ja:ChatGPT|ChatGPT]]プラグインの実験を行っています。利用者がウィキペディアの情報を読むとき、その情報が何に由来するものかを示すためのものです。ウィキメディア財団のスタッフとその他のウィキメディアンによってテストが行われています。まもなくすべての利用者が使えるようになる予定です。なお、このプラグインは以前[[m:Special:MyLanguage/Tech/News/2023/20|2023年 20週の技術ニュース]]で取りあげたものを指しています。 [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2023-2024/Draft/Future_Audiences#FA2.2_Conversational_AI]
* [[m:Special:MyLanguage/Third-party resources policy|サードパーティリソースに関する方針の草案]]に関する議論が進行中です。草案はサードパーティリソースを使用するガジェットおよびユーザースクリプトに影響します。これまで寄せられた意見から、外部リソースを読み込むユーザースクリプトやガジェットやユーザースクリプトのリスク、ベストプラクティス、コードの透明性や検査可能性などの免責事項が方針に盛り込ます。2023年7月17日まで、[[m:Talk:Third-party resources policy|方針のトークページ]]でフィードバックや提案を受け付けています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W28"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月10日 (月) 19:54 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25278797 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-29 ==
<section begin="technews-2023-W29"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/29|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">We are now serving 1% of all global user traffic from [[w:en:Kubernetes|Kubernetes]] (you can [[wikitech:MediaWiki On Kubernetes|read more technical details]]). We are planning to increment this percentage regularly. You can [[phab:T290536|follow the progress of this work]].</span>
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.18|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-19|ja}}に、その他のウィキには{{#time:n月j日|2023-07-20|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">MediaWiki [[mw:Special:MyLanguage/Help:System_message|system messages]] will now look for available local fallbacks, instead of always using the default fallback defined by software. This means wikis no longer need to override each language on the [[mw:Special:MyLanguage/Manual:Language#Fallback_languages|fallback chain]] separately. For example, English Wikipedia doesn't have to create <bdi lang="zxx" dir="ltr"><code>en-ca</code></bdi> and <bdi lang="zxx" dir="ltr"><code>en-gb</code></bdi> subpages with a transclusion of the base pages anymore. This makes it easier to maintain local overrides.</span> [https://phabricator.wikimedia.org/T229992]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code>action=growthsetmentorstatus</code></bdi>APIは新しいMediaWikiのバージョンから非推奨になります。このAPIを呼び出しているBotやスクリプトは<bdi lang="zxx" dir="ltr"><code>action=growthmanagementorlist</code></bdi>APIを使用する必要があります。 [https://phabricator.wikimedia.org/T321503]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月17日 (月) 23:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25289122 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-30 ==
<section begin="technews-2023-W30"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/30|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 7月18日、ウィキメディア財団は、財団または関連団体が管理しているソフトウェアで技術的な作業を行う人向けの[[:mw:Technical_decision_making|技術的意思決定プロセス]]に関する調査を開始しました。該当する方は[https://wikimediafoundation.limesurvey.net/885471 ぜひ調査に参加してください]。調査は8月7日までの3週間です。[[listarchive:list/wikitech-l@lists.wikimedia.org/thread/Q7DUCFA75DXG3G2KHTO7CEWMLCYTSDB2/|詳細はwikitech-lの告知]]で確認できます。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.19|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-07-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-07-26|ja}}に、その他のウィキには{{#time:n月j日|2023-07-27|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月25日 (火) 02:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25332248 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-31 ==
<section begin="technews-2023-W31"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/31|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Synchronizer|Synchronizer]] ツールが利用できるようになりました。ウィキメディアのウィキ間で Lua モジュールを同期させるためのものです。グローバルな Lua モジュールとテンプレートを開発するための[[mw:Multilingual Templates and Modules|文書の更新]]も行われています。
* [[{{#special:NewPages}}]] と履歴ページのタグフィルターを反転できるようになりました。これにより、例えば自動化ツールを使って行われた編集を非表示にすることができます。 [https://phabricator.wikimedia.org/T334337][https://phabricator.wikimedia.org/T334338]
* プラグインを利用できるユーザーにより Wikipedia [[:w:ja:ChatGPT|ChatGPT]] プラグインの運用テストが行われます。この運用テストや類似のテストについて話し合いたい場合は[[:m:Talk:Wikimedia Foundation Annual Plan/2023-2024/Draft/Future Audiences#Announcing monthly Future Audiences open "office hours"|ビデオ通話]]に参加してください。 [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2023-2024/Draft/Future_Audiences#FA2.2_Conversational_AI]
'''問題点'''
* 過去2週間ほど、非ラテン文字を含んだ名前のページで PDF の生成ができませんでした。現在は修正済みです。 [https://phabricator.wikimedia.org/T342442]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.20|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-01|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-02|ja}}に、その他のウィキには{{#time:n月j日|2023-08-03|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 火曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-kawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kaawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kabwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kbdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kbpwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-knwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kshwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kuwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kwwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308135]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年7月31日 (月) 23:54 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25362228 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-32 ==
<section begin="technews-2023-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/32|翻訳]]されています。
'''最近の更新'''
* モバイル版編集者が[[mw:Special:MyLanguage/Reading/Web/Advanced_mobile_contributions#August_1,_2023_-_Full-page_editing_added_on_mobile|ページ全体を一度に編集]]できるようになりました。この機能を使用するには、設定で"{{int:Mobile-frontend-mobile-option-amc}}"を有効にし、"{{int:Minerva-page-actions-overflow}}"メニュー内の"{{int:Minerva-page-actions-editfull}}"ボタンを使用してください。 [https://phabricator.wikimedia.org/T203151]
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年8月7日 (月) 21:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25420038 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-33 ==
<section begin="technews-2023-W33"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/33|翻訳]]されています。
'''最近の更新'''
* コンテンツ翻訳は Youdao の[[mw:Special:MyLanguage/Help:Content_translation/Translating/Initial_machine_translation|機械翻訳サービス]]を使わなくなりました。このサービスは数年間提供されてきましたが、利用者がおらず、他の手段で代替可能であるため、メンテナンスの負担を軽減するために廃止されました。同じ言語に対応する他の翻訳サービスは引き続き利用可能です。 [https://phabricator.wikimedia.org/T329137]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-15|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-16|ja}}に、その他のウィキには{{#time:n月j日|2023-08-17|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-lawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ladwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lbewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lezwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lfnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-liwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lijwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lmowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ltgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-lvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-maiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-map_bmswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mdfwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-hywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-kywiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308136] <!-- TODO replace wiki codes -->
'''今後の予定'''
* Minerva スキンにアイコンを追加する一部のガジェット/ユーザースクリプトの CSS を更新する必要があります。[[phab:T344067|既存のインスタンスの検索や更新方法などの詳細]]が提供されていますので御覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/33|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W33"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年8月15日 (火) 06:00 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25428668 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-34 ==
<section begin="technews-2023-W34"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/34|翻訳]]されています。
'''最近の更新'''
* [Google ドライブからコモンズへアップロード]を行うツールが利用できるようになりました。保護された接続のもと、Google ドライブからファイルを選択してウィキメディア・コモンズに直接ファイルをアップロードできます。 [https://phabricator.wikimedia.org/T267868]
* 今週の技術ニュースで新しいウィキメディアのウィキを紹介しています。ツールやページなどの更新をお願いします。
** 前号発行後に2つの新しいウィキが作成されました:
*** パオ語版ウィクショナリー ([[wikt:blk:|<code>wikt:blk:</code>]]) [https://phabricator.wikimedia.org/T343540]
*** スンダ語版ウィキソース ([[s:su:|<code>s:su:</code>]]) [https://phabricator.wikimedia.org/T343539]
** 更に6つの新しいウィキもご紹介します:
*** ウィキファンクションズ ([[f:|<code>f:</code>]]) [https://phabricator.wikimedia.org/T275945]
*** バタク・マンダイリン語版ウィクショナリー ([[wikt:btm:|<code>wikt:btm:</code>]]) [https://phabricator.wikimedia.org/T335216]
*** ガーナピジン版ウィキペディア ([[w:gpe:|<code>w:gpe:</code>]]) [https://phabricator.wikimedia.org/T335969]
*** グン語版ウィキニュース ([[n:guw:|<code>n:guw:</code>]]) [https://phabricator.wikimedia.org/T334394]
*** カバルド語版ウィクショナリー ([[wikt:kbd:|<code>wikt:kbd:</code>]]) [https://phabricator.wikimedia.org/T333266]
*** ファンティ語版ウィキペディア ([[w:fat:|<code>w:fat:</code>]]) [https://phabricator.wikimedia.org/T335016]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-22|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-23|ja}}に、その他のウィキには{{#time:n月j日|2023-08-24|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 既存の MediaWiki バックエンドコードには[[mw:Stable interface policy|安定したインターフェースの方針]]が存在します。また、[[mw:User:Jdlrobson/Stable interface policy/frontend|フロントエンドコードに対する安定したインターフェースの方針]]もあります。これらはガジェットやウィキメディアのフロントエンドコードを開発するすべての人に関わる方針です。方針を読んで議論を行い、問題がある場合は提案者にお知らせください。 [https://phabricator.wikimedia.org/T344079]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W34"/>
2023年8月21日 (月) 15:25 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25497111 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-35 ==
<section begin="technews-2023-W35"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/35|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項目]] [[m:Community Wishlist Survey 2022/Better diff handling of paragraph splits|文章の分割を扱う差分の改善]]と言う変更の一環として、分割の検出の改善を展開しつつあります。この2週間にわたり、このサポートを [[wikitech:Deployments/Train#Groups|group0]] および group1 のウィキ群に実装しました。今週はgroup2 のウィキ群に実装の予定です。 [https://phabricator.wikimedia.org/T341754]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項目]] [[{{#special:Contributions}}]] ページ(利用者の投稿記録)は全て、個別の利用者のアカウント作成日とともにローカルにおける編集回数を表示するようになりました。 [https://phabricator.wikimedia.org/T324166]
* ウィキソースの利用者の皆さんは<bdi lang="zxx" dir="ltr"><code><nowiki><pagelist></nowiki></code></bdi> タグ内で <bdi lang="zxx" dir="ltr"><code>prpbengalicurrency</code></bdi> ラベルを使い、ベンガル通貨文字の表示をページ数値として表示できるようになりました。 [https://phabricator.wikimedia.org/T268932]
* 個人設定項目2件の表示場所を移しました。「{{int:visualeditor-preference-visualeditor}}」の個人設定はどのウィキでも[[Special:Preferences#mw-prefsection-editing|「{{int:prefs-editing}}」タブ]]に表示します。以前は、ウィキによっては「{{int:prefs-betafeatures}}」タブに含まれていたものです。もう1件、「{{int:visualeditor-preference-newwikitexteditor-enable}}」も全てのウィキで「{{int:prefs-betafeatures}}」タブから「{{int:prefs-editing}}」タブへ場所を移しました。 [https://phabricator.wikimedia.org/T335056][https://phabricator.wikimedia.org/T344158]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-08-29|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-08-30|ja}}に、その他のウィキには{{#time:n月j日|2023-08-31|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ウィキメディアの開発者アカウントに新規のサインアップ導入は Wikitech 経由ではなく<bdi lang="en" dir="ltr">[https://idm.wikimedia.org/ idm.wikimedia.org]</bdi>に送る予定です。[[wikitech:IDM|新システムに関する詳細はこちら]]。
* 全ての右書きの言語版ウィキ群に加え、ウィキペディアの朝鮮語版、アルメニア語版、ウクライナ語版、ロシア語版、ブルガリア語版は[[m:Special:MyLanguage/Wikimedia URL Shortener|Wikimedia URL 短縮機能]]を介して、サイドバーに表示中のページの短縮 URL を作成するリンクを新設します。今後、他のウィキ群にも展開の予定です。 [https://phabricator.wikimedia.org/T267921]
'''今後の予定'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The removal of the [[mw:Special:MyLanguage/Extension:DoubleWiki|DoubleWiki extension]] is being discussed. This extension currently allows Wikisource users to view articles from multiple language versions side by side when the <bdi lang="zxx" dir="ltr"><code><=></code></bdi> symbol next to a specific language edition is selected. Comments on this are welcomed at [[phab:T344544|the phabricator task]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">A proposal has been made to merge the second hidden-categories list (which appears below the wikitext editing form) with the main list of categories (which is further down the page). [[phab:T340606|More information is available on Phabricator]]; feedback is welcome!</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/35|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W35"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年8月28日 (月) 14:00 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25510866 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-36 ==
<section begin="technews-2023-W36"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/36|翻訳]]されています。
'''最近の更新'''
* [[m:Wikisource_EditInSequence|EditInSequence]]はウィキソースの編集をより手早く実現する機能で、コミュニティのフィードバックに基づきベータ機能に移行しました。有効にするには、[[Special:Preferences#mw-prefsection-betafeatures|個人設定のベータ機能タブ]]を開いてください。 [https://phabricator.wikimedia.org/T308098]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項目]] [[m:Special:MyLanguage/Community Wishlist Survey 2022/Generate Audio for IPA|IPAに対する音声の生成]]ならびに[[m:Community Wishlist Survey 2022/Multimedia and Commons/Audio links that play on click|クリックすると再生する音声リンク]]をめぐる要望の提案に応じ、変更点を反映して[[mw:Extension:Phonos|Phonos]][[mw:Special:MyLanguage/Help:Extension:Phonos#Inline_audio_player_mode|インラインの音声再生モード]] をすべてのプロジェクトに展開しました。 [https://phabricator.wikimedia.org/T336763]
* 管理者が特定の利用者の利用者グループを変更する際、対象となるアカウントの利用者ページを管理者自身のウォッチリストに追加できるようになります。この機能は[[{{#special:UserRights}}]]とAPIの双方で利用できます。 [https://phabricator.wikimedia.org/T272294]
* 以下の新規ウィキ1件が創設されました。
** {{int:project-localized-name-group-wikipedia}}[[d:Q34318|タリシュ語版]] ([[w:tly:|<code>w:tly:</code>]]) [https://phabricator.wikimedia.org/T345166]
'''問題点'''
* [[mw:Special:MyLanguage/Extension:LoginNotify|ログイン通知拡張機能]] は1月以来、通知を発信してきませんでした。すでに修正済みで、今後はログインの失敗、あるいは新規のデバイスからのログインのたびに通知が届くはずです。 [https://phabricator.wikimedia.org/T344785]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-06|ja}}に、その他のウィキには{{#time:n月j日|2023-09-07|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります(対象は{{int:project-localized-name-mhrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-miwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-minwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mrwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mrjwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mtwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mwlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-myvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-mznwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nahwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-napwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ndswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nds_nlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-newiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-newwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-novwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nqowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nrmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nsowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-nywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ocwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-olowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-omwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-orwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-oswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pagwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pamwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-papwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pcdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pdcwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pflwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pihwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pmswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pnbwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pntwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-pswiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308137][https://phabricator.wikimedia.org/T308138]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/36|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W36"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月4日 (月) 23:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25566983 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-37 ==
<section begin="technews-2023-W37"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/37|翻訳]]されています。
'''最近の更新'''
* リビジョン評価サービスの[[mw:Special:MyLanguage/ORES|ORES]]は現在、英語版ウィキペディアとウィキデータを除くすべてのウィキで、新しいオープンソースインフラストラクチャを使用しています。残り2つのウィキは今週中に対応する予定です。ORESに関連する最近の更新フィルター("{{int:ores-rcfilters-damaging-title}}"や"{{int:ores-rcfilters-goodfaith-title}}")からの不自然な結果に気づいた場合は、ぜひ[[mw:Talk:Machine Learning|報告してください]]。 [https://phabricator.wikimedia.org/T342115]
* ウィキメディアのウィキにログインした状態で他のウィキを訪れるとシステムは自動的にログインを試みます。この機能は長い間信頼性を欠くものとなっていました。現在はログインページにアクセスすることでシステムが更なる対応を行うようになっています。ログインが従来より改善した、あるいは悪化したと感じた場合、フィードバックをお願いします。 [https://phabricator.wikimedia.org/T326281]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-13|ja}}に、その他のウィキには{{#time:n月j日|2023-09-14|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Special:MyLanguage/Technical decision making|技術面の意思決定フォーラム・レトロスペクティブ]]チームは、ウィキメディア・プロジェクトの技術分野に関わる全ての人に、9月13日に実施される[[mw:Technical decision making/Listening Sessions|リスニングセッション]]への参加を呼びかけています。後日、別の日程も予定しています。技術的な意思決定プロセスを改善することが目的です。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] 要望リストに挙がっていた[[m:Special:MyLanguage/Community Wishlist Survey 2022/Better diff handling of paragraph splits|段落を分割する差分表示の改善]]として、差分ページのインラインスイッチウィジェットがすべてのウィキに展開されます。インライン差分表示とウィキテキストによる二段組の差分表示を切り替えることができるようになります。 [https://phabricator.wikimedia.org/T336716]
'''今後の予定'''
* 9月20日、すべてのウィキが数分間読み取り専用の状態になります。[[m:Special:MyLanguage/Tech/Server switch|開始時刻は14:00(UTC)を予定しています。]]詳細は技術ニュースで追ってお知らせするほか、今後数週間のうちに各ウィキにも掲示される予定です。 [https://phabricator.wikimedia.org/T345263]
* エンタープライズAPIは「[http://breakingnews-beta.enterprise.wikimedia.com/ 速報ニュース]」と呼ばれる新機能を導入します。現在ベータ版の機能で「ニュースになりそうな」話題を特定しようとするものです。規模の小さい言語版は特に、検出モデルの精度を向上させるため、テンプレートや識別可能な編集パターンを推奨していただくよう、ご協力をお願いします。詳しい情報はMediaWikiの[[mw:Special:MyLanguage/Wikimedia Enterprise/Breaking news|解説ページ]]またはMetaの[[m:Special:MyLanguage/Wikimedia Enterprise/FAQ#What is Breaking News|FAQ]]をご覧ください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/37|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W37"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月11日 (月) 21:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25589064 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-38 ==
<section begin="technews-2023-W38"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/38|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MediaWiki に[[mw:Stable interface policy/frontend|フロントエンドコードに関する安定したインタフェースの方針]]が導入されました。MediaWiki コードと Wiki ベースコード(ガジェットやユーザー・スクリプトなど)を非推奨にする方法がより明確に定義されます。内容や協議にご協力いただいた皆様ありがとうございました。 [https://phabricator.wikimedia.org/T346467][https://phabricator.wikimedia.org/T344079]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.27|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-20|ja}}に、その他のウィキには{{#time:n月j日|2023-09-21|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 9月20日、すべてのウィキが数分間読み取り専用の状態になります。時間は [[m:Special:MyLanguage/Tech/Server switch|14:00 UTC]]の予定です。 [https://phabricator.wikimedia.org/T345263]
* すべてのウィキのサイドバーに表示中のページの短縮URLを提供するリンクが追加されます。リンクの短縮には[[m:Special:MyLanguage/Wikimedia URL Shortener|ウィキメディアのURL短縮機能]]が使用されます。 [https://phabricator.wikimedia.org/T267921]
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] Graph 拡張機能担当チームは[[mw:Extension:Graph/Plans#Proposal|再導入を提案中]]であり、皆様からのご意見を募集しています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月18日 (月) 19:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25623533 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-39 ==
<section begin="technews-2023-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/39|翻訳]]されています。
'''最近の更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The Vector 2022 skin will now remember the pinned/unpinned status for the Table of Contents for all logged-out users.</span> [https://phabricator.wikimedia.org/T316060]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.28|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-09-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-09-27|ja}}に、その他のウィキには{{#time:n月j日|2023-09-28|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The ResourceLoader <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.ui</nowiki></code></bdi> modules are now deprecated as part of the move to Vue.js and Codex. There is a [[mw:Codex/Migrating_from_MediaWiki_UI|guide for migrating from MediaWiki UI to Codex]] for any tools that use it. More [[phab:T346468|details are available in the task]] and your questions are welcome there.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Gadget definitions will have a [[mw:Special:MyLanguage/Extension:Gadgets#Options|new "namespaces" option]]. The option takes a list of namespace IDs. Gadgets that use this option will only load on pages in the given namespaces.</span>
'''今後の予定'''
* <span lang="en" dir="ltr" class="mw-content-ltr">New variables will be added to [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]]: <code><bdi lang="zxx" dir="ltr">global_account_groups</bdi></code> and <code><bdi lang="zxx" dir="ltr">global_account_editcount</bdi></code>. They are available only when an account is being created. You can use them to prevent blocking automatic creation of accounts when users with many edits elsewhere visit your wiki for the first time.</span> [https://phabricator.wikimedia.org/T345632][https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:AbuseFilter/Rules_format]
'''ミーティング'''
* <span lang="en" dir="ltr" class="mw-content-ltr">You can join the next meeting with the Wikipedia mobile apps teams. During the meeting, we will discuss the current features and future roadmap. The meeting will be on [https://zonestamp.toolforge.org/1698426015 27 October at 17:00 (UTC)]. See [[mw:Special:MyLanguage/Wikimedia_Apps/Office_Hours#October_2023|details and how to join]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年9月26日 (火) 16:51 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25655264 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-40 ==
<section begin="technews-2023-W40"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/40|翻訳]]されています。
'''最近の更新'''
* [[Special:Preferences#mw-prefsection-rendering-advancedrendering|利用者の個人設定]]に "{{int:tog-forcesafemode}}"が追加されました。この設定を有効にすると、オンウィキの JavaScript や stylesheet を一切、回避してページを読み込みます。壊れた JavaScript ガジェットのデバグ作業に便利かもしれません。 [https://phabricator.wikimedia.org/T342347]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ガジェット類の定義には[[mw:Special:MyLanguage/Extension:Gadgets#Options|新規に "<var>contentModels</var>" のオプション]]が加わりました。このオプションはページのコンテンツモデルを基準に<code><bdi lang="zxx" dir="ltr">wikitext</bdi></code> や <code><bdi lang="zxx" dir="ltr">css</bdi></code>などに似た一覧を参照します。ガジェットにこのオプションを設定すると、コンテンツモデルに該当するページ限定で読み込まれるように変わります。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.29|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-03|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-04|ja}}に、その他のウィキには{{#time:n月j日|2023-10-05|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ベクター2022年版外装はレガシー版ベクター(2010年版)固有のスタイルとスクリプトを採用しなくなります。変更は今年後半もしくは2024年初頭の予定です。詳細は[[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Loading Vector 2010 scripts|皆さんのウィキで CSS と JS ページを調整する方法]]をご参照ください。 [https://phabricator.wikimedia.org/T331679]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月3日 (火) 01:27 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25686930 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-41 ==
<section begin="technews-2023-W41"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/41|翻訳]]されています。
'''最近の更新'''
* 以下の新規ウィキ1件が創設されました。 {{int:project-localized-name-group-wikipedia}}[[d:Q33291|フォン語]]版 ([[w:fon:|<code>w:fon:</code>]]) [https://phabricator.wikimedia.org/T347935]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.41/wmf.30|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-10|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-11|ja}}に、その他のウィキには{{#time:n月j日|2023-10-12|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-swwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-wawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-warwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-wowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-xalwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-xhwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-xmfwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-yiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-yowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zeawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zh_min_nanwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-zuwiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308139]
* いくつかのウィキでは新規参加者に対して、画像が全くないページにウィキメディア・コモンズから画像をお勧めし、追加するかどうか尋ねる仕掛けがあります。火曜日以降は画像の追加を見出し単位で足すことができるようになります。対象のウィキは[[mw:Special:MyLanguage/Growth/Deployment table|Growth チームの展開日程表]]の項目「画像のお勧め機能」に載せてあります。この機能の[[mw:Special:MyLanguage/Help:Growth/Tools/Add an image|詳細はこちらをご参照ください]]。 [https://phabricator.wikimedia.org/T345940]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] モバイル版外装(Minerva=ミネルヴァ)ではCSS ID <bdi lang="zxx" dir="ltr"><code><nowiki>#page-actions</nowiki></code></bdi> を <bdi lang="zxx" dir="ltr"><code><nowiki>#p-views</nowiki></code></bdi> に変更の予定です。この変更によりその他の外装との一貫性を持たせてモバイル版外装のガジェットや拡張機能のサポート改善を目指します。複数のガジェットで更新が必要な場合があります。[https://phabricator.wikimedia.org/T348267 詳細と検索リンク類はこのタスクをご参照ください]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/41|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W41"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月9日 (月) 14:39 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25712895 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-42 ==
<section begin="technews-2023-W42"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/42|翻訳]]されています。
'''最近の更新'''
* [[m:Special:MyLanguage/Help:Unified login|統一ログイン]]システムのエッジログインは特定のブラウザで正常に機能するように修正されたはずです。(Chrome、Edge、Opera)。これで初めて開いた姉妹プロジェクトで自動的にログイン状態になり、改めて「ログイン」のリンクを押すことも、ページを読み込みし直すことも不要となります。正しく機能するかどうか、フィードバックをお待ちしています。 [https://phabricator.wikimedia.org/T347889]
* [[mw:Special:MyLanguage/Manual:Interface/Edit_notice|編集通知]]機能が モバイル版/ミネルバ外装に導入されました。これは[[w:en:Wikipedia:EditNoticesOnMobile|英語版ウィキペディアのガジェット]]から着想を得て開発されています。詳細は[[phab:T316178|T316178]]のチケットをご参照ください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.1|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-17|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-18|ja}}に、その他のウィキには{{#time:n月j日|2023-10-19|ja}}に展開されます([[mw:MediaWiki 1.41/Roadmap|工程表はこちら]])。
'''今後の予定'''
* ベクター2022年版外装では、およそ1年前から無効にしてある<bdi lang="zxx" dir="ltr"><code><nowiki>addPortletLink</nowiki></code></bdi> と <bdi lang="zxx" dir="ltr"><code><nowiki>#p-namespaces</nowiki></code></bdi> 関連のリンクを今後3週間で除去する予定です。今後もし「議論」(Discussion)タブの隣にあったはずのタブが消えた場合、ガジェットのメンテナに[[phab:T347907|Phabricator タスクの指示]]を確認するようお知らせください。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/42|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月16日 (月) 23:47 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25745824 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-43 ==
<section begin="technews-2023-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/43|翻訳]]されています。
'''最近の更新'''
* 新規に[[mw:Special:MyLanguage/Wikimedia Language engineering/Newsletter/2023/October|言語と国際化ニュースレター]]が旬刊(年4回)で発刊しました。新機能開発の進捗状況、多言語対応の技術プロジェクトの改善点とその関連の対応作業について掲載します。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Source map support has been enabled on all wikis. When you open the debugger in your browser's developer tools, you should be able to see the unminified JavaScript source code.</span> [https://phabricator.wikimedia.org/T47514]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.2|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-24|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-10-25|ja}}に、その他のウィキには{{#time:n月j日|2023-10-26|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月23日 (月) 23:17 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25782286 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-44 ==
<section begin="technews-2023-W44"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/44|翻訳]]されています。
'''最近の更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The Structured Content team, as part of its project of [[:commons:Commons:WMF support for Commons/Upload Wizard Improvements|improving UploadWizard on Commons]], made some UX improvements to the upload step of choosing own vs not own work ([[phab:T347590|T347590]]), as well as to the licensing step for own work ([[phab:T347756|T347756]]).</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The Design Systems team has released version 1.0.0 of [[wmdoc:codex/latest/|Codex]], the new design system for Wikimedia. See the [[mw:Special:MyLanguage/Design_Systems_Team/Announcing_Codex_1.0|full announcement about the release of Codex 1.0.0]].</span>
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.3|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-10-31|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-01|ja}}に、その他のウィキには{{#time:n月j日|2023-11-02|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
* <span lang="en" dir="ltr" class="mw-content-ltr">Listings on category pages are sorted on each wiki for that language using a [[:w:en:International Components for Unicode|library]]. For a brief period on 2 November, changes to categories will not be sorted correctly for many languages. This is because the developers are upgrading to a new version of the library. They will then use a script to fix the existing categories. This will take a few hours or a few days depending on how big the wiki is. You can [[mw:Special:MyLanguage/Wikimedia Technical Operations/ICU announcement|read more]].</span> [https://phabricator.wikimedia.org/T345561][https://phabricator.wikimedia.org/T267145]
* <span lang="en" dir="ltr" class="mw-content-ltr">Starting November 1, the impact module (Special:Impact) will be upgraded by the Growth team. The new impact module shows newcomers more data regarding their impact on the wiki. It was tested by a few wikis during the last few months.</span> [https://phabricator.wikimedia.org/T336203]
'''今後の予定'''
* <span lang="en" dir="ltr" class="mw-content-ltr">There is [[mw:Special:MyLanguage/Extension:Graph/Plans#Roadmap|a proposed plan]] for re-enabling the Graph Extension. You can help by reviewing this proposal and [[mw:Extension_talk:Graph/Plans#c-PPelberg_(WMF)-20231020221600-Update:_20_October|sharing what you think about it]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The WMF is working on making it possible for administrators to [[mw:Special:MyLanguage/Community_configuration_2.0|edit MediaWiki configuration directly]]. This is similar to previous work on Special:EditGrowthConfig. [[phab:T349757|A technical RfC is running until November 08, where you can provide feedback.]]</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/44|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年10月30日 (月) 23:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25801989 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-45 ==
<section begin="technews-2023-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/45|翻訳]]されています。
'''最近の更新'''
* ベクター2022外装では、いくつかのナビゲーション要素(タグライン、トールメニュー、ナビゲーションリンクなど)が、ページのコンテンツのフォントのサイズに合わせて若干大きくなりました。 [https://phabricator.wikimedia.org/T346062]
'''問題点'''
* 先週、[https://noc.wikimedia.org/conf/highlight.php?file=dblists/s5.dblist 一部のWiki]で最近の編集が1-6時間ほど表示されないという問題がありました。編集は保存できましたが、すぐには表示されませんでした。これはデータベースの問題によるものでした。 [https://phabricator.wikimedia.org/T350443]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-11-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-08|ja}}に、その他のウィキには{{#time:n月j日|2023-11-09|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
* Growthチームは新人ウィキメディアンを元メンターから[[mw:Special:MyLanguage/Growth/Structured mentor list|現在アクティブなメンター]]に割り当て直します。また、通知の文言もより使いやすいように変更しました。 [https://phabricator.wikimedia.org/T330071][https://phabricator.wikimedia.org/T327493]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月6日 (月) 21:06 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25838105 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-46 ==
<section begin="technews-2023-W46"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/46|翻訳]]されています。
'''最近の更新'''
* 以下の新規ウィキ4件が創設されました。
** [[d:Q7598268|標準モロッコ・タマジクト語版]]ウィキペディア ([[w:zgh:|<code>w:zgh:</code>]]) [https://phabricator.wikimedia.org/T350216]
** [[d:Q35159|ダガリ語版]]ウィキペディア ([[w:dga:|<code>w:dga:</code>]]) [https://phabricator.wikimedia.org/T350218]
** [[d:Q33017|バタク・トバ語版]]ウィキペディア ([[w:bbc:|<code>w:bbc:</code>]]) [https://phabricator.wikimedia.org/T350320]
** [[d:Q33151|バンジャル語版]]ウィキクォート ([[q:bjn:|<code>q:bjn:</code>]]) [https://phabricator.wikimedia.org/T350217]
'''問題点'''
* 先週、メタウィキまたはウィキメディア・コモンズにアクセスを行い、そのウィキでログアウトを行った利用者は再ログインできない状態になりました。現在この問題は解決済みです。 [https://phabricator.wikimedia.org/T350695]
* 先週、一部ポップアップダイアログやメニューが間違ったフォントサイズで表示されました。この問題は解決されました。 [https://phabricator.wikimedia.org/T350544]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-11-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-15|ja}}に、その他のウィキには{{#time:n月j日|2023-11-16|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。
'''今後の予定'''
* 多くのウィキで脚注ポップアップ機能が標準機能として導入される予定です。これは[[mw:Special:MyLanguage/Page Previews|ページのプレビュー昨日]]に似たもので、脚注の内容をポップアップ表示します。この機能が不要であれば[[m:WMDE Technical Wishes/ReferencePreviews#Opt-out feature|オプトアウトすることも可能]]です。[[Special:Preferences#mw-prefsection-gadgets|個人設定]]にて脚注ツールチップやナビゲーション・ポップアップを有効にしている場合、脚注ポップアップ機能は無効化されます。[[phab:T282999|この機能の展開]]は2023年11月22日を予定しています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] カナリアリリース(ハートビートとも呼ばれる)イベントが12月11日から[https://stream.wikimedia.org/?doc#/streams ウィキメディアのイベントストリーム]で配信されます。ストリームのユーザーにはイベントのフィルタリングをおすすめします。<bdi lang="zxx" dir="ltr"><code><nowiki>meta.domain == "canary"</nowiki></code></bdi> のイベントを全てフィルタリングにより非表示にしてください。[[mw:Special:MyLanguage/Manual:Pywikibot|Pywikibot]] や[https://github.com/ChlodAlejandro/wikimedia-streams ウィキメディアのストリーム]がアップデートされ、ユーザーにこれらのイベントが配信されなくなります。 [https://phabricator.wikimedia.org/T266798]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/46|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月13日 (月) 23:52 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25859263 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-47 ==
<section begin="technews-2023-W47"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/47|翻訳]]されています。
'''今週の更新'''
* 今週、MediaWikiのバージョン更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 水曜日以降、新しくなった[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクの追加機能]]が一部のウィキで利用できるようになります。(対象は{{int:project-localized-name-quwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rmywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-roa_rupwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-roa_tarawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ruewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-rwwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sahwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-satwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-scwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-scnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-scowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sdwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-shwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-siwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-skwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-slwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-smwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sowiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sqwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-srwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-srnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-sswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-stwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-stqwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-suwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-szlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tawiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tcywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tetwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tgwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-thwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tkwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tlwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tnwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-towiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tpiwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-trwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ttwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-twwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tywiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-tyvwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-udmwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-ugwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-uzwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vewiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vecwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vepwiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vlswiki/ja}}{{int:comma-separator/ja}}{{int:project-localized-name-vowiki/ja}})。これは[[phab:T304110|様々なウィキペディアにこのツールを導入する計画]]の一環です。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能の動作設定]]を行うことができます。 [https://phabricator.wikimedia.org/T308141][https://phabricator.wikimedia.org/T308142][https://phabricator.wikimedia.org/T308143]
* 2022年版ベクター外装はドロップダウンメニューやカラム幅その他、表示に若干の変更を導入します。先週、ウィキペディアの言語版4件に展開しました。問題が検出されない場合、今週、当該の変更を全ての言語版に反映する予定です。今後、ダークモード用や、読みやすさに役立つメニュー類を追加できるようにするためです。[[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements/Updates#November_2023:_Visual_changes,_more_deployments,_and_shifting_focus|詳細はこちら]]。 [https://phabricator.wikimedia.org/T347711]
'''今後の予定'''
* [[mw:Extension talk:Graph/Plans#Update: 15 November|グラフ拡張機能(Graph Extension)を再び有効にする件で更新を追加しました]]。段取りを迅速化するため、立ち上げ時にVega 2 の対応をやめて[https://phabricator.wikimedia.org/T335325 複数のプロトコル]を有効にします。この計画に関する皆さんの考えをぜひ共有して、ご協力願います。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/47|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月21日 (火) 00:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25884616 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-48 ==
<section begin="technews-2023-W48"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/48|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-11-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-11-29|ja}}に、その他のウィキには{{#time:n月j日|2023-11-30|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 今週は MediaWiki の更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MediaWikiの JavaScript はガジェットやユーザースクリプトで <bdi lang="zxx" dir="ltr"><code>async</code>/<code>await</code></bdi> 構文が利用できるようになります。利用者のブラウザによっては対応していない可能性があるため、ガジェット作成者は適切に利用する必要があります。 [https://phabricator.wikimedia.org/T343499]
* [[m:Special:MyLanguage/Tech/News/2023/47|先週]]発表された「[[mw:Special:MyLanguage/Help:Growth/Tools/Add_a_link|リンクを追加]]」機能は展開を延期していましたが、今週再開の予定です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/48|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年11月27日 (月) 23:09 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25906379 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-49 ==
<section begin="technews-2023-W49"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/49|翻訳]]されています。
'''最近の更新'''
* 2022年版ベクター外装の段落同士の間隔は、文字の大きさに合わせて7pxから14pxに変更しました。これにより文か段落かが区別しやすくなります。 [https://phabricator.wikimedia.org/T351754]
* ビジュアル編集の「{{int:Visualeditor-dialog-meta-categories-defaultsort-label}}」機能の不具合が解消しています。<bdi lang="zxx" dir="ltr"><code><nowiki>{{DEFAULTSORT:...}}</nowiki></code></bdi> のキーワードを編集するためにソース編集へ切り替える必要がなくなりました。 [https://phabricator.wikimedia.org/T337398]
'''今週の更新'''
* 今週は MediaWiki の更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 12月6日以降、個人設定で「{{int:Discussiontools-preference-visualenhancements}}」を有効にしている人は、マジックワードの<bdi lang="zxx" dir="ltr"><code><nowiki>__NEWSECTIONLINK__</nowiki></code></bdi> を有効にしてあるページで[[mw:Special:MyLanguage/Talk pages project/Usability|トークページの機能性改善]]というお知らせが表示されます。問題点に気づいた場合、ぜひ[[phab:T352232|Phabricator に投稿して当チームと共有してください]]。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] Toolforge の[[wikitech:News/Toolforge Grid Engine deprecation|Grid Engine のシャットダウンプロセス]]を12月14日から開始する予定です。[[toolforge:grid-deprecation|この旧式のシステムを採用するツールのメンテナ]]は、必ず当日までに Kubernetes への移植を済ませるか、担当ツールのタスクの計画を Phabricator に投稿し当チームに連絡してください。 [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/VIWWQKMSQO2ED3TVUR7KPPWRTOBYBVOA/]
* [[mw:Special:MyLanguage/Structured_Discussions|構造化された議論]]の機能を採用するコミュニティには[[mw:Special:MyLanguage/Structured_Discussions/Deprecation|今後の使用が非推奨になる]]という通知を行っています。プロジェクトの詳細やコメントは[[mw:Special:MyLanguage/Structured_Discussions/Deprecation|プロジェクトのページで確認できます]]。
'''イベント'''
* 5月3–5日にエストニアのタリンで開催する[[mw:Special:MyLanguage/Wikimedia Hackathon 2024|ウィキメディア・ハッカソン2024]]は、参加登録と旅費滞在費補助の申込みを受け付けています。同補助金の申請〆切は2024年1月5日です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/49|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年12月4日 (月) 23:50 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25914435 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-50 ==
<section begin="technews-2023-W50"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/50|翻訳]]されています。
'''最近の更新'''
* ウィキメディア・コモンズのアップロードウィザードで「自分の作品か他人の作品の選択」を選択するステップについて、ユーザーインターフェースに微細な改善が行われました。 これは構造化コンテンツチームの[[:commons:Commons:WMF support for Commons/Upload Wizard Improvements|コモンズのアップロードウィザードを改善する]]プロジェクトの一環です。 [https://phabricator.wikimedia.org/T352707][https://phabricator.wikimedia.org/T352709]
'''問題点'''
* 12月初旬の数日間、[[mw:Special:MyLanguage/Growth/Personalized first day/Newcomer homepage|編集初学者用のホームページ]]がページ閲覧グラフと「影響度モジュール」と同時に表示できない問題がありました。この問題は解決済みです。 [https://phabricator.wikimedia.org/T352352][https://phabricator.wikimedia.org/T352349]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-12-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-12-13|ja}}に、その他のウィキには{{#time:n月j日|2023-12-14|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* [[File:Octicons-tools.svg|15px|link=]] [https://wikimediafoundation.limesurvey.net/796964 2023年開発者 満足度調査]ではウィキメディアの開発者コミュニティの意見を募集中です。ウィキメディアのエコシステムのためのソフトウェア開発に関わる役割がある場合はアンケートにご協力してください。〆切は2024年1月5日、この調査には[[foundation:Legal:December_2023_Developer_Satisfaction_Survey|個人情報保護の声明]]があります。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/50|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年12月12日 (火) 02:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25945501 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2023-51 ==
<section begin="technews-2023-W51"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2023/51|翻訳]]されています。
'''技術ニュース'''
* 技術週報の次号は [[w:Special:MyLanguage/en:Christmas and holiday season|年末年始]]の休暇のため、2024年1月8日配信の予定です。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2023-12-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2023-12-20|ja}}に、その他のウィキには{{#time:n月j日|2023-12-21|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 今週、MediaWikiのバージョン更新はありません。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 2023年12月18日以降、ベータ機能を使っても構造化した議論( Structured Discussions)の有効化はできなくなります。ベータ機能オプションの利用は、無効化したい利用者のために残してあります。これは[[mw:Structured Discussions/Deprecation|Structured Discussions の廃止作業]]の一環です。 [https://phabricator.wikimedia.org/T248309]
* [[File:Octicons-tools.svg|12px|link=|alt=|<span lang="en" dir="ltr" class="mw-content-ltr">Advanced item</span>]] <span lang="en" dir="ltr" class="mw-content-ltr">There will be full support for redirects in the Module namespace. The "Move Page" feature will leave an appropriate redirect behind, and such redirects will be appropriately recognized by the software (e.g. hidden from [[{{#special:UnconnectedPages}}]]). There will also be support for [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Renaming or moving modules|manual redirects]].</span> [https://phabricator.wikimedia.org/T120794]
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The MediaWiki JavaScript documentation is moving to a new format. During the move, you can read the old docs using [https://doc.wikimedia.org/mediawiki-core/REL1_41/js/ version 1.41]. Feedback about [https://doc.wikimedia.org/mediawiki-core/master/js/ the new site] is welcome on the [[mw:Talk:JSDoc_WMF_theme|project talk page]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The Wishathon is a new initiative that encourages collaboration across the Wikimedia community to develop solutions for wishes collected through the [[m:Special:MyLanguage/Community Wishlist Survey|Community Wishlist Survey]]. The first community Wishathon will take place from 15–17 March. If you are interested in a project proposal as a user, developer, designer, or product lead, you can [[m:Special:MyLanguage/Event:WishathonMarch2024|register for the event and read more]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2023/51|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2023-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2023年12月18日 (月) 16:18 (UTC)
<!-- User:Johan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=25959059 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-02 ==
<section begin="technews-2024-W02"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/02|翻訳]]されています。
'''最近の更新'''
* [https://mediawiki2latex.wmflabs.org/ mediawiki2latex]は、ウィキコンテンツをLaTeX、PDF、ODT、EPUBの各形式に変換するツールです。このたびの改善により、コードは多くの場面で高速化されました。また、ローカルマシンに[[b:de:Benutzer:Dirk_Hünniger/wb2pdf/install#Using_Docker|インストール]]できるDockerコンテナのオプションも提供されています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] おまかせ表示のページ選択方法がアップデートされました。一部のページが表示されにくい問題が徐々に減少するでしょう。 [https://phabricator.wikimedia.org/T309477]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.13|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-10|ja}}に、その他のウィキには{{#time:n月j日|2024-01-11|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/02|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W02"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月9日 (火) 01:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26026251 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-03 ==
<section begin="technews-2024-W03"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/03|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] JSONの[[mw:Special:MyLanguage/Manual:ContentHandler|コンテンツモデル]]を使用するページで、従来はスペースが使用されていた自動インデントをタブ文字にしました。これによりページサイズが大幅に削減されます。 [https://phabricator.wikimedia.org/T326065]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]と個人のユーザースクリプトで今後、ES6(別名ES2015)とES7(別名ES2016)導入されたJavaScript構文を使用できるようになりました。MediaWikiはソースコードの検証を行い、構文エラーから他のサイトの機能を保護し、すべての[[mw:Special:MyLanguage/Compatibility#Browsers|サポート対象となるブラウザ]]でスクリプトが有効であることを確認します。以前はガジェットで <bdi lang="zxx" dir="ltr"><code><nowiki>requiresES6</nowiki></code></bdi> オプションを利用可能でしたが、こちらは不要となるため将来的に削除される予定です。 [https://phabricator.wikimedia.org/T75714]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[mw:Special:MyLanguage/Manual:Bot passwords|ボットのパスワード]]と[[mw:Special:MyLanguage/OAuth/Owner-only consumers|所有者専用のOAuthコンシューマ]]は特定のページのみの編集を許可できるようになりました。 [https://phabricator.wikimedia.org/T349957]
* ボットが行った編集にも[[mw:Special:MyLanguage/Extension:Thanks|感謝]]を送れるようになりました。 [https://phabricator.wikimedia.org/T341388]
* 2024年版コミュニティ要望調査がアップデートされ、進捗状況が[[m:Special:MyLanguage/Community Wishlist Survey/Future Of The Wishlist/January 4, 2024 Update|公開されました]]。内容を確認してフィードバックをお寄せください。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.14|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-16|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-17|ja}}に、その他のウィキには{{#time:n月j日|2024-01-18|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 1月17日以降、Chromeブラウザの特定の古いバージョン(バージョン51から66、2016年から2018年にかけてリリース)からウィキメディアウィキへログインできなくなります。また、iOS 12やMac OS 10.14のSafariユーザーは各ウィキに個別にログインする必要があるかもしれません。 [https://phabricator.wikimedia.org/T344791]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 昨年 <bdi lang="zxx" dir="ltr"><code>jquery.cookie</code></bdi> モジュールは非推奨となり、<bdi lang="zxx" dir="ltr"><code>mediawiki.cookie</code></bdi> モジュールに置き換えられました。旧モジュールを引き続き使用している部分に対して置換スクリプトが実行され、今週中にエイリアスが削除されます。 [https://phabricator.wikimedia.org/T354966]
'''今後の予定'''
* ウィキメディアドイツ支部は[[m:WMDE Technical Wishes/Reusing references|脚注の利用を簡単にする]]ための取り組みを進めています。[https://wikimedia.sslsurvey.de/User-research-into-Reusing-References-Sign-up-Form-2024/en/ 1月と2月にユーザーリサーチのための個別ビデオ通話]に参加したい人を募集中です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/03|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月16日 (火) 00:13 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26074460 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-04</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W04"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/04|Translations]] are available.
'''Problems'''
* A bug in UploadWizard prevented linking to the userpage of the uploader when uploading. It has now been fixed. [https://phabricator.wikimedia.org/T354529]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.42/wmf.15|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-01-23|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-01-24|en}}. It will be on all wikis from {{#time:j xg|2024-01-25|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/04|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W04"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月23日 (火) 01:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26096197 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-05 ==
<section begin="technews-2024-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/05|翻訳]]されています。
'''最近の更新'''
* 1月29日(月)以降、すべてのトークページのメッセージのタイムスタンプがリンク形式に変更されました。これはコメントへの固定リンクとなり、他の場所へ移動されたときでもコメントを探しやすくなります。この変更は英語版ウィキペディアを除くすべてのウィキに影響します。変更内容の詳細は[https://diff.wikimedia.org/2024/01/29/talk-page-permalinks-dont-lose-your-threads/ Diff]や[[mw:Special:MyLanguage/Help:DiscussionTools#Talk_pages_permalinking|MediaWiki.org]]を御覧ください。<!-- The Diff post will be published on Monday morning UTC--> [https://phabricator.wikimedia.org/T302011]
* CHAPTCHA の改善が行われ、ボットやスクリプトによるスパムを回避しやすくなりました。この変更に関するフィードバックがある場合は[[phab:T141490|タスク]]へのコメントをお願いします。スタッフは CAPTCHA に関するメトリクスのみならず、アカウント作成や編集回数などの副次的なメトリクスのモニタリングも行っています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-31|ja}}に、その他のウィキには{{#time:n月j日|2024-02-01|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項]] 2月1日から、閲覧中のページへのリンクを含んだ[[w:ja:QRコード|QRコード]]をダウンロードする項目が「ツール」メニューに追加されます。また、任意のウィキメディアのページへのQRコードを生成するための新しいページ [[{{#special:QrCode}}]] も導入されます。この機能は[[m:Community Wishlist Survey 2023/Results|コミュニティ要望リスト]]で[[m:Community Wishlist Survey 2023/Mobile and apps/Add ability to share QR code for a page in any Wikimedia project|19番目に上がっていた要望]]に基づくものです。 [https://phabricator.wikimedia.org/T329973]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 特定のスキンでのみ動作する[[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]は、しばし <bdi lang="zxx" dir="ltr"><code>targets</code></bdi> の設定項目により使用できる環境を制限していました。今週からこの機能は使用できなくなります。<bdi lang="zxx" dir="ltr"><code>skins</code></bdi> という設定項目を代わりに使用してください。 [https://phabricator.wikimedia.org/T328497]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月29日 (月) 19:31 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26137870 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-05 ==
<section begin="technews-2024-W05"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/05|翻訳]]されています。
'''最近の更新'''
* 1月29日(月)以降、すべてのトークページのメッセージのタイムスタンプがリンク形式に変更されました。これはコメントへの固定リンクとなり、他の場所へ移動されたときでもコメントを探しやすくなります。この変更は英語版ウィキペディアを除くすべてのウィキに影響します。変更内容の詳細は[https://diff.wikimedia.org/2024/01/29/talk-page-permalinks-dont-lose-your-threads/ Diff]や[[mw:Special:MyLanguage/Help:DiscussionTools#Talk_pages_permalinking|MediaWiki.org]]を御覧ください。<!-- The Diff post will be published on Monday morning UTC--> [https://phabricator.wikimedia.org/T302011]
* CHAPTCHA の改善が行われ、ボットやスクリプトによるスパムを回避しやすくなりました。この変更に関するフィードバックがある場合は[[phab:T141490|タスク]]へのコメントをお願いします。スタッフは CAPTCHA に関するメトリクスのみならず、アカウント作成や編集回数などの副次的なメトリクスのモニタリングも行っています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.16|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-01-30|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-01-31|ja}}に、その他のウィキには{{#time:n月j日|2024-02-01|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査の項]] 2月1日から、閲覧中のページへのリンクを含んだ[[w:ja:QRコード|QRコード]]をダウンロードする項目が「ツール」メニューに追加されます。また、任意のウィキメディアのページへのQRコードを生成するための新しいページ [[{{#special:QrCode}}]] も導入されます。この機能は[[m:Community Wishlist Survey 2023/Results|コミュニティ要望リスト]]で[[m:Community Wishlist Survey 2023/Mobile and apps/Add ability to share QR code for a page in any Wikimedia project|19番目に上がっていた要望]]に基づくものです。 [https://phabricator.wikimedia.org/T329973]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 特定のスキンでのみ動作する[[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]は、しばし <bdi lang="zxx" dir="ltr"><code>targets</code></bdi> の設定項目により使用できる環境を制限していました。今週からこの機能は使用できなくなります。<bdi lang="zxx" dir="ltr"><code>skins</code></bdi> という設定項目を代わりに使用してください。 [https://phabricator.wikimedia.org/T328497]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/05|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年1月29日 (月) 19:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26137870 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-06 ==
<section begin="technews-2024-W06"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/06|翻訳]]されています。
'''最近の更新'''
*モバイル版履歴ページも、デスクトップ版と同じ HTML を採用しました。モバイル版の履歴表示の使用に問題があった場合は、[[phab:T353388|phabricator のタスク]]に報告してください。
*ほとんどのウィキで管理者は利用者対して特定の操作をブロックできるようになりました。規制できる操作はファイルのアップロード、ページの新規作成、ページの移動(改名)、感謝ボタンの使用などです。この機能の目的は管理者が対象利用者の活動に即したブロックを適用できるようにすることです。[[m:Special:MyLanguage/Community health initiative/Partial blocks#action-blocks|「操作をブロック」の詳細はこちら]]。 [https://phabricator.wikimedia.org/T242541][https://phabricator.wikimedia.org/T280531]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.17|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-02-06|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-02-07|ja}}に、その他のウィキには{{#time:n月j日|2024-02-08|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* トークページの固定リンクは、URLの文字列内に発音記号もしくはラテン文字以外の文字が使われていた場合エラーを起こしていました。この問題は解決済みです。 [https://phabricator.wikimedia.org/T356199]
'''今後の予定'''
* [[mw:Special:MyLanguage/Reference_Tooltips|Reference Tooltips]](参照ツールチップ)ガジェットを規定で全利用者に有効にしている[[m:WMDE Technical Wishes/ReferencePreviews#24WPs|24件のウィキペディア]]は、既定で有効のフラグを除去するよう推奨されています。これにより[[mw:Special:MyLanguage/Help:Reference_Previews|参照プレビュー]]が既定の脚注ポップアップとして使われるようになり、ウィキ間の体験をより標準化するためです。[[m:Talk:WMDE Technical Wishes/ReferencePreviews#Reference Previews to become the default for previewing references on more wikis.|懸念事項がない限り]]、インタフェース管理者が4名未満の[[m:WMDE Technical Wishes/ReferencePreviews#46WPs|ウィキペディア46 件]]は実施日程を2月中旬に変更を実施予定です。従来の参照ツールチップも引き続き有効で、個人設定でガジェットを有効にしている場合、参照プレビューの機能を上書きします。 [https://meta.wikimedia.org/wiki/WMDE_Technical_Wishes/ReferencePreviews#Reference_Previews_to_become_the_default_for_previewing_references_on_more_wikis][https://phabricator.wikimedia.org/T355312]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/06|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月5日 (月) 19:22 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26180971 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-07</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W07"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/07|Translations]] are available.
'''Recent changes'''
* The [[d:Wikidata:SPARQL query service/WDQS graph split|WDQS Graph Split experiment]] is working and loaded onto 3 test servers. The team in charge is testing the split's impact and requires feedback from WDQS users through the UI or programmatically in different channels. [https://www.wikidata.org/wiki/Wikidata_talk:SPARQL_query_service/WDQS_graph_split][https://phabricator.wikimedia.org/T356773][https://www.wikidata.org/wiki/User:Sannita_(WMF)] Users' feedback will validate the impact of various use cases and workflows around the Wikidata Query service. [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/WDQS_backend_update/October_2023_scaling_update][https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual#Federation]
'''Problems'''
*There was a bug that affected the appearance of visited links when using mobile device to access wiki sites. It made the links appear black; [[phab:T356928|this issue]] is fixed.
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.42/wmf.18|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-02-13|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-02-14|en}}. It will be on all wikis from {{#time:j xg|2024-02-15|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|Advanced item]] As work continues on the grid engine deprecation,[https://wikitech.wikimedia.org/wiki/News/Toolforge_Grid_Engine_deprecation] tools on the grid engine will be stopped starting on February 14th, 2024. If you have tools actively migrating you can ask for an extension so they are not stopped. [https://wikitech.wikimedia.org/wiki/Portal:Toolforge/About_Toolforge#Communication_and_support]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/07|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W07"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月13日 (火) 05:49 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26223994 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-08 ==
<section begin="technews-2024-W08"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/08|翻訳]]されています。
'''最近の更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">If you have the "{{int:Tog-enotifwatchlistpages}}" option enabled, edits by bot accounts no longer trigger notification emails. Previously, only minor edits would not trigger the notification emails.</span> [https://phabricator.wikimedia.org/T356984]
* <span lang="en" dir="ltr" class="mw-content-ltr">There are changes to how user and site scripts load for [[mw:Special:MyLanguage/Skin:Vector/2022| Vector 2022]] on specific wikis. The changes impacted the following Wikis: all projects with [[mw:Special:MyLanguage/Skin:Vector|Vector legacy]] as the default skin, Wikivoyage, and Wikibooks. Other wikis will be affected over the course of the next three months. Gadgets are not impacted. If you have been affected or want to minimize the impact on your project, see [[Phab:T357580| this ticket]]. Please coordinate and take action proactively.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Newly auto-created accounts (the accounts you get when you visit a new wiki) now have the same local notification preferences as users who freshly register on that wiki. It is effected in four notification types listed in the [[phab:T353225|task's description]].</span>
*[[c:Special:MyLanguage/Commons:Upload_Wizard|アップロード・ウィザード]]を使って処理できるファイルサイズの上限は 5 ギガバイトになりました。 [https://phabricator.wikimedia.org/T191804]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:MediaWiki 1.42/wmf.19|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-02-20|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-02-21|en}}. It will be on all wikis from {{#time:j xg|2024-02-22|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]).</span> [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 2024年3月14日付けでグリッドを閉鎖するにあたり、グリットエンジン上の選択されたツールは[[wikitech:News/Toolforge_Grid_Engine_deprecation|停止]]しました。ツールのコードとデータは削除していません。メンテナーの皆さんのうちツールを再度、有効にしたい人は当[[wikitech:Portal:Toolforge/About_Toolforge#Communication_and_support|チーム]]にご連絡ください。グリッド上で動いているツールは、延長の申し入れを受けたものに限定しています。
* CSSのプロパティ <bdi lang="zxx" dir="ltr"><code>[https://developer.mozilla.org/en-US/docs/Web/CSS/filter filter]</code></bdi> は ウィキ文の記述で HTML <bdi lang="zxx" dir="ltr"><code>style</code></bdi> 属性を採用できるようになりました。 [https://phabricator.wikimedia.org/T308160]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/08|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月19日 (月) 15:37 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26254282 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-09</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W09"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/09|Translations]] are available.
'''Recent changes'''
* The [[mw:Special:MyLanguage/VisualEditor_on_mobile|mobile visual editor]] is now the default editor for users who never edited before, at a small group of wikis. [[mw:Special:MyLanguage/VisualEditor_on_mobile/VE_mobile_default#A/B_test_results| Research ]] shows that users using this editor are slightly more successful publishing the edits they started, and slightly less successful publishing non-reverted edits. Users who defined the wikitext editor as their default on desktop will get the wikitext editor on mobile for their first edit on mobile as well. [https://phabricator.wikimedia.org/T352127]
* [[File:Octicons-tools.svg|12px|link=|alt=|Advanced item]] The [[mw:Special:MyLanguage/ResourceLoader/Core modules#mw.config|mw.config]] value <code>wgGlobalGroups</code> now only contains groups that are active in the wiki. Scripts no longer have to check whether the group is active on the wiki via an API request. A code example of the above is: <bdi lang="zxx" dir="ltr"><code>if (/globalgroupname/.test(mw.config.get("wgGlobalGroups")))</code></bdi>. [https://phabricator.wikimedia.org/T356008]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.42/wmf.20|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-02-27|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-02-28|en}}. It will be on all wikis from {{#time:j xg|2024-02-29|en}} ([[mw:MediaWiki 1.42/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''Future changes'''
* The right to change [[mw:Special:MyLanguage/Manual:Tags|edit tags]] (<bdi lang="zxx" dir="ltr"><code>changetags</code></bdi>) will be removed from users in Wikimedia sites, keeping it by default for admins and bots only. Your community can ask to retain the old configuration on your wiki before this change happens. Please indicate in [[phab:T355639|this ticket]] to keep it for your community before the end of March 2024.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/09|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W09"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年2月26日 (月) 19:23 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26294125 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-10 ==
<section begin="technews-2024-W10"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/10|翻訳]]されています。
'''最近の更新'''
* 古い[[mw:Special:MyLanguage/Extension:Collection|Collection拡張機能]]によって提供されていた特別ページ<bdi lang="zxx" dir="ltr"><code>Special:Book</code></bdi>(および「ブックを作成する」関連機能)は全てのウィキソースのウィキから削除されました。機能が壊れていたためです。[[mw:Special:MyLanguage/Extension:Wikisource|ウィキソース拡張機能]]によって提供される通常のブックのダウンロード機能には影響しません。 [https://phabricator.wikimedia.org/T358437]
* [[m:Wikitech|Wikitech]]は全てのトーク名前空間のページを生成するために、次世代型の[[mw:Special:MyLanguage/Parsoid|Parsoid]]パーサーを既定で使用しています。問題が生じた場合は[[mw:Talk:Parsoid/Parser_Unification/Known_Issues|既知の問題点と議論のためのページ]]へ報告をお願いします。Parsoidを制御するために[[mw:Special:MyLanguage/Extension:ParserMigration|ParserMigration]]拡張機能を使用できます。詳細は[[mw:Special:MyLanguage/Help:Extension:ParserMigration|ParserMigrationのヘルプ文書]]を参照ください。
* [https://etherpad.wikimedia.org Etherpad]のメンテナンスが完了しました。問題が生じた場合は[[phab:T316421|チケット]]への報告をお願いします。
* [[File:Octicons-tools.svg|12px|link=|alt=| 高度]] [[mw:Special:MyLanguage/Extension:Gadgets|ガジェット]]はインターフェース管理者がCSSとJavaScriptを使用してカスタム機能を作成できるようにするものです。<bdi lang="zxx" dir="ltr"><code>Gadget</code></bdi> および <bdi lang="zxx" dir="ltr"><code>Gadget_definition</code></bdi> 名前空間と利用者権限 <bdi lang="zxx" dir="ltr"><code>gadgets-definition-edit</code></bdi> は、2015年に実験的に予約名として登録されましたが、実際に使用されることはありませんでした。これは Special:Search と Special:ListGroupRights で見ることができます。未使用の名前空間と権限はこのたび削除されます。ページの移動は行われず、変更は必要ありません。 [https://phabricator.wikimedia.org/T31272]
* Wikipediaの「引用」ワークフローが改善しました。挿入ボタンがポップアップのヘッダー部分へと移動されました。 [https://phabricator.wikimedia.org/T354847]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.21|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-05|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-06|ja}}に、その他のウィキには{{#time:n月j日|2024-03-07|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* 3月20日に数分間、すべてのウィキが読み取り専用になります。時刻は14:00 UTCを予定しています。詳細は技術ニュースで発表され、今後数週間で個別のウィキにも告知されます。 [https://phabricator.wikimedia.org/T358233]
* 今年後半に見出しとセクション編集リンクのマークアップが改善され、アクセシビリティが向上します。詳細は[[mw:Special:MyLanguage/Heading_HTML_changes|Heading HTML changes]]を参照ください。新しいマークアップはParsoidウィキテキストパーサーと同じになります。新しいマークアップを使用してガジェットやスタイルシートを確認したい場合はURLに <bdi lang="zxx" dir="ltr"><code>?useparsoid=1</code></bdi> を追加してください([[mw:Special:MyLanguage/Help:Extension:ParserMigration#Selecting_a_parser_using_a_URL_query_string|詳細はこちら]])。または個人設定でParsoidの読み取りビューを有効にしてください([[mw:Special:MyLanguage/Help:Extension:ParserMigration#Enabling_via_user_preference|詳細はこちら]])。
*
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/10|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月4日 (月) 19:47 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26329807 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-11 ==
<section begin="technews-2024-W11"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/11|翻訳]]されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.22|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-12|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-13|ja}}に、その他のウィキには{{#time:n月j日|2024-03-14|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 様々なコミュニティと協議を行った結果、[[mw:Special:MyLanguage/Skin:Minerva Neue|Minervaスキン]]の行間は従来適用されていた1.65に増加しました。必要に応じてメニューの個人設定から異なるタイポグラフィも設定できます。 [https://phabricator.wikimedia.org/T358498]
*[[mw:Special:MyLanguage/Skin:Minerva Neue|Minerva]]の選択リンク色が変更され、他のプラットフォームとの一貫性が向上します。 [https://phabricator.wikimedia.org/T358516]
* <span lang="en" dir="ltr" class="mw-content-ltr">[[c:Special:MyLanguage/Commons:Structured data|Structured data on Commons]] will no longer ask whether you want to leave the page without saving. This will prevent the “information you’ve entered may not be saved” popups from appearing when no information have been entered. It will also make file pages on Commons load faster in certain cases. However, the popups will be hidden even if information has indeed been entered. If you accidentally close the page before saving the structured data you entered, that data will be lost.</span> [https://phabricator.wikimedia.org/T312315]
'''今後の予定'''
* 3月20日に数分間、すべてのウィキが読み取り専用になります。時刻は14:00 UTCを予定しています。詳細は技術ニュースで発表され、今後数週間で個別のウィキにも告知されます。 [https://phabricator.wikimedia.org/T358233][https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/11|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月11日 (月) 23:04 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26374013 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-12 ==
<section begin="technews-2024-W12"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/12|翻訳]]されています。
'''最近の更新'''
* 利用者への十分な周知が行えたものとして、[[mw:Special:MyLanguage/Skin:Vector/2022|2022年版ベクタースキン]]のメインメニューにあった「言語間リンクはページの先頭部にあります」という告知メッセージが削除されました。 [https://phabricator.wikimedia.org/T353619]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[m:Special:MyLanguage/IP_Editing:_Privacy_Enhancement_and_Abuse_Mitigation/IP_Info_feature|IP情報機能]]はSpurのデータベースからもIPアドレスの情報を参照して表示するようになります。従来はMaxMindの情報のみを参照していました。IP情報ツールが巡回者にとってより有用なものになります。 [https://phabricator.wikimedia.org/T341395]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] ToolforgeのGridエンジンサービスはKubernetesへの最終移行プロセス完了後にシャットダウンされました。 [https://wikitech.wikimedia.org/wiki/Obsolete:Toolforge/Grid][https://wikitech.wikimedia.org/wiki/News/Toolforge_Grid_Engine_deprecation][https://techblog.wikimedia.org/2022/03/14/toolforge-and-grid-engine/]
* [[MediaWiki:Undelete-comment-dropdown]] を作成することで、ページの復帰を行う際のデフォルトの理由をカスタマイズすることができるようになりました。 [https://phabricator.wikimedia.org/T326746]
'''問題点'''
* [[m:Special:MyLanguage/WMDE_Technical_Wishes/RevisionSlider|リビジョンスライダー]]はページの履歴を相互に閲覧するためのインターフェースです。[[mw:Special:MyLanguage/Extension:RevisionSlider/Developing_a_RTL-accessible_feature_in_MediaWiki_-_what_we%27ve_learned_while_creating_the_RevisionSlider|右横書き]]の言語でリビジョンスライダーがマウスクリックに誤って反応するという問題が報告されていました。この問題は現在修正済みです。 [https://phabricator.wikimedia.org/T352169]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.23|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-19|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-20|ja}}に、その他のウィキには{{#time:n月j日|2024-03-21|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 3月20日に数分間、すべてのウィキが読み取り専用の状態になります。時刻は[https://zonestamp.toolforge.org/1710943200 14:00 UTC]を予定しています。 [https://phabricator.wikimedia.org/T358233][https://meta.wikimedia.org/wiki/Special:MyLanguage/Tech/Server_switch]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/12|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月18日 (月) 17:40 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26410165 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-13 ==
<section begin="technews-2024-W13"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/13|翻訳]]されています。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 2024年3月18日、[[mw:Special:MyLanguage/Skin:Vector/2022|2022年版ベクタースキン]]のサイト、ユーザーJavaScript及びCSSの読み込み方法に変更が加えられました。サイト管理者のための[[phab:T360384|チェックリスト]]が提供されています。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.24|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-03-26|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-03-27|ja}}に、その他のウィキには{{#time:n月j日|2024-03-28|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/13|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年3月25日 (月) 18:57 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26446209 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-14 ==
<section begin="technews-2024-W14"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/14|翻訳]]されています。
'''最近の更新'''
* ベータ版機能の[[mw:Special:MyLanguage/Reading/Web/Accessibility_for_reading|読み取りアクセシビリティ]]の標準テキストと大きめテキストのオプションのデフォルト行間が変更されました。 [https://phabricator.wikimedia.org/T359030]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.25|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-04-02|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-04-03|ja}}に、その他のウィキには{{#time:n月j日|2024-04-04|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* ウィキメディア・コモンズ財団の年次計画を策定します。年次計画の中では財団が取り組む事柄を決定します。現在、プロダクト及びテクノロジー部門の[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2024-2025/Product & Technology OKRs#Draft Key Results|成果草案]]が公開されています。これは2024年7月から2025年6月までに財団が行う大規模な技術的変更とそれに対して望む成果の提案です。[[m:Talk:Wikimedia Foundation Annual Plan/2024-2025/Product & Technology OKRs|トークページへのご意見をお待ちしています]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/14|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月2日 (火) 03:36 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26462933 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-15 ==
<section begin="technews-2024-W15"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/15|翻訳]]されています。
'''最近の更新'''
* ウェブブラウザには[[:w:ja:ブラウザ拡張機能|拡張機能]]と呼ばれるツールを使用することができます。[[m:Future Audiences/Experiment:Citation Needed|Citation Needed]]と呼ばれるChrome拡張機能があります。これを使用することでウィキペディアの記事がオンライン上の意見を支持しているかどうかを確認することができます。これはウィキペディアをこのような方法で検証できるかどうかの小規模な実験です。小規模な実験を目的としているため、拡張機能はChrome用の英語版しかありません。
* [[File:Octicons-gift.svg|12px|link=|alt=|要望調査]] <span class="mw-translate-fuzzy">すべてのウィキに[[mw:Special:MyLanguage/Help:Edit Recovery|編集の復旧]]機能が追加されました。[[Special:Preferences#mw-prefsection-editing|個人設定]]から有効にすることができます。機能を有効にしていた場合、編集内容がウェブブラウザに保存され、編集画面を誤って閉じたり、ブラウザやコンピュータがクラッシュした際に、未保存のテキストを復旧するよう促されます。この機能について[[m:Special:MyLanguage/Talk:Community Wishlist Survey 2023/Edit-recovery feature|プロジェクトのトークページ]]にフィードバックをお願いします。この機能は2023年のコミュニティ要望調査で8番目に挙がっていた項目でした。</span>
* [[mw:Special:MyLanguage/Edit check|編集チェック]]の初期結果が[[mw:Special:MyLanguage/Edit_check#4_April_2024|公開されました]]。[[phab:T342930#9538364|編集チェックの試験に参加したウィキ]]ではこれをデフォルトの機能として提供しています。次回の編集チェックに参加したいウィキがありましたら[[mw:Talk:Edit check|お知らせください。]] [https://phabricator.wikimedia.org/T342930][https://phabricator.wikimedia.org/T361727]
* モバイルモードで[[mw:Special:MyLanguage/Skin:Minerva Neue|ミネルバスキン]]を使用しているユーザーはに行間設定が変更されたことにお気づきいただけると思います。 [https://phabricator.wikimedia.org/T359029]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.42/wmf.26|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-04-09|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-04-10|ja}}に、その他のウィキには{{#time:n月j日|2024-04-11|ja}}に展開されます([[mw:MediaWiki 1.42/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 新規アカウントとログアウトしたユーザーは[[mw:Special:MyLanguage/VisualEditor|ビジュアルエディター]]をモバイル版デフォルトのエディタとして利用できるようになります。英語版ウィキペディアを除く全てのウィキにこの設定が展開されます。 [https://phabricator.wikimedia.org/T361134]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され [[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]] によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/15|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月8日 (月) 23:38 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26564838 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-16</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W16"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/16|Translations]] are available.
'''Problems'''
* Between 2 April and 8 April, on wikis using [[mw:Special:MyLanguage/Extension:FlaggedRevs|Flagged Revisions]], the "{{Int:tag-mw-reverted}}" tag was not applied to undone edits. In addition, page moves, protections and imports were not autoreviewed. This problem is now fixed. [https://phabricator.wikimedia.org/T361918][https://phabricator.wikimedia.org/T361940]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.43/wmf.1|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-04-16|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-04-17|en}}. It will be on all wikis from {{#time:j xg|2024-04-18|en}} ([[mw:MediaWiki 1.43/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[mw:Special:MyLanguage/Help:Magic words#DEFAULTSORT|Default category sort keys]] will now affect categories added by templates placed in [[mw:Special:MyLanguage/Help:Cite|footnotes]]. Previously footnotes used the page title as the default sort key even if a different default sort key was specified (category-specific sort keys already worked). [https://phabricator.wikimedia.org/T40435]
* A new variable <bdi lang="zxx" dir="ltr"><code>page_last_edit_age</code></bdi> will be added to [[Special:AbuseFilter|abuse filters]]. It tells how many seconds ago the last edit to a page was made. [https://phabricator.wikimedia.org/T269769]
'''Future changes'''
* Volunteer developers are kindly asked to update the code of their tools and features to handle [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]]. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers/2024-04 CTA|Learn more]].
* [[File:Octicons-tools.svg|12px|link=|alt=|Advanced item]] Four database fields will be removed from database replicas (including [[quarry:|Quarry]]). This affects only the <bdi lang="zxx" dir="ltr"><code>abuse_filter</code></bdi> and <bdi lang="zxx" dir="ltr"><code>abuse_filter_history</code></bdi> tables. Some queries might need to be updated. [https://phabricator.wikimedia.org/T361996]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/16|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W16"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月15日 (月) 23:29 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26564838 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-17</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W17"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/17|Translations]] are available.
'''Recent changes'''
* Starting this week, newcomers editing Wikipedia [[mw:Special:MyLanguage/Growth/Positive reinforcement#Leveling up 3|will be encouraged]] to try structured tasks. [[mw:Special:MyLanguage/Growth/Feature summary#Newcomer tasks|Structured tasks]] have been shown to [[mw:Special:MyLanguage/Growth/Personalized first day/Structured tasks/Add a link/Experiment analysis, December 2021|improve newcomer activation and retention]]. [https://phabricator.wikimedia.org/T348086]
* You can [[m:Special:MyLanguage/Coolest Tool Award|nominate your favorite tools]] for the fifth edition of the Coolest Tool Award. Nominations will be open until May 10.
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.43/wmf.2|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-04-23|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-04-24|en}}. It will be on all wikis from {{#time:j xg|2024-04-25|en}} ([[mw:MediaWiki 1.43/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''Future changes'''
* This is the last warning that by the end of May 2024 the Vector 2022 skin will no longer share site and user scripts/styles with old Vector. For user-scripts that you want to keep using on Vector 2022, copy the contents of [[{{#special:MyPage}}/vector.js]] to [[{{#special:MyPage}}/vector-2022.js]]. There are [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features/Loading Vector 2010 scripts|more technical details]] available. Interface administrators who foresee this leading to lots of technical support questions may wish to send a mass message to your community, as was done on French Wikipedia. [https://phabricator.wikimedia.org/T362701]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/17|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W17"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月22日 (月) 20:28 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26647188 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-18</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W18"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/18|Translations]] are available.
'''Recent changes'''
[[File:Talk_pages_default_look_(April_2023).jpg|thumb|alt=Screenshot of the visual improvements made on talk pages|Example of a talk page with the new design, in French.]]
* The appearance of talk pages changed for the following wikis: {{int:project-localized-name-azwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-bnwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-dewiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-fawiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-hewiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-hiwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-idwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-kowiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-nlwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-ptwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-rowiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-thwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-trwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-ukwiki/en}}{{int:comma-separator/en}}{{int:project-localized-name-viwiki/en}}. These wikis participated to a test, where 50% of users got the new design, for one year. As this test [[Mw:Special:MyLanguage/Talk pages project/Usability/Analysis|gave positive results]], the new design is deployed on these wikis as the default design. It is possible to opt-out these changes [[Special:Preferences#mw-prefsection-editing|in user preferences]] ("{{int:discussiontools-preference-visualenhancements}}"). The deployment will happen at all wikis in the coming weeks. [https://phabricator.wikimedia.org/T341491]
* Seven new wikis have been created:
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q33014|Betawi]] ([[w:bew:|<code>w:bew:</code>]]) [https://phabricator.wikimedia.org/T357866]
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q35708|Kusaal]] ([[w:kus:|<code>w:kus:</code>]]) [https://phabricator.wikimedia.org/T359757]
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q35513|Igala]] ([[w:igl:|<code>w:igl:</code>]]) [https://phabricator.wikimedia.org/T361644]
** a {{int:project-localized-name-group-wiktionary}} in [[d:Q33541|Karakalpak]] ([[wikt:kaa:|<code>wikt:kaa:</code>]]) [https://phabricator.wikimedia.org/T362135]
** a {{int:project-localized-name-group-wikisource}} in [[d:Q9228|Burmese]] ([[s:my:|<code>s:my:</code>]]) [https://phabricator.wikimedia.org/T361085]
** a {{int:project-localized-name-group-wikisource}} in [[d:Q9237|Malay]] ([[s:ms:|<code>s:ms:</code>]]) [https://phabricator.wikimedia.org/T363039]
** a {{int:project-localized-name-group-wikisource}} in [[d:Q8108|Georgian]] ([[s:ka:|<code>s:ka:</code>]]) [https://phabricator.wikimedia.org/T363085]
* You can now [https://translatewiki.net/wiki/Support#Early_access:_Watch_Message_Groups_on_Translatewiki.net watch message groups/projects] on [[m:Special:MyLanguage/translatewiki.net|Translatewiki.net]]. Initially, this feature will notify you of added or deleted messages in these groups. [https://phabricator.wikimedia.org/T348501]
* Dark mode is now available on all wikis, on mobile web for logged-in users who opt into the [[Special:MobileOptions|advanced mode]]. This is the early release of the feature. Technical editors are invited to [https://night-mode-checker.wmcloud.org/ check for accessibility issues on wikis]. See [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|more detailed guidelines]].
'''Problems'''
* [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]] maps can use an alternative visual style without labels, by using <bdi lang="zxx" dir="ltr"><code><nowiki>mapstyle="osm"</nowiki></code></bdi>. This wasn't working in previews, creating the wrong impression that it wasn't supported. This has now been fixed. [https://phabricator.wikimedia.org/T362531]
'''Changes later this week'''
* [[File:Octicons-sync.svg|12px|link=|alt=|Recurrent item]] The [[mw:MediaWiki 1.43/wmf.3|new version]] of MediaWiki will be on test wikis and MediaWiki.org from {{#time:j xg|2024-04-30|en}}. It will be on non-Wikipedia wikis and some Wikipedias from {{#time:j xg|2024-05-01|en}}. It will be on all wikis from {{#time:j xg|2024-05-02|en}} ([[mw:MediaWiki 1.43/Roadmap|calendar]]). [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/18|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W18"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年4月30日 (火) 03:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26689057 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-19 ==
<section begin="technews-2024-W19"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/19|翻訳]]されています。
'''最近の更新'''
[[File:Talk_pages_default_look_(April_2023).jpg|thumb|alt=外観の改善がされたトークページのスクリーンショット|新デザインのトークページの例(フランス語)。]]
* コモンズ、ウィキデータ、および大半のウィキペディア([[m:Special:MyLanguage/Tech/News/2024/18|一部]]はすでにデザイン変更済み)を除く全てのウィキで、トークページの外観が変更されました。変更の詳細は[[diffblog:2024/05/02/making-talk-pages-better-for-everyone/|Diff]]をご覧ください。[[Special:Preferences#mw-prefsection-editing|個人設定]]("{{int:discussiontools-preference-visualenhancements}}")でこの変更を無効にすることができます。今後数週間のうちに他のウィキにも展開される予定です。 [https://phabricator.wikimedia.org/T352087][https://phabricator.wikimedia.org/T319146]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] インターフェース管理者は、<code>SiteAdminHelper</code>の導入により、携帯端末での記事構成要素のスタイルをより管理しやすくなりました。スタイルの無効化の詳細については、[[mw:Special:MyLanguage/Extension:WikimediaMessages#Site_admin_helper|拡張機能のページ]]をご覧ください。 [https://phabricator.wikimedia.org/T363932]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Wikimedia Enterprise|Wikimedia Enterprise]] has added article body sections in JSON format and a curated short description field to the existing parsed Infobox. This expansion to the API is also available via Wikimedia Cloud Services.</span> [https://enterprise.wikimedia.com/blog/article-sections-and-description/]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.4|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-07|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-08|ja}}に、その他のウィキには{{#time:n月j日|2024-05-09|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 特別:ログ を開いた時、最初に表示されているラベルは "全ての公開記録" となっていますが、実際には一部の記録しか表示されません。今後、ラベルは "主な公開ログ" と表記されます。 [https://phabricator.wikimedia.org/T237729]
'''今後の予定'''
* [[mw:Special:MyLanguage/Extension:Graph|グラフ拡張機能]]に代わる新しいサービスが開発される予定です。詳細はこの拡張機能に関する[[mw:Special:MyLanguage/Extension:Graph/Plans|最新の更新]]をご覧ください。
* 5月21日から、英語版ウィキペディアとドイツ語版ウィキペディアで「[[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|リンクを追加]]」機能を有効化できるようになります。これは[[phab:T304110|このツールをすべてのウィキペディアに段階的に展開する]]一環として行われます。コミュニティは[[mw:Special:MyLanguage/Growth/Community configuration|ローカルでこの機能を有効化し、設定することができます]]。 [https://phabricator.wikimedia.org/T308144]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/19|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月6日 (月) 16:45 (UTC)
<!-- User:Trizek (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26729363 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-20 ==
<section begin="technews-2024-W20"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/20|翻訳]]されています。
'''最近の更新'''
* Wikisource(ウィキソース)に特別ページがあり、保存されたページのうち対応するはずのスキャン画像が存在しないページ類をまとめてあります。新しくマジックワード <bdi lang="zxx" dir="ltr"><code>__EXPECTWITHOUTSCANS__</code></bdi> を使うと、指定したページ群を除外することができるようになりました(たとえば発行の版数一覧やその一覧の他言語版など)。 [https://phabricator.wikimedia.org/T344214]
* [[Special:Preferences#mw-prefsection-editing|個人設定]]の「{{int:tog-uselivepreview}}」を有効にしている場合、ページを再読み込みしなくても「{{int:Templatesandbox-editform-legend}}」というテンプレートページの機能が実行できるようになりました。 [https://phabricator.wikimedia.org/T136907]
* [[mw:Special:Mylanguage/Extension:Kartographer|Kartographer]] で作成した地図内に<bdi lang="zxx" dir="ltr"><code><nowiki>alt=</nowiki></code></bdi> 属性を介して代替文字列を指定できるようになりました。使用方法は[[mw:Special:MyLanguage/Help:Images#Syntax|画像およびギャラリー構文]]の <bdi lang="zxx" dir="ltr"><code><nowiki>alt=</nowiki></code></bdi> 属性と同じです。例外は Wikivoyage など、ミニチュア・マップを双方向に使えるウィキ・プロジェクトではこの限りではありません。 [https://phabricator.wikimedia.org/T328137]
* 「[[mw:Special:MyLanguage/Edit Review Improvements/New filters for edit review|編集レビューの新フィルター]]」機能("[[mw:Special:MyLanguage/Edit Review Improvements/New filters for edit review|New Filters for Edit Review]]" )において、従来の[[mw:Special:MyLanguage/Extension:GuidedTour|ガイドツアー]]を除去しました。作成した2017年には利用者アカウントが古い利用者を対象に、インターフェースの変更点を紹介したものでしたが、対象となるはずの利用者層のほとんどがすでに視聴済みです。 [https://phabricator.wikimedia.org/T217451]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.5|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-14|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-15|ja}}に、その他のウィキには{{#time:n月j日|2024-05-16|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] [[{{#special:search}}]] 結果ページは使いやすさを向上させるため、表組みの代わりに CSS フレックス属性を採用します。検索結果を調整するガジェットまたはスクリプトを使用中の場合は、スクリプトを新しい HTML 構造に必ず更新してください。 [https://phabricator.wikimedia.org/T320295]
'''今後の予定'''
* 2022年ベクター外装の場合、メインページの表示幅がウィンドウいっぱいに変更の予定です(特別ページと同様)。目的は、1行あたりの文字数をできるだけ多くするためです。これは同外装に展開予定の文字組みの更新と連携しています。[[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates|詳細はこちら]]。 [https://phabricator.wikimedia.org/T357706]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <bdi lang="zxx" dir="ltr"><code>[[mw:Special:MyLanguage/Manual:pagelinks table|pagelinks]]</code></bdi> データベース・テーブルの2列(<bdi lang="zxx" dir="ltr"><code>pl_namespace</code></bdi> と <bdi lang="zxx" dir="ltr"><code>pl_title</code></bdi>)をまもなく削除の予定です。今後は必ず新規の<bdi lang="zxx" dir="ltr"><code>[[mw:special:MyLanguage/Manual:linktarget table|linktarget]]</code></bdi> テーブルの2列を使用してください(<bdi lang="zxx" dir="ltr"><code>lt_namespace</code></bdi> と <bdi lang="zxx" dir="ltr"><code>lt_title</code></bdi>)。既存の SQL クエリに当てはめると以下のとおり。
*# <bdi lang="zxx" dir="ltr"><code>ON</code></bdi> の記述で、$ 1 は <bdi lang="zxx" dir="ltr"><code>JOIN linktarget</code></bdi> に、 <bdi lang="zxx" dir="ltr"><code>pl_</code></bdi> は $ 4 に置換する
*# その下の行に <bdi lang="zxx" dir="ltr"><code>JOIN pagelinks ON lt_id = pl_target_id</code></bdi> を追加する
** 技術的な理由は<bdi lang="en" dir="ltr">[[phab:T222224]]</bdi>でご確認ください。 [https://phabricator.wikimedia.org/T222224][https://phabricator.wikimedia.org/T299947]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/20|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月13日 (月) 23:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26762074 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-21 ==
<section begin="technews-2024-W21"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/21|翻訳]]されています。
'''最近の更新'''
* 管理者がページを一括削除できる[[mw:Special:MyLanguage/Extension:Nuke|Nuke]]拡張機能で、移動されたページが正しく削除されるようになりました。 [https://phabricator.wikimedia.org/T43351]
* <span lang="en" dir="ltr" class="mw-content-ltr">New changes have been made to the UploadWizard in Wikimedia Commons: the overall layout has been improved, by following new styling and spacing for the form and its fields; the headers and helper text for each of the fields was changed; the Caption field is now a required field, and there is an option for users to copy their caption into the media description.</span> [https://commons.wikimedia.org/wiki/Commons:WMF_support_for_Commons/Upload_Wizard_Improvements#Changes_to_%22Describe%22_workflow][https://phabricator.wikimedia.org/T361049]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.6|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-21|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-22|ja}}に、その他のウィキには{{#time:n月j日|2024-05-23|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The HTML used to render all headings [[mw:Heading_HTML_changes|is being changed to improve accessibility]]. It will change on 22 May in some skins (Timeless, Modern, CologneBlue, Nostalgia, and Monobook). Please test gadgets on your wiki on these skins and [[phab:T13555|report any related problems]] so that they can be resolved before this change is made in all other skins. The developers are also considering the introduction of a [[phab:T337286|Gadget API for adding buttons to section titles]] if that would be helpful to tool creators, and would appreciate any input you have on that.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/21|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W21"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月20日 (月) 23:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26786311 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-22 ==
<section begin="technews-2024-W22"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/22|翻訳]]されています。
'''最近の更新'''
* ウィキメディア・コモンズでのアップロードウィザードのアップデートに関連するいくつかのバグが修正されました。詳細については、[[:phab:T365107|T365107]]と[[:phab:T365119|T365119]]を参照してください。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 2024年3月、ガジェットがスキン内に新しいポートレットを作成できるようにする、[[mw:ResourceLoader/Core_modules#addPortlet|addPortlet]] APIが追加されました。特定のスキンでは、これを利用してドロップダウンを作成できます。ぜひお試しいただき、[[phab:T361661|フィードバックをお寄せください]]。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MinervaスキンのいくつかのCSSが削除され、コミュニティの設定が簡単になりました。インターフェース管理者は、モバイルデバイスでのクラス: <bdi lang="zxx" dir="ltr"><code>.collapsible</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.multicol</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.reflist</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.coordinates</code></bdi>{{int:comma-separator/ja}}<bdi lang="zxx" dir="ltr"><code>.topicon</code></bdi>に関連する要素のレンダリングを確認してください。必要に応じて[[phab:T361659|代替CSSに関する詳細を参照してください]]。
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.7|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-05-28|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-05-29|ja}}に、その他のウィキには{{#time:n月j日|2024-05-30|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* ローカルアカウントがまだ作成されていないウィキにアクセスすると、ローカルルールにより、編集フィルターなどでアカウントが自動作成できない場合があります。 今週から、MediaWikiは、そのようなローカルルールを上書きできるかどうかを評価する際、グローバル権限を考慮します。 [https://phabricator.wikimedia.org/T316303]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/22|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年5月28日 (火) 00:15 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26832205 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-23 ==
<section begin="technews-2024-W23"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/23|翻訳]]されています。
'''最近の更新'''
* 管理者は、JavaScriptを使用せずにツールメニューに項目を追加できるようになりました。[[mw:Manual:Interface/Sidebar#Add or remove toolbox sections|マニュアルをご覧ください]]。 [https://phabricator.wikimedia.org/T6086]
* WikiHieroの追跡カテゴリの定義のメッセージ名が<bdi lang="zxx" dir="ltr"><code>MediaWiki:Wikhiero-usage-tracking-category</code></bdi>から<bdi lang="zxx" dir="ltr"><code>MediaWiki:Wikihiero-usage-tracking-category</code></bdi>に変更されました。 [https://gerrit.wikimedia.org/r/c/mediawiki/extensions/wikihiero/+/1035855]
* 新しいウィキが作成されました: [[d:Q5317225|中央ドゥスン語]]版{{int:project-localized-name-group-wikipedia}} ([[w:dtp:|<code>w:dtp:</code>]]) [https://phabricator.wikimedia.org/T365220]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.8|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-04|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-05|ja}}に、その他のウィキには{{#time:n月j日|2024-06-06|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
'''今後の予定'''
* 来週、2022年版ベクター外装を規定で使用しているウィキでは、ログアウト状態のデスクトップ利用者がフォントサイズを選べるようになり、規定のフォントサイズも大きくなります。これは、ウィキメディアプロジェクトの可読性向上を目的としています。[[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-06 deployments|詳細はこちら]]。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/23|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月3日 (月) 22:35 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26844397 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-24 ==
<section begin="technews-2024-W24"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/24|翻訳]]されています。
'''最近の更新'''
* SVGファイルのレンダリングに使うソフトウェアは更新され、SVGレンダリングに関する長年のバグが多数、修正済みです。 [https://phabricator.wikimedia.org/T265549]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] アクセシビリティ向上の一環として、全ての見出しに使われるHTMLが[[mw:Heading HTML changes|変更されます]]。先週、一部の外装(レガシー ベクター (2010年版)とMinervaNeue)で変更されました。これらの外装でガジェットをそれぞれのウィキでテストし、[[phab:T13555|問題があれば報告して]]、ベクター (2022年版)でこの変更が行われる前に解決できるようご協力ください。開発者はツール開発者の役に立つようなら[[phab:T337286|節見出しにボタンを追加するガジェットAPI]]導入を引き続き検討中で、この点についてどんな情報でも提供をお待ちしています。
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 先週、[[mw:Special:MyLanguage/Parsoid|Parsoid]]による引用に使われるHTMLマークアップが変更されました。Parsoidが以前<bdi lang="zxx" dir="ltr"><code>mw-reference-text</code></bdi>クラスを生成していた場所には、現在では古いパーサーとの互換性を高めるために<bdi lang="zxx" dir="ltr"><code>reference-text</code></bdi>クラスも生成します。[[mw:Specs/HTML/2.8.0/Extensions/Cite/Announcement|詳細は発表を参照してください]]。 [https://gerrit.wikimedia.org/r/1036705]
'''問題点'''
* コンテンツ翻訳拡張機能にバグが見つかり、影響でツールのメニューの表示位置が正しくありませんでした。これは修正済みです。 [https://phabricator.wikimedia.org/T366374]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.9|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-11|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-12|ja}}に、その他のウィキには{{#time:n月j日|2024-06-13|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] MediaWikiの新しいバージョンではHTMLマークアップが変更されています: [[mw:Special:MyLanguage/Parsoid|Parsoid]]は、古いパーサーとの互換性を高めるために名前付き参照と名前なし参照の両方に対して<bdi lang="zxx" dir="ltr"><code><nowiki><span class="mw-cite-backlink"></nowiki></code></bdi>を生成するようになりました。インターフェース管理者は、引用に関するガジェットが新しいマークアップに互換性があることを確認してください。[[mw:Specs/HTML/2.8.0/Extensions/Cite/Announcement|詳細は発表を参照してください]]。 [https://gerrit.wikimedia.org/r/1035809]
* <bdi lang="zxx" dir="ltr"><code><nowiki><translate></nowiki></code></bdi> システムを採用する多言語版のウィキ類には、陳腐化したであろう翻訳文をピンクの背景で示し更新または査読が済むと解除する機能があります。今週から翻訳査読を記録しており、またコミュニティから[[m:Special:MyLanguage/Requesting wiki configuration changes|要請がある]]場合には、翻訳査読に必要な新しいユーザー権限を設定します。 [https://phabricator.wikimedia.org/T49177]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/24|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月10日 (月) 20:20 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26893898 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-25 ==
<section begin="technews-2024-W25"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/25|翻訳]]されています。
'''最近の更新'''
* ビジュアルエディターで外部リンクを追加する際、リンク先のドメインが当該ウィキプロジェクト上でブラックリスト登録されている場合、通知が表示されるようになりました。詳細は[[mw:Special:MyLanguage/Edit_check#11_June_2024|編集チェック]]をご覧ください。 [https://phabricator.wikimedia.org/T366751]
* 新しい拡張機能である[[mw:Special:MyLanguage/Extension:CommunityConfiguration|CommunityConfiguration]]が[[testwiki:Special:CommunityConfiguration|テストウィキ]]で使用可能になりました。これを使うと、ウィキのニーズに合わせてローカルコミュニティが特定の機能をカスタマイズできます。現在はGrowthの機能にのみ対応していますが、将来的には[[mw:Special:MyLanguage/Community_configuration#Use_cases|CommunityConfiguration使用ケース]]にリストアップされた機能にも対応します。 [https://phabricator.wikimedia.org/T323811][https://phabricator.wikimedia.org/T360954]
* ダークモードの[[Special:Preferences#mw-prefsection-betafeatures|ベータ機能]]がカテゴリおよびヘルプページで使用可能になり、より多くの特別ページにも対応しました。ただし、現在のバージョンではコントラスト比に問題がある場合があります。バグを発見した場合は[[mw:Talk:Reading/Web/Accessibility_for_reading|開発プロジェクトのトークページ]]へ報告をお願いします。 [https://phabricator.wikimedia.org/T366370]
'''問題点'''
* [[File:Octicons-tools.svg|12px|link=|alt=|高度]] 先週、クラウドサービスのツールが25分間使用不能になりました。これは、データセンター内のハードウェアケーブルの故障によるものでした。 [https://wikitech.wikimedia.org/wiki/Incidents/2024-06-11_WMCS_Ceph]
* 先週、Vector 2022外装のスタイル更新がありました。テンプレート、ハットノート、画像に想定外の不具合を生じさせたため、関連した一部の変更は差し戻されました。なお、画像関連の不具合については概ね解消済みです。残存した不具合を発見した場合、[[phab:T367463|こちらに報告してください]]。 [https://phabricator.wikimedia.org/T367480]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.10|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-18|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-19|ja}}に、その他のウィキには{{#time:n月j日|2024-06-20|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 6月18日から、[[mw:Special:MyLanguage/Help:Edit check#ref|出典編集チェック]]が[[phab:T361843|特定のウィキペディアプロジェクト]]に導入されます。この機能は、初心者の手助けおよび編集パトローラーの補助を目的としており、無出典で記事に内容を追加する編集者に対し出典の明記を案内できます。11のウィキ上で行ったテストでは、出典チェックが表示される環境下において出典の追加数が2倍以上になりました。[[mw:Special:MyLanguage/Edit check/Configuration|コミュニティによる設定変更]]にも対応しています。 [https://phabricator.wikimedia.org/T361843]<!-- NOTE: THE DIFF BLOG WILL BE PUBLISHED ON MONDAY -->
* 火曜日の10~12時 (UTC) 頃、約2時間[[m:Special:MyLanguage/Mailing_lists|メーリングリスト]]が使用不能になります。これは、新しいサーバーへの移行作業とソフトウェアのアップグレードによるものです。 [https://phabricator.wikimedia.org/T367521]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/25|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月17日 (月) 23:49 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26911987 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-26 ==
<section begin="technews-2024-W26"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/26|翻訳]]されています。
'''最近の更新'''
* 先週、差分で表示されるテキストの背景色と、バイト数変更を表示する文字の色が変更されました。これらの変更は、ライトモードとダークモードの両方で文字を読みやすくすることを目的としており、アクセシビリティを向上させるための大きな取り組みの一部です。コメントや質問は、[[mw:Talk:Reading/Web/Accessibility for reading|プロジェクトの議論ページ]]で共有できます。 [https://phabricator.wikimedia.org/T361717]
* 先週、訪問済みリンク<!--visited-links-->、ホバーリンク<!--hovered-links-->、アクティブリンク<!--active-links-->に使用されるテキストの色もわずかに変更され、ライトモードとダークモードの両方でアクセシビリティが向上しました。 [https://phabricator.wikimedia.org/T366515]
'''問題点'''
* コメントのタイムスタンプをクリックすると、[[mw:Special:MyLanguage/Help:DiscussionTools#Talk pages permalinking|そのコメント固有のリンク]]をコピーできます。しかし[[mw:Talk pages project/Permalinks|この機能]]はトピックのタイトルが長く、リンクがウィキテキストリンクとして使用されている場合は必ずしも機能しませんでした。この問題は修正されました。バグを報告してくださったLofhi氏に感謝します。 [https://phabricator.wikimedia.org/T356196]
'''今週の更新'''
* [[File:Octicons-sync.svg|12px|link=|alt=|定例]] [[mw:MediaWiki 1.43/wmf.11|新しいバージョン]]のMediaWikiソフトウェアが稼働します。テストウィキとMediaWiki.orgは{{#time:n月j日|2024-06-25|ja}}に、ウィキペディア以外のプロジェクトと一部のウィキペディアは{{#time:n月j日|2024-06-26|ja}}に、その他のウィキには{{#time:n月j日|2024-06-27|ja}}に展開されます([[mw:MediaWiki 1.43/Roadmap|工程表はこちら]])。 [https://wikitech.wikimedia.org/wiki/Deployments/Train][https://wikitech.wikimedia.org/wiki/Deployments/Yearly_calendar]
* 6月26日から英語版ウィキペディアでもすべての議論ページのコメントのタイムスタンプがリンクとなり、すべてのウィキでこの機能が利用できるようになります。このリンクはそのコメントへの固有のリンクになっています。そのため、コメントが別の場所に移動されたとしても、リンク先のコメントを見つけることができます。この機能の詳細については、[[DiffBlog:/2024/01/29/talk-page-permalinks-dont-lose-your-threads/|Diff]]または[[mw:Special:MyLanguage/Help:DiscussionTools#Talk pages permalinking|MediaWiki]]を参照してください。 [https://phabricator.wikimedia.org/T365974]
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/26|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年6月24日 (月) 22:33 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=26989424 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-27 ==
<section begin="technews-2024-W27"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/27|翻訳]]されています。
'''最近の更新'''
* 今後の3週間で、非ログイン利用者を含む全ての利用者がダークモードを使用可能になります。(機能導入はモバイルウェブ版から開始します。)これにより、[[m:Special:MyLanguage/Community_Wishlist_Survey_2023/Reading/Dark_mode|コミュニティ要望調査で高優先度の項目]]の1つが達成され、低コントラスト下および低画面光度下での閲覧環境が向上します。この更新の一環として、ダークモードは利用者ページおよびポータル上でも使用可能になります。詳しくは、[[mw:Special:MyLanguage/Reading/Web/Accessibility_for_reading/Updates#June_2024:_Typography_and_dark_mode_deployments,_new_global_preferences|ウェブチームによるアップデート情報]]をご覧ください。 [https://phabricator.wikimedia.org/T366364]
* 財団の開発者チームにより、[[m:Special:GlobalPreferences#mw-prefsection-rendering-skin-skin-prefs|テキストサイズとダークモードのグローバル個人設定]]がログイン利用者向けに導入されました。これにより、グローバルに活動をしている利用者は、一度の設定変更で全てのウィキの閲覧環境を整えることができます。例として、グローバル個人設定でライトモードまたはダークモードの選択を一度行えば、その設定を全てのウィキに反映させることができます。 [https://phabricator.wikimedia.org/T341278]
* 直近のコードフレームワークのアップデートにより、あなたが非常に古いウェブブラウザを使用している場合、今後ウィキメディアのウィキで一部の機能が動作しなくなる可能性があります。影響を受けるブラウザは、Internet Explorer 11や、2016年以前のバージョンのChrome、Firefox、Safariなどが該当します。一方、この変更により新しい[[d:Q46441|CSS]]機能が使用可能になり、バックグラウンドで実行されるコードの容量も減少します。 [https://phabricator.wikimedia.org/T288287][https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:How_to_make_a_MediaWiki_skin#Using_CSS_variables_for_supporting_different_themes_e.g._dark_mode]
* 管理者は、[[mw:Special:MyLanguage/Community Configuration|CommunityConfiguration]]を使用してローカルウィキの設定の一部をカスタマイズできます。CommunityConfigurationは、それぞれのウィキには固有のニーズが存在することを受け作成されました。現時点では、管理者は[[mw:Special:MyLanguage/Growth/Feature_summary|Growth機能]]の設定を変更できるため、新規利用者の勧誘や存置に役立ててください。今後数か月の間に、Growth以外の機能にも対応予定です。 [https://phabricator.wikimedia.org/T366458]
* [[w:ja:Unicode|ユニコード規格]]関連の言語課題に興味がある方向けに、[[mw:Talk:WMF membership with Unicode Consortium|議論の場(MediaWiki.org)]]が設けられました。ウィキメディア財団は現在[[mw:Special:MyLanguage/WMF membership with Unicode Consortium|ユニコード・コンソーシアムのメンバー]]となっており、上記の場で提示された課題をレビューの上、適宜コンソーシアムに提起することができます。
* 新しいウィキが作成されました: [[d:Q2891049|バタク・マンダイリン語]]版{{int:project-localized-name-group-wikipedia}} ([[w:btm:|<code>w:btm:</code>]]) [https://phabricator.wikimedia.org/T368038]
'''問題点'''
* 開発チームのバグ修正により、ビジュアルエディターの出典プレピュー内に表示されるリンクがクリック可能な状態に戻りました。 [https://phabricator.wikimedia.org/T368119]
'''今後の予定'''
* [https://wikimediafoundation.limesurvey.net/758713?lang=ja 技術ニュースの向上を目的とした短いアンケートにご協力ください]。様々な閲覧者のニーズにより良く応えることを目標にしています。このアンケートは2週間回答可能で、[https://foundation.wikimedia.org/wiki/Legal:Tech_News_Survey_2024_Privacy_Statement プライバシー声明]が適用されます。一部については、翻訳版も利用可能です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/27|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月1日 (月) 23:59 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27038456 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-28 ==
<section begin="technews-2024-W28"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/28|翻訳]]されています。
'''最近の更新'''
* ウィキメディア財団は新しいタスクフォースを結成し、無効化されたグラフを[[mw:Special:MyLanguage/Extension:Chart/Project|より安全で使いやすく拡張可能なチャート]]で置き換えようと取り組んでいます。[[mw:Special:MyLanguage/Newsletter:Chart Project|ニュースレターに登録する]]と、プロジェクトの新しいアップデートやチャートに関するその他のニュースを受け取ることができます。
* [[m:Special:MyLanguage/CampaignEvents|CampaignEvents]]の拡張機能がメタウィキ、イグボ語版ウィキペディア、スワヒリ語版ウィキペディアで利用可能になり、リクエストに応じて他のウィキにも導入することができます。この拡張機能はイベントの管理と可視化を支援し、イベント登録ツールなどのツールを主催者が使用できるようになります。この拡張機能の導入状況、および導入リクエストの方法についての詳細はメタウィキの[[m:Special:MyLanguage/CampaignEvents/Deployment_status|CampaignEventsページ]]をご覧ください。
* iOS版ウィキペディアアプリに[[mw:Special:MyLanguage/Wikimedia Apps/iOS Suggested edits#Add an image|画像の追加]]機能が追加されました。この機能は、50回超の編集歴のある方が利用可能です。「規模は小さくても有益な編集」の手助けになるでしょう。
* MediaWikiコアの開発にお力添えいただき、誠にありがとうございます。昨年と比較し、[[mw:MediaWiki Product Insights/Contributor retention and growth|5パッチ超の貢献のある開発者の割合が25%増加しました]]。ウィキメディアプロジェクトのプラットフォームは、維持管理の面でこれらの貢献に大きく支えられています。
'''問題点'''
* ベクター (2022年版)外装のタブバーに表示される存在しない議論ページへのリンクが、赤色ではなく青色になっていた問題は[[phab:T367982|修正されました]]。
'''今後の予定'''
* 信頼と安全製品チームはツールやワークフローにできるだけ影響を与えずに[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|臨時アカウント]]を導入したいと考えています。ガジェットやユーザースクリプトのメンテナンス者を含む開発者は、臨時アカウントに対応できるようにツールの機能やコードを更新してください。チームは更新方法を説明する[[mw:Trust and Safety Product/Temporary Accounts/For developers|ドキュメントを作成しました]]。[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers/2024-04 CTA|詳細はこちら]]。
'''技術ニュース調査'''
* [https://wikimediafoundation.limesurvey.net/758713?lang=ja 技術ニュースの向上を目的とした短いアンケートにご協力ください]。様々な閲覧者のニーズにより良く応えることを目標にしています。このアンケートはあと1週間回答可能で、[https://foundation.wikimedia.org/wiki/Legal:Tech_News_Survey_2024_Privacy_Statement プライバシー声明]が適用されます。一部については、翻訳版も利用可能です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/28|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W28"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月8日 (月) 21:32 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27080357 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-29 ==
<section begin="technews-2024-W29"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/29|翻訳]]されています。
'''技術ニュースのアンケート'''
* [https://wikimediafoundation.limesurvey.net/758713?lang=ja 技術ニュースの向上を目的とした短いアンケートにご協力ください]。様々な閲覧者のニーズにより良く応えることを目標にしています。このアンケートはあと3日回答可能で、[https://foundation.wikimedia.org/wiki/Legal:Tech_News_Survey_2024_Privacy_Statement プライバシー声明]が適用されます。一部については、翻訳版も利用可能です。
'''最近の更新'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] ウィキメディア財団は、ソフトウェアの開発プラットフォームとして引き続き[[mw:Special:MyLanguage/Gerrit|Gerrit]]と[[mw:Special:MyLanguage/GitLab|GitLab]]の両方をサポートすることを、6月24日付けで公式に決定しました。GerritとGitLabは、ウィキプロジェクトを構築するMediaWikiソフトウェアの開発、レビュー、展開に用いられているコードリポジトリで、編集者がコンテンツを作成し改善するためにも用いられています。この決定により、開発者の生産性が確保され、コードレビューにおける様々な異なるニーズへの対応が可能になります。詳細は[[mw:GitLab/Migration status|移行状況]]ページを参照してください。
* ウィキメディア財団は、[[m:Special:MyLanguage/Product and Technology Advisory Council/Proposal|製品・技術評議委員会]] (Product and Technology Advisory Council; PTAC) のメンバーを募集しています。このグループは技術系の貢献者とウィキメディア財団を結び、より強固で将来性のある技術プラットフォームを共同で定義することを目標としています。委員メンバーは、ウィキメディア運動の製品と技術活動を評価し、助言することで、複数世代にわたるプロジェクトの開発を支援します。評議委員会は、世界中のあらゆる地域・あらゆるウィキメディアプロジェクトからの技術者を歓迎します。[[m:Special:MyLanguage/Product and Technology Advisory Council/Proposal#Joining the PTAC as a technical volunteer|8月10日まで応募が可能です]]。
* Android版ウィキペディアアプリに[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android/Anti Vandalism|編集巡回]]機能が追加されました。この機能は、巻き戻し者権限を持つ利用者が使用可能で、最近の更新の新しいフィード、関連する取り消しや巻き戻しリンク、トークページ投稿用の固定メッセージ作成・保存機能などを備えています。巻き戻し者以外も当機能を開放する要望がご利用のウィキプロジェクトで出た場合、[[mw:Special:MyLanguage/Wikimedia Apps/Team/Android#Contact us|開発チームへご連絡ください]]。[[diffblog:2024/07/10/ِaddressing-vandalism-with-a-tap-the-journey-of-introducing-the-patrolling-feature-in-the-mobile-app/|『ディフ』の公式ブログに当機能に関する詳細記事があります]]。
* [[m:Special:MyLanguage/The_Wikipedia_Library|ウィキペディア図書館]]へのアクセス権を持つ方は、SpringerLinksの非オープンアクセスコンテンツを再び利用することができるようになりました。これは、財団による[[phab:T368865|先方への交渉]]により実現しました。[[m:Tech/News/Recently_resolved_community_tasks|本件および先週対応が完了したコミュニティ提出の21件のタスクの詳細をこちらで確認できます]]。
'''今週の更新'''
* 今週、[[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-07 deployments|様々なウィキペディアプロジェクトでダークモードが使用可能になります]]。これは、デスクトップ版、モバイル版、ログイン利用者、IP利用者に関わらず全ての環境で使用できます。インターフェース管理者およびユーザースクリプトの開発者は、ガジェット及びスクリプトをダークモード環境下で使用した際、独自の色指定などがダークモードと競合しないかの確認をお願いします。[[mw:Special:MyLanguage/Recommendations for night mode compatibility on Wikimedia wikis|ダークモード互換に関する推奨事項]]もご確認ください。
'''今後の予定'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 職員、ツールメンテナ、ソフトウェア開発チームの方々は、来週テストウィキで行われる[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|仮アカウント]]機能のテストにご参加ください。仮アカウントは、ユーザーのプライバシー向上を目的とした新機能です。ただし、各プロジェクトへの展開スケジュールは現時点では未確定です。[[mw:Talk:Trust and Safety Product/Temporary Accounts|この機能に関するご意見・ご質問をプロジェクトのトークページで受け付けています]]。 [https://phabricator.wikimedia.org/T348895]
* クロスウィキにファイルをアップロードされた経験のある方や、他者にその方法を指南した経験のある方は、ウィキメディア・コモンズにおける議論に是非ご参加ください。現在、コモンズコミュニティは、クロスウィキアップロード機能およびアップロードダイアログの機能の使用権限を自動承認利用者に制限することを検討しています。これは、当該機能を使いアップロードされたファイルが頻繁に著作権侵害を含んでいることに起因しています。本問題の要約は[[c:Special:MyLanguage/Commons:Cross-wiki upload|Commons:クロスウィキアップロード]]にて、議論は[[c:Commons:Village pump/Proposals#Deactivate cross-wiki uploads for new users|Commons:井戸端]]にて参照可能です。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/29|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]'' [[m:Special:MyLanguage/Wikimedia Foundation Bulletin|ウィキメディア財団ニュースレター]]にてその他のニュースも入手可能です。
</div><section end="technews-2024-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月16日 (火) 01:31 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27124561 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-30 ==
<section begin="technews-2024-W30"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/30|翻訳]]されています。
<span lang="en" dir="ltr" class="mw-content-ltr">'''Feature News'''</span>
* スチュワードがアカウントを[[:m:Special:MyLanguage/Global_blocks|グローバルブロック]]できるようになりました。([[phab:T17294|変更前]]、グローバルブロックはIPアドレスとIPレンジのみを対象として指定可能でした。)アカウントのグローバルブロックは、対象ユーザーをログアウトさせたくない場合に有用です。なお、機能は似ているものの対象ユーザーを強制ログアウトさせる[[:m:Special:MyLanguage/Global_locks|グローバルロック]]は、今回の変更による影響を受けません(以降もそのまま使用できます)。新しいグローバルブロック機能は、非登録編集者のプライバシー向上を目指しIPアドレスを別名称に置換する、[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|仮アカウント]]プロジェクトの一部です。
* 今週中に、(「承認待ちの変更」で知られる)[[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevs]]のインタフェースが改善され、MediaWikiの他のインターフェースや[[mw:Special:MyLanguage/Codex|ウィキメディアのデザインシステム]]と一貫性があるかたちに修正されます。FlaggedRevsのインターフェースは、モバイル版および[[mw:Special:MyLanguage/Skin:MinervaNeue|Minervaスキン]]で一貫性がなかったため、WMF Growthチームとボランティア開発者によってこれが修正され、[[mw:Special:MyLanguage/Codex|Codex]]への移植が行われました。 [https://phabricator.wikimedia.org/T191156]
* ウィキメディアのサイト利用者は、[[m:Special:GlobalVanishRequest|GlobalVanishRequest]]にてアカウントの消去依頼ができるようになりました。この機能は、利用者が永久に編集を中止する場合に使用可能です。この操作を行うと、過去の編集履歴などを隠す助けとなり、プライバシーが保護されます。処理が完了すると、アカウントはロックされ名前が変更されます。 [https://phabricator.wikimedia.org/T367329]
* 携帯端末を使用してウィキペディアにおける荒らしの監視や対抗措置を講じたことがある方は、[https://diff.wikimedia.org/2024/07/10/%d9%90addressing-vandalism-with-a-tap-the-journey-of-introducing-the-patrolling-feature-in-the-mobile-app/ Diffブログにおけるモバイル版アプリのパトロール機能に関する記事]を是非ご覧ください。最近の更新フィードにおけるスワイプ機能や、利用者トークページ用の固定メッセージライブラリ機能について解説しています。
* <span lang="en" dir="ltr" class="mw-content-ltr">Wikimedia contributors and GLAM (galleries, libraries, archives, and museums) organisations can now learn and measure the impact Wikimedia Commons is having towards creating quality encyclopedic content using the [https://doc.wikimedia.org/generated-data-platform/aqs/analytics-api/reference/commons.html Commons Impact Metrics] analytics dashboard. The dashboard offers organizations analytics on things like monthly edits in a category, the most viewed files, and which Wikimedia articles are using Commons images. As a result of these new data dumps, GLAM organisation can more reliably measure their return on investment for programs bringing content into the digital Commons.</span> [https://diff.wikimedia.org/2024/07/19/commons-impact-metrics-now-available-via-data-dumps-and-api/]
<span lang="en" dir="ltr" class="mw-content-ltr">'''Project Updates'''</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Come share your ideas for improving the wikis on the newly reopened [[m:Special:MyLanguage/Community Wishlist|Community Wishlist]]. The Community Wishlist is Wikimedia’s forum for volunteers to share ideas (called wishes) to improve how the wikis work. The new version of the wishlist is always open, works with both wikitext and Visual Editor, and allows wishes in any language.</span>
<span lang="en" dir="ltr" class="mw-content-ltr">'''Learn more'''</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Have you ever wondered how Wikimedia software works across over 300 languages? This is 253 languages more than the Google Chrome interface, and it's no accident. The Language and Product Localization Team at the Wikimedia Foundation supports your work by adapting all the tools and interfaces in the MediaWiki software so that contributors in our movement who translate pages and strings can translate them and have the sites in all languages. Read more about the team and their upcoming work on [https://diff.wikimedia.org/2024/07/17/building-towards-a-robust-multilingual-knowledge-ecosystem-for-the-wikimedia-movement/ Diff].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">How can Wikimedia build innovative and experimental products while maintaining such heavily used websites? A recent [https://diff.wikimedia.org/2024/07/09/on-the-value-of-experimentation/ blog post] by WMF staff Johan Jönsson highlights the work of the [[m:Future Audiences#Objectives and Key Results|WMF Future Audience initiative]], where the goal is not to build polished products but test out new ideas, such as a [[m:Future_Audiences/Experiments: conversational/generative AI|ChatGPT plugin]] and [[m:Future_Audiences/Experiment:Add a Fact|Add a Fact]], to help take Wikimedia into the future.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/30|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]'' [[m:Special:MyLanguage/Wikimedia Foundation Bulletin|ウィキメディア財団ニュースレター]]にてその他のニュースも入手可能です。
</div><section end="technews-2024-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月23日 (火) 00:05 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27142915 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-31 ==
<section begin="technews-2024-W31"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/31|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Feature news</span>'''
* ヒンディー語やマニプリ語、東アラビア語など、数字にラテン文字以外の文字を使用する言語でビジュアルエディターを使用している編集者は、脚注番号のフォーマットが変更されていることにお気づきかもしれません。これは、新しいサブ・リファレンス機能の準備に伴うもので、また、ビジュアルエディターでの一般的なナンバリングの問題も修正されます。もしこの変更に関連する問題があなたのウィキで発生した場合、[[m:Talk:WMDE Technical Wishes/Sub-referencing|プロジェクトの議論ページ]]で詳細を共有してください。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Bugs status</span>'''
* 先週、一部のログイン利用者が一時的にページを編集したり読み込んだりすることができませんでした。[[phab:T370304|これらのエラー]]は、主に新しい[[mw:Special:MyLanguage/Help:Extension:Linter|linter]]ルールの追加によるもので、これによりキャッシュの問題を引き起こしたことで発生しました。現在は修正が適用されており、調査が続けられています。
* 利用者は[[mw:Special:MyLanguage/Trust and Safety Product/IP Info|IP情報ツール]]を使用して、IPアドレスに関する情報を手に入れることができます。このツールは、個人設定のベータ版機能に提供されています。このツールは先週、数日間利用ができませんでしたが、修正され、現在は利用できます。バグを報告してくださったShizhaoさんに感謝します。これについておよび先週解決された[[m:Tech/News/Recently resolved community tasks#2024-07-25|ほかの28個のタスク]]を読むことができます。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Project updates</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">There are new features and improvements to Phabricator from the Release Engineering and Collaboration Services teams, and some volunteers, including: the search systems, the new task creation system, the login systems, the translation setup which has resulted in support for more languages (thanks to Pppery), and fixes for many edge-case errors. You can [[phab:phame/post/view/316/iterative_improvements/|read details about these and other improvements in this summary]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">There is an [[mw:Special:MyLanguage/Extension:Chart/Project/Updates|update on the Charts project]]. The team has decided which visualization library to use, which chart types to start focusing on, and where to store chart definitions.</span>
* 新しいウィキが作成されました: [[d:Q9056|チェコ語]]版{{int:project-localized-name-group-wikivoyage}} ([[voy:cs:|<code>voy:cs:</code>]]) [https://phabricator.wikimedia.org/T370905]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Learn more</span>'''
* [[diffblog:2024/07/26/the-journey-to-open-our-first-data-center-in-south-america/|新しいウィキメディア財団データセンター]]がブラジルのサンパウロにつくられ、読み込み時間を短縮するのに役立たれています。
* <span lang="en" dir="ltr" class="mw-content-ltr">There is new [[diffblog:2024/07/22/the-perplexing-process-of-uploading-images-to-wikipedia/|user research]] on problems with the process of uploading images.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Commons Impact Metrics are [[diffblog:2024/07/19/commons-impact-metrics-now-available-via-data-dumps-and-api/|now available]] via data dumps and API.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The latest quarterly [[mw:Technical Community Newsletter/2024/July|Technical Community Newsletter]] is now available.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/31|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年7月29日 (月) 23:11 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27164109 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-32 ==
<section begin="technews-2024-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/32|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Feature news</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Two new parser functions will be available this week: <code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#dir|#dir]]<nowiki>}}</nowiki></code> and <code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#bcp47|#bcp47]]<nowiki>}}</nowiki></code>. These will reduce the need for <code>Template:Dir</code> and <code>Template:BCP47</code> on Commons and allow us to [[phab:T343131|drop 100 million rows]] from the "what links here" database. Editors at any wiki that use these templates, can help by replacing the templates with these new functions. The templates at Commons will be updated during the Hackathon at Wikimania.</span> [https://phabricator.wikimedia.org/T359761][https://phabricator.wikimedia.org/T366623]
* コミュニティは[[mw:Special:MyLanguage/Help:VisualEditor/FAQ#WPNS|既知の制限]]を理解していれば、議論系名前区間全体(''Wikipedia:''や''Wikisource:''など)でのビジュアルエディターの使用を有効化することを依頼できます。議論では、これらの名前空間で既に[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]を利用できます。
* 翻訳作業の [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3ATimeline-tracking-category&namespace=8 TranslateWiki]では、追跡カテゴリの「タイムラインを使用するページ」 "Pages using Timeline" を改名して「EasyTimeline拡張機能を使用するページ」も呼ぶことになりました。ローカルでカテゴリを自作したウィキでは、この変更に合わせてローカルの製作物の改名をお願いします。
'''プロジェクト更新'''
* ウィキプロジェクトや同様のウィキ上のコラボレーションの組織化に協力する利用者は、キャンペーンチームやプログラムチームにコラボレーションの成功例をぜひ共有してください。[[m:Special:MyLanguage/Campaigns/WikiProjects|簡単なアンケート]]に回答するか、[[m:Talk:Campaigns/WikiProjects|議論ページ]]で共有できます。チームは特に、英語版以外のウィキで成功したコラボレーションに興味があります。
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 新しいパーサーは、今後数カ月以内に{{int:project-localized-name-group-wikivoyage}}のウィキに展開されます。{{int:project-localized-name-enwikivoyage}}と{{int:project-localized-name-hewikivoyage}}では先週、Parsoidに切り替えられました。詳細は[[mw:Parsoid/Parser_Unification|Parsoid/Parser Unification]]にあります。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Learn more</span>'''
* 今週開かれるウィキマニアには、200件超のセッションが組まれています。[[diffblog:2024/08/05/interested-in-product-and-tech-here-are-some-wikimania-sessions-you-dont-want-to-miss/|主要セッションのうち 製品技術分野に関連するものをまとめておきました]]。
* 最新の[[m:Special:MyLanguage/Wikimedia Foundation Bulletin/2024/07-02|ウィキメディア財団ニュースレター]]をご覧いただけます。
* 旬刊(年4回発行)の [[mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2024/July|言語と国際化ニュースレター]]の最新号が出ました。内容は右に通り。 翻訳対象ページの新しい設計の見た目。ウィキリーダーに対応した機械翻訳機能 MinT とは。翻訳ダンプの展開について。他にも盛りだくさん。
* 四半期ごとに発行される[[mw:Special:MyLanguage/Growth/Newsletters/31|Growth ニュース]]の最新版をご覧いただけます。
* 月ごとに発行される[[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/July 2024|MediaWiki Product Insights newsletter]]の最新版をご覧いただけます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月5日 (月) 20:44 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27233905 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-32 ==
<section begin="technews-2024-W32"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/32|翻訳]]されています。
'''機能の改変'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 今週、パーサ函数2件を新規に導入予定です:<code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#dir|#dir]]<nowiki>}}</nowiki></code> および <code><nowiki>{{</nowiki>[[mw:Special:MyLanguage/Help:Magic_words#bcp47|#bcp47]]<nowiki>}}</nowiki></code>。ウィキメディア・コモンズでは <code>Template:Dir</code> ならびに <code>Template:BCP47</code> の頻度を減らせるもので、「リンク元の記事」データベースから[[phab:T343131|除去できるのは 100 百万列]]にのぼる見込みです。コモンズのテンプレート類はウィキマニア会期中のハッカソンで作業の予定です。その他のウィキで活動する編集者には、これらのテンプレートが採用されている場合、既存のテンプレート類をこれら新規の函数と置換する作業をお願いします。 [https://phabricator.wikimedia.org/T359761][https://phabricator.wikimedia.org/T366623]
* コミュニティからビジュアル・エディターに関して、しばしば議論が発生する名前空間の全ページで有効化を依頼する場合は(たとえば接頭辞 ''Wikipedia:''や ''Wikisource:'' の名前空間で)、まず[[mw:Special:MyLanguage/Help:VisualEditor/FAQ#WPNS|既知の制限]]を理解してください。これらの名前空間では既に、議論用に[[mw:Special:MyLanguage/Help:DiscussionTools|議論ツール]]を導入済みです。
* 翻訳作業の [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3ATimeline-tracking-category&namespace=8 TranslateWiki]では、追跡カテゴリの「タイムラインを使用するページ」 "Pages using Timeline" を改名して「EasyTimeline拡張機能を使用するページ」と呼ぶことになりました。ローカルでカテゴリを自作したウィキでは、この変更に合わせてローカルの製作物の改名をお願いします。
'''プロジェクト更新'''
* ウィキプロジェクトや同様のウィキ上のコラボレーションの組織化に協力する利用者は、キャンペーンチームやプログラムチームにコラボレーションの成功例をぜひ共有してください。[[m:Special:MyLanguage/Campaigns/WikiProjects|簡単なアンケート]]に回答するか、[[m:Talk:Campaigns/WikiProjects|議論ページ]]で共有できます。チームは特に、英語版以外のウィキで成功したコラボレーションに興味があります。
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] 新しいパーサーは、今後数カ月以内に{{int:project-localized-name-group-wikivoyage}}のウィキに展開されます。{{int:project-localized-name-enwikivoyage}}と{{int:project-localized-name-hewikivoyage}}では先週、Parsoidに切り替えられました。詳細は[[mw:Parsoid/Parser_Unification|Parsoid/Parser Unification]]にあります。
'''詳細はこちら'''
* 今週開かれるウィキマニアには、200件超のセッションが組まれています。[[diffblog:2024/08/05/interested-in-product-and-tech-here-are-some-wikimania-sessions-you-dont-want-to-miss/|主要セッションのうち 製品技術分野に関連するものをまとめておきました]]。
* 最新の[[m:Special:MyLanguage/Wikimedia Foundation Bulletin/2024/07-02|ウィキメディア財団ニュースレター]]をご覧いただけます。
* 旬刊(年4回発行)の [[mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2024/July|言語と国際化ニュースレター]]の最新号が出ました。内容は右に通り。 翻訳対象ページの新しい設計の見た目。ウィキリーダーに対応した機械翻訳機能 MinT とは。翻訳ダンプの展開について。他にも盛りだくさん。
* 四半期ごとに発行される[[mw:Special:MyLanguage/Growth/Newsletters/31|Growth ニュース]]の最新版をご覧いただけます。
* 製品関連の月刊情報「[[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/July 2024|MediaWiki Product Insights newsletter]]」の最新版をご覧いただけます。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/32|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月6日 (火) 05:04 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27233905 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr" class="mw-content-ltr">Tech News: 2024-33</span> ==
<div lang="en" dir="ltr" class="mw-content-ltr">
<section begin="technews-2024-W33"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/33|Translations]] are available.
'''Feature news'''
* [[mw:Special:MyLanguage/Extension:AbuseFilter|AbuseFilter]] editors and maintainers can now [[mw:Special:MyLanguage/Extension:AbuseFilter/Actions#Show a CAPTCHA|make a CAPTCHA show if a filter matches an edit]]. This allows communities to quickly respond to spamming by automated bots. [https://phabricator.wikimedia.org/T20110]
* [[m:Special:MyLanguage/Stewards|Stewards]] can now specify if global blocks should prevent account creation. Before [[phab:T17273|this change]] by the [[mw:Special:MyLanguage/Trust and Safety Product|Trust and Safety Product]] Team, all global blocks would prevent account creation. This will allow stewards to reduce the unintended side-effects of global blocks on IP addresses.
'''Project updates'''
* [[wikitech:Help talk:Toolforge/Toolforge standards committee#August_2024_committee_nominations|Nominations are open on Wikitech]] for new members to refresh the [[wikitech:Help:Toolforge/Toolforge standards committee|Toolforge standards committee]]. The committee oversees the Toolforge [[wikitech:Help:Toolforge/Right to fork policy|Right to fork policy]] and [[wikitech:Help:Toolforge/Abandoned tool policy|Abandoned tool policy]] among other duties. Nominations will remain open until at least 2024-08-26.
* One new wiki has been created: a {{int:project-localized-name-group-wikipedia}} in [[d:Q2880037|West Coast Bajau]] ([[w:bdr:|<code>w:bdr:</code>]]) [https://phabricator.wikimedia.org/T371757]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/33|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W33"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月12日 (月) 23:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27253654 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-34 ==
<section begin="technews-2024-W34"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/34|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Feature news</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors who want to re-use references but with different details such as page numbers, will be able to do so by the end of 2024, using a new [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Sub-referencing in a nutshell|sub-referencing]] feature. You can read more [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|about the project]] and [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Test|how to test the prototype]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors using tracking categories to identify which pages use specific extensions may notice that six of the categories have been renamed to make them more easily understood and consistent. These categories are automatically added to pages that use specialized MediaWiki extensions. The affected names are for: [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Aintersection-category&namespace=8 DynamicPageList], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Akartographer-tracking-category&namespace=8 Kartographer], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Aphonos-tracking-category&namespace=8 Phonos], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Arss-tracking-category&namespace=8 RSS], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Ascore-use-category&namespace=8 Score], [https://translatewiki.net/wiki/Special:Translations?message=MediaWiki%3Awikihiero-usage-tracking-category&namespace=8 WikiHiero]. Wikis that have created the category locally should rename their local creation to match. Thanks to Pppery for these improvements.</span> [https://phabricator.wikimedia.org/T347324]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Technical volunteers who edit modules and want to get a list of the categories used on a page, can now do so using the <code><bdi lang="zxx" dir="ltr">categories</bdi></code> property of <code><bdi lang="zxx" dir="ltr">[[mediawikiwiki:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Title objects|mw.title objects]]</bdi></code>. This enables wikis to configure workflows such as category-specific edit notices. Thanks to SD001 for these improvements.</span> [https://phabricator.wikimedia.org/T50175][https://phabricator.wikimedia.org/T85372]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Bugs status</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Your help is needed to check if any pages need to be moved or deleted. A maintenance script was run to clean up unreachable pages (due to Unicode issues or introduction of new namespaces/namespace aliases). The script tried to find appropriate names for the pages (e.g. by following the Unicode changes or by moving pages whose titles on Wikipedia start with <code>Talk:WP:</code> so that their titles start with <code>Wikipedia talk:</code>), but it may have failed for some pages, and moved them to <bdi lang="zxx" dir="ltr">[[Special:PrefixIndex/T195546/]]</bdi> instead. Your community should check if any pages are listed there, and move them to the correct titles, or delete them if they are no longer needed. A full log (including pages for which appropriate names could be found) is available in [[phab:P67388]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors who volunteer as [[mw:Special:MyLanguage/Help:Growth/Mentorship|mentors]] to newcomers on their wiki are once again able to access lists of potential mentees who they can connect with to offer help and guidance. This functionality was restored thanks to [[phab:T372164|a bug fix]]. Thank you to Mbch331 for filing the bug report. You can read about that, and 18 other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].</span>
'''プロジェクトの最新ニュース'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The application deadline for the [[m:Special:MyLanguage/Product and Technology Advisory Council/Proposal|Product & Technology Advisory Council]] (PTAC) has been extended to September 16. Members will help by providing advice to Foundation Product and Technology leadership on short and long term plans, on complex strategic problems, and help to get feedback from more contributors and technical communities. Selected members should expect to spend roughly 5 hours per month for the Council, during the one year pilot. Please consider applying, and spread the word to volunteers you think would make a positive contribution to the committee.</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">Learn more</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:MyLanguage/Coolest Tool Award#2024 Winners|2024 Coolest Tool Awards]] were awarded at Wikimania, in seven categories. For example, one award went to the ISA Tool, used for adding structured data to files on Commons, which was recently improved during the [[m:Event:Wiki Mentor Africa ISA Hackathon 2024|Wiki Mentor Africa Hackathon]]. You can see video demonstrations of each tool at the awards page. Congratulations to this year's recipients, and thank you to all tool creators and maintainers.</span>
* [[m:Special:MyLanguage/Wikimedia Foundation Bulletin/2024/08-01|ウィキメディア財団ニュースレター]]の最新号が発行され、ウィキマニアのハイライトあれこれ、言語コミュニティの会議の予定やウィキメデイア運動から発信するその他のニュースが含まれています。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/34|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W34"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月20日 (火) 00:55 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27307284 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-35</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W35"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/35|Translations]] are available.
'''Feature news'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Administrators can now test the [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] feature on test2wiki. This was done to allow cross-wiki testing of temporary accounts, for when temporary accounts switch between projects. The feature was enabled on testwiki a few weeks ago. No further temporary account deployments are scheduled yet. Temporary Accounts is a project to create a new type of user account that replaces IP addresses of unregistered editors which are no longer made public. Please [[mw:Talk:Trust and Safety Product/Temporary Accounts|share your opinions and questions on the project talk page]].
* Later this week, editors at wikis that use [[mw:Special:MyLanguage/Extension:FlaggedRevs|FlaggedRevs]] (also known as "Pending Changes") may notice that the indicators at the top of articles have changed. This change makes the system more consistent with the rest of the MediaWiki interface. [https://phabricator.wikimedia.org/T191156]
'''Bugs status'''
* Editors who use the 2010 wikitext editor, and use the Character Insert buttons, will [[phab:T361465|no longer]] experience problems with the buttons adding content into the edit-summary instead of the edit-window. You can read more about that, and 26 other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].
'''Project updates'''
* [[File:Octicons-gift.svg|12px|link=|class=skin-invert|Wishlist item]] Please review and vote on [[m:Special:MyLanguage/Community Wishlist/Focus areas|Focus Areas]], which are groups of wishes that share a problem. Focus Areas were created for the newly reopened Community Wishlist, which is now open year-round for submissions. The first batch of focus areas are specific to moderator workflows, around welcoming newcomers, minimizing repetitive tasks, and prioritizing tasks. Once volunteers have reviewed and voted on focus areas, the Foundation will then review and select focus areas for prioritization.
* Do you have a project and are willing to provide a three (3) month mentorship for an intern? [[mw:Special:MyLanguage/Outreachy|Outreachy]] is a twice a year program for people to participate in a paid internship that will start in December 2024 and end in early March 2025, and they need mentors and projects to work on. Projects can be focused on coding or non-coding (design, documentation, translation, research). See the Outreachy page for more details, and a list of past projects since 2013.
'''Learn more'''
* If you're curious about the product and technology improvements made by the Wikimedia Foundation last year, read [[diffblog:2024/08/21/wikimedia-foundation-product-technology-improving-the-user-experience/|this recent highlights summary on Diff]].
* To learn more about the technology behind the Wikimedia projects, you can now watch sessions from the technology track at Wikimania 2024 on Commons. This week, check out:
** [[c:File:Wikimania 2024 - Ohrid - Day 2 - Community Configuration - Shaping On-Wiki Functionality Together.webm|Community Configuration - Shaping On-Wiki Functionality Together]] (55 mins) - about the [[mw:Special:MyLanguage/Community Configuration|Community Configuration]] project.
** [[c:File:Wikimania 2024 - Belgrade - Day 1 - Future of MediaWiki. A sustainable platform to support a collaborative user base and billions of page views.webm|Future of MediaWiki. A sustainable platform to support a collaborative user base and billions of page views]] (30 mins) - an overview for both technical and non technical audiences, covering some of the challenges and open questions, related to the [[mw:MediaWiki Product Insights|platform evolution, stewardship and developer experiences]] research.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/35|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W35"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年8月26日 (月) 20:34 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27341211 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-36</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W36"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/36|Translations]] are available.
'''Weekly highlight'''
* Editors and volunteer developers interested in data visualisation can now test the new software for charts. Its early version is available on beta Commons and beta Wikipedia. This is an important milestone before making charts available on regular wikis. You can [[mw:Special:MyLanguage/Extension:Chart/Project/Updates|read more about this project update]] and help to test the charts.
'''Feature news'''
* Editors who use the [[{{#special:Unusedtemplates}}]] page can now filter out pages which are expected to be there permanently, such as sandboxes, test-cases, and templates that are always substituted. Editors can add the new magic word [[mw:Special:MyLanguage/Help:Magic words#EXPECTUNUSEDTEMPLATE|<code dir="ltr"><nowiki>__EXPECTUNUSEDTEMPLATE__</nowiki></code>]] to a template page to hide it from the listing. Thanks to Sophivorus and DannyS712 for these improvements. [https://phabricator.wikimedia.org/T184633]
* Editors who use the New Topic tool on discussion pages, will [[phab:T334163|now be reminded]] to add a section header, which should help reduce the quantity of newcomers who add sections without a header. You can read more about that, and {{formatnum:28}} other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].
* Last week, some Toolforge tools had occasional connection problems. The cause is still being investigated, but the problems have been resolved for now. [https://phabricator.wikimedia.org/T373243]
* Translation administrators at multilingual wikis, when editing multiple translation units, can now easily mark which changes require updates to the translation. This is possible with the [[phab:T298852#10087288|new dropdown menu]].
'''Project updates'''
* A new draft text of a policy discussing the use of Wikimedia's APIs [[m:Special:MyLanguage/API Policy Update 2024|has been published on Meta-Wiki]]. The draft text does not reflect a change in policy around the APIs; instead, it is an attempt to codify existing API rules. Comments, questions, and suggestions are welcome on [[m:Talk:API Policy Update 2024|the proposed update’s talk page]] until September 13 or until those discussions have concluded.
'''Learn more'''
* To learn more about the technology behind the Wikimedia projects, you can now watch sessions from the technology track at Wikimania 2024 on Commons. This week, check out:
** [[c:File:Wikimania 2024 - Ohrid - Day 2 - Charts, the successor of Graphs - A secure and extensible tool for data visualization.webm|Charts, the successor of Graphs - A secure and extensible tool for data visualization]] (25 mins) – about the above-mentioned Charts project.
** [[c:File:Wikimania 2024 - Ohrid - Day 3 - State of Language Technology and Onboarding at Wikimedia.webm|State of Language Technology and Onboarding at Wikimedia]] (90 mins) – about some of the language tools that support Wikimedia sites, such as [[mw:Special:MyLanguage/Content translation|Content]]/[[mw:Special:MyLanguage/Content translation/Section translation|Section Translation]], [[mw:Special:MyLanguage/MinT|MinT]], and LanguageConverter; also the current state and future of languages onboarding. [https://phabricator.wikimedia.org/T368772]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/36|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W36"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月3日 (火) 01:08 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27390268 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-37</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W37"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/37|Translations]] are available.
'''Feature news'''
* Starting this week, the standard [[mw:Special:MyLanguage/Extension:CodeMirror|syntax highlighter]] will receive new colors that make them compatible in dark mode. This is the first of many changes to come as part of a major upgrade to syntax highlighting. You can learn more about what's to come on the [[mw:Special:MyLanguage/Help:Extension:CodeMirror|help page]]. [https://phabricator.wikimedia.org/T365311][https://phabricator.wikimedia.org/T259059]
* Editors of wikis using Wikidata will now be notified of only relevant Wikidata changes in their watchlist. This is because the Lua functions <bdi lang="zxx" dir="ltr"><code>entity:getSitelink()</code></bdi> and <bdi lang="zxx" dir="ltr"><code>mw.wikibase.getSitelink(qid)</code></bdi> will have their logic unified for tracking different aspects of sitelinks to reduce junk notifications from [[m:Wikidata For Wikimedia Projects/Projects/Watchlist Wikidata Sitelinks Tracking|inconsistent sitelinks tracking]]. [https://phabricator.wikimedia.org/T295356]
'''Project updates'''
* Users of all Wikis will have access to Wikimedia sites as read-only for a few minutes on September 25, starting at 15:00 UTC. This is a planned datacenter switchover for maintenance purposes. More information will be published in Tech News and will also be posted on individual wikis in the coming weeks. [https://phabricator.wikimedia.org/T370962]
* Contributors of [[phab:T363538#10123348|11 Wikipedias]], including English will have a new <bdi lang="zxx" dir="ltr"><code>MOS</code></bdi> namespace added to their Wikipedias. This improvement ensures that links beginning with <bdi lang="zxx" dir="ltr"><code>MOS:</code></bdi> (usually shortcuts to the [[w:en:Wikipedia:Manual of Style|Manual of Style]]) are not broken by [[w:en:Mooré|Mooré]] Wikipedia (language code <bdi lang="zxx" dir="ltr"><code>mos</code></bdi>). [https://phabricator.wikimedia.org/T363538]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/37|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W37"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月9日 (月) 18:53 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27424457 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-38 ==
<section begin="technews-2024-W38"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/38|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Improvements and Maintenance</span>'''
* [[File:Octicons-gift.svg|12px|link=|class=skin-invert|要望リスト]] <span lang="en" dir="ltr" class="mw-content-ltr">Editors interested in templates can help by reading the latest Wishlist focus area, [[m:Special:MyLanguage/Community Wishlist/Focus areas/Template recall and discovery|Template recall and discovery]], and share your feedback on the talkpage. This input helps the Community Tech team to decide the right technical approach to build. Everyone is also encouraged to continue adding [[m:Special:MyLanguage/Community Wishlist|new wishes]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The new automated [[{{#special:NamespaceInfo}}]] page helps editors understand which [[mw:Special:MyLanguage/Help:Namespaces|namespaces]] exist on each wiki, and some details about how they are configured. Thanks to DannyS712 for these improvements.</span> [https://phabricator.wikimedia.org/T263513]
* <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:Special:MyLanguage/Help:Edit check#Reference check|References Check]] is a feature that encourages editors to add a citation when they add a new paragraph to a Wikipedia article. For a short time, the corresponding tag "Edit Check (references) activated" was erroneously being applied to some edits outside of the main namespace. This has been fixed.</span> [https://phabricator.wikimedia.org/T373692]
* <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible for a wiki community to change the order in which a page’s categories are displayed on their wiki. By default, categories are displayed in the order they appear in the wikitext. Now, wikis with a consensus to do so can [[m:Special:MyLanguage/Requesting wiki configuration changes|request]] a configuration change to display them in alphabetical order.</span> [https://phabricator.wikimedia.org/T373480]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Tool authors can now access ToolsDB's [[wikitech:Portal:Data Services#ToolsDB|public databases]] from both [[m:Special:MyLanguage/Research:Quarry|Quarry]] and [[wikitech:Superset|Superset]]. Those databases have always been accessible to every [[wikitech:Portal:Toolforge|Toolforge]] user, but they are now more broadly accessible, as Quarry can be accessed by anyone with a Wikimedia account. In addition, Quarry's internal database can now be [[m:Special:MyLanguage/Research:Quarry#Querying Quarry's own database|queried from Quarry itself]]. This database contains information about all queries that are being run and starred by users in Quarry. This information was already public through the web interface, but you can now query it using SQL.</span> <span lang="en" dir="ltr" class="mw-content-ltr">You can read more about that, and {{formatnum:20}} other community-submitted tasks that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Any pages or tools that still use the very old CSS classes <bdi lang="zxx" dir="ltr"><code>mw-message-box</code></bdi> need to be updated. These old classes will be removed next week or soon afterwards. Editors can use a [https://global-search.toolforge.org/?q=mw-message-box®ex=1&namespaces=&title= global-search] to determine what needs to be changed. It is possible to use the newer <bdi lang="zxx" dir="ltr"><code>cdx-message</code></bdi> group of classes as a replacement (see [https://doc.wikimedia.org/codex/latest/components/demos/message.html#css-only-version the relevant Codex documentation], and [https://meta.wikimedia.org/w/index.php?title=Tech/Header&diff=prev&oldid=27449042 an example update]), but using locally defined onwiki classes would be best.</span> [https://phabricator.wikimedia.org/T374499]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Technical project updates</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Next week, all Wikimedia wikis will be read-only for a few minutes. This will start on September 25 at [https://zonestamp.toolforge.org/1727276400 15:00 UTC]. This is a planned datacenter switchover for maintenance purposes. [[m:Special:MyLanguage/Tech/Server switch|This maintenance process also targets other services.]]</span> <span lang="en" dir="ltr" class="mw-content-ltr">The previous switchover took 3 minutes, and the Site Reliability Engineering teams use many tools to make sure that this essential maintenance work happens as quickly as possible.</span> [https://phabricator.wikimedia.org/T370962]
'''<span lang="en" dir="ltr" class="mw-content-ltr">Tech in depth</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The latest monthly [[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/August 2024|MediaWiki Product Insights newsletter]] is available.</span> <span lang="en" dir="ltr" class="mw-content-ltr">This edition includes details about: research about [[mw:Special:MyLanguage/Manual:Hooks|hook]] handlers to help simplify development, research about performance improvements, work to improve the REST API for end-users, and more.</span>
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">To learn more about the technology behind the Wikimedia projects, you can now watch sessions from the technology track at Wikimania 2024 on Commons. This week, check out:</span>
** [[c:File:Wikimania 2024 - Auditorium Kyiv - Day 4 - Hackathon Showcase.webm|ハッカソンのショーケース]](45 分) - ハッカソン参加者による合計19件の短い発表をまとめ、それぞれが取り組むプロジェクトの解説として、たとえば管理スクリプトの自動試験法、動画切り出し用のコマンドライン・ツールや、さまざまなツール用のインターフェース改善など。Phabricator タスクには[[phab:T369234|詳細とリンク類を掲載しています]]。
** [[c:File:Co-Creating a Sustainable Future for the Toolforge Ecosystem.webm|Toolforge エコシステムの持続可能な将来を共同で築く]] (40 分) - Toolforge のツール管理者と利用者、サポーター対象の円卓会議で、主題はこのプラットフォームを持続可能に保ち提供するツール類の評価方法とは。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/38|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月17日 (火) 00:03 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27460876 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-39 ==
<section begin="technews-2024-W39"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/39|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Weekly highlight</span>'''
* どのウィキでも9月25日(水曜) [https://zonestamp.toolforge.org/1727276400 15:00 UTC] から数分間、[[m:Special:MyLanguage/Tech/Server switch|閲覧限定]]になる予定です。ウィキ類の閲覧に支障はありませんが、編集作業は停止します。ウィキメディア財団のサイト信頼性技術チームはこのように年に2回ずつ点検を実施して、自前のデータセンターのどれかに万一の事態が発生しても、ウィキ類の機能を保持するよう備えを整えています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Updates for editors</span>'''
[[File:Add alt text from a halfsheet, with the article behind.png|thumb|代替文おすすめ編集用のインターフェースの見た目]]
* <span lang="en" dir="ltr" class="mw-content-ltr">Editors who use the iOS Wikipedia app in Spanish, Portuguese, French, or Chinese, may see the [[mw:Special:MyLanguage/Wikimedia Apps/iOS Suggested edits project/Alt Text Experiment|Alt Text suggested-edit experiment]] after editing an article, or completing a suggested edit using "[[mw:Special:MyLanguage/Wikimedia Apps/iOS Suggested edits project#Hypothesis 2 Add an Image Suggested Edit|Add an image]]". Alt-text helps people with visual impairments to read Wikipedia articles. The team aims to learn if adding alt-text to images is a task that editors can be successful with. Please share any feedback on [[mw:Talk:Wikimedia Apps/iOS Suggested edits project/Alt Text Experiment|the discussion page]].</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">The Codex color palette has been updated with new and revised colors for the MediaWiki user interfaces. The [[mw:Special:MyLanguage/Design System Team/Color/Design documentation#Updates|most noticeable changes]] for editors include updates for: dark mode colors for Links and for quiet Buttons (progressive and destructive), visited Link colors for both light and dark modes, and background colors for system-messages in both light and dark modes.</span>
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible to include clickable wikilinks and external links inside code blocks. This includes links that are used within <code><nowiki><syntaxhighlight></nowiki></code> tags and on code pages (JavaScript, CSS, Scribunto and Sanitized CSS). Uses of template syntax <code><nowiki>{{…}}</nowiki></code> are also linked to the template page. Thanks to SD0001 for these improvements.</span> [https://phabricator.wikimedia.org/T368166]
* <span lang="en" dir="ltr" class="mw-content-ltr">Two bugs were fixed in the [[m:Special:MyLanguage/Account vanishing|GlobalVanishRequest]] system by improving the logging and by removing an incorrect placeholder message.</span> [https://phabricator.wikimedia.org/T370595][https://phabricator.wikimedia.org/T372223]
* <span lang="en" dir="ltr" class="mw-content-ltr">View all {{formatnum:25}} community-submitted {{PLURAL:25|task|tasks}} that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].</span>
'''技術系貢献者への情報更新'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">From [[m:Special:MyLanguage/Wikimedia Enterprise|Wikimedia Enterprise]]:</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">The API now enables 5,000 on-demand API requests per month and twice-monthly HTML snapshots freely (gratis and libre). More information on the updates and also improvements to the software development kits (SDK) are explained on [https://enterprise.wikimedia.com/blog/enhanced-free-api/ the project's blog post]. While Wikimedia Enterprise APIs are designed for high-volume commercial reusers, this change enables many more community use-cases to be built on the service too.</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">The Snapshot API (html dumps) have added beta Structured Contents endpoints ([https://enterprise.wikimedia.com/blog/structured-contents-snapshot-api/ blog post on that]) as well as released two beta datasets (English and French Wikipedia) from that endpoint to Hugging Face for public use and feedback ([https://enterprise.wikimedia.com/blog/hugging-face-dataset/ blog post on that]). These pre-parsed data sets enable new options for researchers, developers, and data scientists to use and study the content.</span>
'''<span lang="en" dir="ltr" class="mw-content-ltr">In depth</span>'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">The Wikidata Query Service (WDQS) is used to get answers to questions using the Wikidata data set. As Wikidata grows, we had to make a major architectural change so that WDQS could remain performant. As part of the [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS graph split|WDQS Graph Split project]], we have new SPARQL endpoints available for serving the "[https://query-scholarly.wikidata.org scholarly]" and "[https://query-main.wikidata.org main]" subgraphs of Wikidata. The [http://query.wikidata.org query.wikidata.org endpoint] will continue to serve the full Wikidata graph until March 2025. After this date, it will only serve the main graph. For more information, please see [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS backend update/September 2024 scaling update|the announcement on Wikidata]].</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/39|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月23日 (月) 23:37 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27493779 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-40 ==
<section begin="technews-2024-W40"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/40|翻訳]]されています。
'''編集者対象の情報更新'''
* ダークモードを利用できる[[phab:T375401|ウィキ42 件を追加]]しました。皆さんのウィキでログアウトした利用者が、まだこのモードを使えない状態の場合は、ダークモードではまだ多くのテンプレートが正しく表示できないことが原因かもしれません。問題点の解消に関心を持たれたら、[https://night-mode-checker.wmcloud.org/ ナイトモード用チェック・ツール]を使ってください。[[mw:Special:MyLanguage/Recommendations for night mode compatibility on Wikimedia wikis|推奨事項ページ]]には、これに関するガイダンスがあります。ダークモードは月間1回、使えるウィキを増やしていきます。
* 2010年版ウィキ文エディタを既定で使っている人は、URL末尾に <code dir=ltr>?veaction=editsource</code> と加筆すると、同2017年版の機能を利用できます。規定のエディタを2017年版にするには、[[Special:Preferences#mw-input-wpvisualeditor-newwikitext|各自の個人設定]]で切り替えてください。 [https://phabricator.wikimedia.org/T239796]
* <span lang="en" dir="ltr" class="mw-content-ltr">For logged-out readers using the Vector 2022 skin, the "donate" link has been moved from a collapsible menu next to the content area into a more prominent top menu, next to "Create an account". This restores the link to the level of prominence it had in the Vector 2010 skin. [[mw:Readers/2024 Reader and Donor Experiences#Donor Experiences (Key Result WE 3.2 and the related hypotheses)|Learn more]] about the changes related to donor experiences.</span> [https://phabricator.wikimedia.org/T373585]
* <span lang="en" dir="ltr" class="mw-content-ltr">The CampaignEvents extension provides tools for organizers to more easily manage events, communicate with participants, and promote their events on the wikis. The extension has been [[m:Special:MyLanguage/CampaignEvents/Deployment status|enabled]] on Arabic Wikipedia, Igbo Wikipedia, Swahili Wikipedia, and Meta-Wiki. [[w:zh:Wikipedia:互助客栈/其他#引進CampaignEvents擴充功能|Chinese Wikipedia has decided]] to enable the extension, and discussions on the extension are in progress [[w:es:Wikipedia:Votaciones/2024/Sobre la política de Organizadores de Eventos|on Spanish Wikipedia]] and [[d:Wikidata:Project chat#Enabling the CampaignEvents Extention on Wikidata|on Wikidata]]. To learn how to enable the extension on your wiki, you can visit [[m:Special:MyLanguage/CampaignEvents|the CampaignEvents page on Meta-Wiki]].</span>
* コミュニティが提出した{{PLURAL:22|タスク類}}のうち[[m:Tech/News/Recently resolved community tasks|先週の解決分]] {{formatnum:22}} 件に目を通してください。
'''技術系貢献者への情報更新'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Developers with an account on Wikitech-wiki should [[wikitech:Wikitech/SUL-migration|check if any action is required]] for their accounts. The wiki is being changed to use the single-user-login (SUL) system, and other configuration changes. This change will help reduce the overall complexity for the weekly software updates across all our wikis.</span>
'''掘り下げると'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:MyLanguage/Tech/Server switch|server switch]] was completed successfully last week with a read-only time of [[wikitech:Switch Datacenter#Past Switches|only 2 minutes 46 seconds]]. This periodic process makes sure that engineers can switch data centers and keep all of the wikis available for readers, even if there are major technical issues. It also gives engineers a chance to do maintenance and upgrades on systems that normally run 24 hours a day, and often helps to reveal weaknesses in the infrastructure. The process involves dozens of software services and hundreds of hardware servers, and requires multiple teams working together. Work over the past few years has reduced the time from 17 minutes down to 2–3 minutes.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/66ZW7B2MG63AESQVTXDIFQBDBS766JGW/]
'''ミーティングとイベント'''
* 10月4日–6日:[[m:Special:MyLanguage/WikiIndaba conference 2024|ウィキ・インダバ・カンファレンス併設のハッカソン]]の開催地は南アフリカのヨハネルブルグ。
* 11月4日–6日:[[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Fall 2024|MediaWiki 利用者・開発者カンファレンス2024年秋]]の開催地はオーストリアのウィーン
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/40|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年9月30日 (月) 22:21 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27530062 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-41</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W41"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/41|Translations]] are available.
'''Weekly highlight'''
* Communities can now request installation of [[mw:Special:MyLanguage/Moderator Tools/Automoderator|Automoderator]] on their wiki. Automoderator is an automated anti-vandalism tool that reverts bad edits based on scores from the new "Revert Risk" machine learning model. You can [[mw:Special:MyLanguage/Extension:AutoModerator/Deploying|read details about the necessary steps]] for installation and configuration. [https://phabricator.wikimedia.org/T336934]
'''Updates for editors'''
* Translators in wikis where [[mw:Special:MyLanguage/Content translation/Section translation#Try the tool|the mobile experience of Content Translation is available]], can now customize their articles suggestion list from 41 filtering options when using the tool. This topic-based article suggestion feature makes it easy for translators to self-discover relevant articles based on their area of interest and translate them. You can [https://test.wikipedia.org/w/index.php?title=Special:ContentTranslation&active-list=suggestions try it with your mobile device]. [https://phabricator.wikimedia.org/T368422]
* View all {{formatnum:12}} community-submitted {{PLURAL:12|task|tasks}} that were [[m:Tech/News/Recently resolved community tasks|resolved last week]].
'''Updates for technical contributors'''
* It is now possible for <bdi lang="zxx" dir="ltr"><code><nowiki><syntaxhighlight></nowiki></code></bdi> code blocks to offer readers a "Copy" button if the <bdi lang="zxx" dir="ltr"><code><nowiki>copy=1</nowiki></code></bdi> attribute is [[mw:Special:MyLanguage/Extension:SyntaxHighlight#copy|set on the tag]]. Thanks to SD0001 for these improvements. [https://phabricator.wikimedia.org/T40932]
* Customized copyright footer messages on all wikis will be updated. The new versions will use wikitext markup instead of requiring editing raw HTML. [https://phabricator.wikimedia.org/T375789]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Later this month, [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] will be rolled out on several pilot wikis. The final list of the wikis will be published in the second half of the month. If you maintain any tools, bots, or gadgets on [[phab:T376499|these 11 wikis]], and your software is using data about IP addresses or is available for logged-out users, please check if it needs to be updated to work with temporary accounts. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers|Guidance on how to update the code is available]].
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Rate limiting has been enabled for the code review tools [[Wikitech:Gerrit|Gerrit]] and [[Wikitech:GitLab|GitLab]] to address ongoing issues caused by malicious traffic and scraping. Clients that open too many concurrent connections will be restricted for a few minutes. This rate limiting is managed through [[Wikitech:nftables|nftables]] firewall rules. For more details, see Wikitech's pages on [[Wikitech:Firewall#Throttling with nftables|Firewall]], [[Wikitech:GitLab/Abuse and rate limiting|GitLab limits]] and [[Wikitech:Gerrit/Operations#Throttling IPs|Gerrit operations]].
* Five new wikis have been created:
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q49224|Komering]] ([[w:kge:|<code>w:kge:</code>]]) [https://phabricator.wikimedia.org/T374813]
** a {{int:project-localized-name-group-wikipedia}} in [[d:Q36096|Mooré]] ([[m:mos:|<code>m:mos:</code>]]) [https://phabricator.wikimedia.org/T374641]
** a {{int:project-localized-name-group-wiktionary}} in [[d:Q36213|Madurese]] ([[wikt:mad:|<code>wikt:mad:</code>]]) [https://phabricator.wikimedia.org/T374968]
** a {{int:project-localized-name-group-wikiquote}} in [[d:Q2501174|Gorontalo]] ([[q:gor:|<code>q:gor:</code>]]) [https://phabricator.wikimedia.org/T375088]
** a {{int:project-localized-name-group-wikinews}} in [[d:Q56482|Shan]] ([[n:shn:|<code>n:shn:</code>]]) [https://phabricator.wikimedia.org/T375430]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/41|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W41"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月7日 (月) 23:43 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27557422 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-42</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W42"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/42|Translations]] are available.
'''Updates for editors'''
* The Structured Discussion extension (also known as Flow) is starting to be removed. This extension is unmaintained and causes issues. It will be replaced by [[mw:Special:MyLanguage/Help:DiscussionTools|DiscussionTools]], which is used on any regular talk page. [[mw:Special:MyLanguage/Structured Discussions/Deprecation#Deprecation timeline|A first set of wikis]] are being contacted. These wikis are invited to stop using Flow, and to move all Flow boards to sub-pages, as archives. At these wikis, a script will move all Flow pages that aren't a sub-page to a sub-page automatically, starting on 22 October 2024. On 28 October 2024, all Flow boards at these wikis will be set in read-only mode. [https://www.mediawiki.org/wiki/Structured_Discussions/Deprecation][https://phabricator.wikimedia.org/T370722]
* WMF's Search Platform team is working on making it easier for readers to perform text searches in their language. A [[phab:T332342|change last week]] on over 30 languages makes it easier to find words with accents and other diacritics. This applies to both full-text search and to types of advanced search such as the <bdi lang="en" dir="ltr">''hastemplate''</bdi> and <bdi lang="en" dir="ltr">''incategory''</bdi> keywords. More technical details (including a few other minor search upgrades) are available. [https://www.mediawiki.org/wiki/User:TJones_%28WMF%29/Notes/Language_Analyzer_Harmonization_Notes#ASCII-folding/ICU-folding_%28T332342%29]
* View all {{formatnum:20}} community-submitted {{PLURAL:20|task|tasks}} that were [[m:Tech/News/Recently resolved community tasks|resolved last week]]. For example, [[mw:Special:MyLanguage/Help:Edit check|EditCheck]] was installed at Russian Wikipedia, and fixes were made for some missing user interface styles.
'''Updates for technical contributors'''
* Editors who use the Toolforge tool [[toolforge:copyvios|Earwig's Copyright Violation Detector]] will now be required to log in with their Wikimedia account before running checks using the "search engine" option. This change is needed to help prevent external bots from misusing the system. Thanks to Chlod for these improvements. [https://en.wikipedia.org/wiki/Wikipedia_talk:New_pages_patrol/Reviewers#Authentication_is_now_required_for_search_engine_checks_on_Earwig's_Copyvio_Tool]
* [[m:Special:MyLanguage/Phabricator|Phabricator]] users can create tickets and add comments on existing tickets via Email again. [[mw:Special:MyLanguage/Phabricator/Help#Using email|Sending email to Phabricator]] has been fixed. [https://phabricator.wikimedia.org/T356077]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|Advanced item]] Some HTML elements in the interface are now wrapped with a <code><nowiki><bdi></nowiki></code> element, to make our HTML output more aligned with Web standards. More changes like this will be coming in future weeks. This change might break some tools that rely on the previous HTML structure of the interface. Note that relying on the HTML structure of the interface is [[mw:Special:MyLanguage/Stable interface policy/Frontend#What is not stable?|not recommended]] and might break at any time. [https://phabricator.wikimedia.org/T375975]
'''In depth'''
* The latest monthly [[mw:Special:MyLanguage/MediaWiki Product Insights/Reports/September 2024|MediaWiki Product Insights newsletter]] is available. This edition includes: updates on Wikimedia's authentication system, research to simplify feature development in the MediaWiki platform, updates on Parser Unification and MathML rollout, and more.
* The latest quarterly [[mw:Technical Community Newsletter/2024/October|Technical Community Newsletter]] is now available. This edition include: research about improving topic suggestions related to countries, improvements to PHPUnit tests, and more.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/42|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W42"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月14日 (月) 21:22 (UTC)
<!-- User:Quiddity (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27597254 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-43 ==
<section begin="technews-2024-W43"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/43|翻訳]]されています。
'''今週のハイライト'''
* モバイルアプリ・チームよりiOS 版アプリの[[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Navigation Refresh#Phase 1: Creating a user Profile Menu (T373714)|更新]]により、ナビゲーションは App ストアからダウンロードする最新版に繁栄しました。プロフィール(Profile)という新しいメニューを追加、記事の閲覧画面で通知やウォッチリストなど編集機能をさっと開けるようになった点と、「寄付する」ボタンは閲覧者が使いやすい位置に移動しました。これは規模の大きな[[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Navigation Refresh|ナビゲーション刷新]]計画の一部であり、閲覧者優先で進めてきた iOS アプリを閲覧も編集もしやすなるようサポートを深めます。ウィキメディア財団ではボランティアの皆さんからこの数年の間に寄せられた要望に基づき、オンウィキの意思疎通において編集機能の追加とサポートを重ねています。
[[File:IOS App Navigation refresh first phase 05.png|thumb|プロフィールメニューと内容、ウィキペディアの iOS アプリ]]
'''編集者対象の更新'''
* ウィキペディアの読者の皆さんはブラウザ拡張機能をダウンロードすると、記事の閲覧お勧め、記事のまとめを自動生成、検索の機能改善など、機能導入を検討中の早期の発案を試験してみることができます。詳細情報を読むにはウェブチームの[[mw:Special:MyLanguage/Reading/Web/Content Discovery Experiments|コンテンツ発見実験ページ]](Content Discovery Experiments)を、更新情報を受信するには[[mw:Special:MyLanguage/Newsletter:Web team's projects|ニュースレターの購読]]をお勧めします。
* 10月末に向かって、[[phab:T376499|これら 12 件のウィキ]]ではログアウトした編集者に[[mw:Special:Mylanguage/Trust and Safety Product/Temporary Accounts|臨時アカウント]]の発行を始めます。当該の一覧は変更を見込んでおり - ウィキによっては対象から除外するかもしれない点と追加はない点があります。臨時アカウントは新規の[[mw:Special:MyLanguage/User account types|利用者アカウントの種別]]です。ログアウト編集者の個人情報保護、コミュニティ参加者との意思疎通の円滑化を目指します。対象のウィキ 12 件でツールやボット、ガジェット類の管理をされる皆さんは、そのソフトウェアがログアウト利用者の IP アドレスを参照している場合は、臨時アカウントへの対応が必要かどうかチェックをお願いします。[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers|コード更新のガイダンスがあります]]。詳細は[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|全ウィキへの導入計画]]をご一読ください。
* コミュニティが提出した{{PLURAL:33|タスク類}}のうち[[m:Tech/News/Recently resolved community tasks|先週の解決分]] {{formatnum:33}} 件に目を通してください。 <span lang="en" dir="ltr" class="mw-content-ltr">For example, the [[w:nr:Main Page|South Ndebele]], [[w:rsk:Главни бок|Pannonian Rusyn]], [[w:ann:Uwu|Obolo]], [[w:iba:Lambar Keterubah|Iban]] and [[w:tdd:ᥞᥨᥝᥴ ᥘᥣᥲ ᥖᥥᥰ|Tai Nüa]] Wikipedia languages were created last week.</span> [https://www.wikidata.org/wiki/Q36785][https://www.wikidata.org/wiki/Q35660][https://www.wikidata.org/wiki/Q36614][https://www.wikidata.org/wiki/Q33424][https://www.wikidata.org/wiki/Q36556]
* <span lang="en" dir="ltr" class="mw-content-ltr">It is now possible to create functions on Wikifunctions using Wikidata lexemes, through the new [[f:Z6005|Wikidata lexeme type]] launched last week. When you go to one of these functions, the user interface provides a lexeme selector that helps you pick a lexeme from Wikidata that matches the word you type. After hitting run, your selected lexeme is retrieved from Wikidata, transformed into a Wikidata lexeme type, and passed into the selected function. Read more about this in [[f:Special:MyLanguage/Wikifunctions:Status updates/2024-10-17#Function of the Week: select representation from lexeme|the latest Wikifunctions newsletter]].</span>
'''技術系貢献者への情報更新'''
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Users of the Wikimedia sites can now format dates more easily in different languages with the new <code dir="ltr">{{[[mw:Special:MyLanguage/Help:Extension:ParserFunctions##timef|#timef]]:…}}</code> parser function. For example, <code dir="ltr"><nowiki>{{#timef:now|date|en}}</nowiki></code> will show as "<bdi lang="en" dir="ltr">{{#timef:now|date|en}}</bdi>". Previously, <code dir="ltr"><nowiki>{{#time:…}}</nowiki></code> could be used to format dates, but this required knowledge of the order of the time and date components and their intervening punctuation. <code dir="ltr">#timef</code> (or <code dir="ltr">#timefl</code> for local time) provides access to the standard date formats that MediaWiki uses in its user interface. This may help to simplify some templates on multi-lingual wikis like Commons and Meta.</span> [https://phabricator.wikimedia.org/T223772][https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:ParserFunctions##timef]
* [[File:Octicons-tools.svg|12px|link=|class=skin-invert|高度]] <span lang="en" dir="ltr" class="mw-content-ltr">Commons and Meta users can now efficiently [[mw:Special:MyLanguage/Help:Magic words#Localization|retrieve the user's language]] using <code dir="ltr"><nowiki>{{USERLANGUAGE}}</nowiki></code> instead of using <code dir="ltr"><nowiki>{{int:lang}}</nowiki></code>.</span> [https://phabricator.wikimedia.org/T4085]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:MyLanguage/Product and Technology Advisory Council|Product and Tech Advisory Council]] (PTAC) now has its pilot members with representation across Africa, Asia, Europe, North America and South America. They will work to address the [[Special:MyLanguage/Movement Strategy/Initiatives/Technology Council|Movement Strategy's Technology Council]] initiative of having a co-defined and more resilient technological platform.</span> [https://meta.wikimedia.org/wiki/Movement_Strategy/Initiatives/Technology_Council]
'''掘り下げると'''
* 年4回発行の [[mw:Special:MyLanguage/Growth/Newsletters/32|Growth ニュースレター]]を発行しました。内容とは:新規参加者ホームページのコミュニティ更新モジュール、新規のコミュニティ設定のオプション、新規プロジェクトの詳細情報ほか。
* ウィキメディア財団では[[mw:Special:MyLanguage/Wikimedia Security Team#CNA Partnership| CVE プログラムの正式パートナー]]になり、サイバーセキュリティの公開済み脆弱性をカタログ化する国際的な取り組みに参加しました。セキュリティ・チームはこのパートナー関係により、[[w:en:Common Vulnerabilities and Exposures|共通脆弱性識別子とその露出]] (CVE) レコードという、当財団の管理下にあるその他のコードばかりかメディアウィキ・コアや拡張機能ならびに外装に影響するコードを即座に公開できるようになります。
* [[m:Special:MyLanguage/Community Wishlist|コミュニティ要望リスト]]では要望リストの内容に[[m:Community Wishlist/Updates#October 16, 2024: Conversations Made Easier: Machine-Translated Wishes Are Here!|機械翻訳の適用を試験中]]です。ボランティアの皆さんは要望を機械翻訳したものを閲覧し、翻訳者が内容の翻訳を終えるより以前に、議論に直行できます。
'''ミーティングとイベント'''
* 10月24日 - ウィキ教育講演者シリーズのウェビナー - [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/N4XTB4G55BUY3M3PNGUAKQWJ7A4UOPAK/ オープンソース技術:ウィキ教育ダッシュボードの構築]、パネル登壇はウィキメディアのインターン生とウェブ開発者(Wiki Education Speaker Series Webinar)。
* 2024年12月20–22日 - [[m:Special:MyLanguage/Indic Wikimedia Hackathon Bhubaneswar 2024|ウィキメディア・インド諸語ハッカソン・ブヴァネーシュヴァル大会2024]]をインドのオリッサ州で開催(Wikimedia Hackathon Bhubaneswar)。このハッカソンの目的はコミュニティに参加する開発者やデザイナー、コンテンツ編集者などが集まり、貢献者の経験向上を対象とした技術的ソリューションを構築することです。
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/43|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月21日 (月) 20:53 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27634672 のリストを使用して送信したメッセージ -->
== <span lang="en" dir="ltr">Tech News: 2024-44</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2024-W44"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2024/44|Translations]] are available.
'''Updates for editors'''
* Later in November, the Charts extension will be deployed to the test wikis in order to help identify and fix any issue. A security review is underway to then enable deployment to pilot wikis for broader testing. You can read [[mw:Special:MyLanguage/Extension:Chart/Project/Updates#October 2024: Working towards production deployment|the October project update]] and see the [https://en.wikipedia.beta.wmflabs.org/wiki/Charts latest documentation and examples on Beta Wikipedia].
* View all {{formatnum:32}} community-submitted {{PLURAL:32|task|tasks}} that were [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|resolved last week]]. For example, [[w:en:PediaPress|Pediapress.com]], an external service that creates books from Wikipedia, can now use [[mw:Special:MyLanguage/Wikimedia Maps|Wikimedia Maps]] to include existing pre-rendered infobox map images in their printed books on Wikipedia. [https://phabricator.wikimedia.org/T375761]
'''Updates for technical contributors'''
* Wikis can use [[:mw:Special:MyLanguage/Extension:GuidedTour|the Guided Tour extension]] to help newcomers understand how to edit. The Guided Tours extension now works with [[mw:Special:MyLanguage/Manual:Dark mode|dark mode]]. Guided Tour maintainers can check their tours to see that nothing looks odd. They can also set <code>emitTransitionOnStep</code> to <code>true</code> to fix an old bug. They can use the new flag <code>allowAutomaticBack</code> to avoid back-buttons they don't want. [https://phabricator.wikimedia.org/T73927#10241528]
* Administrators in the Wikimedia projects who use the [[mw:Special:MyLanguage/Help:Extension:Nuke|Nuke Extension]] will notice that mass deletions done with this tool have the "Nuke" tag. This change will make reviewing and analyzing deletions performed with the tool easier. [https://phabricator.wikimedia.org/T366068]
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2024/44|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2024-W44"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年10月28日 (月) 20:57 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27668811 のリストを使用して送信したメッセージ -->
== 技術ニュース: 2024-45 ==
<section begin="technews-2024-W45"/><div class="plainlinks">
ウィキメディア技術コミュニティの最新版'''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''です。他の利用者にも下記の変更についてお伝えください。直接の影響はない項目も含まれる場合があります。このニュースは各言語に[[m:Special:MyLanguage/Tech/News/2024/45|翻訳]]されています。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Updates for editors</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">Stewards can now make [[m:Special:MyLanguage/Global blocks|global account blocks]] cause global [[mw:Special:MyLanguage/Autoblock|autoblocks]]. This will assist stewards in preventing abuse from users who have been globally blocked. This includes preventing globally blocked temporary accounts from exiting their session or switching browsers to make subsequent edits for 24 hours. Previously, temporary accounts could exit their current session or switch browsers to continue editing. This is an anti-abuse tool improvement for the [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|Temporary Accounts]] project. You can read more about the [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|progress on key features for temporary accounts]].</span> [https://phabricator.wikimedia.org/T368949]
* キャンペーン・イベント用の [[m:Special:MyLanguage/CampaignEvents/Deployment status|CampaignEvents 拡張機能を有効にした]]ウィキでは今後、共同作業用の [[m:Special:MyLanguage/Campaigns/Foundation Product Team/Event list#October 29, 2024: Collaboration List launched|Collaboration List]] 一覧機能を使えるようになります。これは投稿者がそれぞれのウィキにおいて、ウィキプロジェクト群の総体を簡単に把握できる新機能です。担当したキャンペーン・チームは[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2024-2025/Product %26 Technology OKRs#WE KRs|2024/25年次計画]]の一環としてこの企画に取り組みました。この CampaignEvents 拡張機能を皆さんのウィキにも導入したい場合は、[[m:Special:MyLanguage/CampaignEvents/Deployment status#How to Request the CampaignEvents Extension for your wiki|こちらの手順に従う]]もしくは補佐が必要なら User:Udehb-WMF と打ち合わせてください。
* 赤リンクを示す文字色は今週後半にわずかに色味を変え、ライトモードでコントラストを改善します。 [https://phabricator.wikimedia.org/T370446]
* コミュニティが提出した{{PLURAL:32|タスク類}}のうち[[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|先週の解決分]] {{formatnum:32}} 件に目を通してください。 たとえば 多言語対応のウィキ群では[[phab:T216368|今後]]、利用者がリンク元を示す特別ページ WhatLinksHere で翻訳版を非表示にできます。
'''技術系貢献者への情報更新'''
* XML [[m:Special:MyLanguage/Data dumps|データダンプ]]はバグ検証のため一時的に停止しました。 [https://lists.wikimedia.org/hyperkitty/list/xmldatadumps-l@lists.wikimedia.org/message/BXWJDPO5QI2QMBCY7HO36ELDCRO6HRM4/]
'''掘り下げると'''
* 仮アカウントを6件のウィキに導入しました(Temporary Accounts)。この[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|企画]]を信頼安全製品チームが完成させた(Trust and Safety Product team)ので、[[phab:T340001|実装の日程]]を確かめてください。仮リンクは来週以降、[[phab:T378336|他のプロジェクト7件]]でも使えるようになります。これらのウィキで活動中の皆さんでツールの統合に補佐を希望される場合は、担当の [[m:User:Udehb-WMF|User:Udehb-WMF]] に連絡をして打ち合わせ願います。
* 四半期ごとに発行される[[mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2024/October|言語と国際化ニュースレター]]の最新版をご覧いただけます。 掲載内容は次のとおり:翻訳用の translatewiki やメディアウィキで対応する言語が増えました。複数言語でキーボード入力欄の方法が変わりました。開催予定および直近で開いたミーティングの情報その他。
'''<span lang="en" dir="ltr" class="mw-content-ltr">Meetings and events</span>'''
* <span lang="en" dir="ltr" class="mw-content-ltr">[[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Fall 2024|MediaWiki Users and Developers Conference Fall 2024]] is happening in Vienna, Austria and online from 4 to 6 November 2024. The conference will feature discussions around the usage of MediaWiki software by and within companies in different industries and will inspire and onboard new users.</span>
'''''[[m:Special:MyLanguage/Tech/News|技術ニュース]]'''は[[m:Special:MyLanguage/Tech/News/Writers|技術大使]]によって準備され[[m:Special:MyLanguage/User:MediaWiki message delivery|ボット]]によって配信されています • [[m:Special:MyLanguage/Tech/News#contribute|寄稿]] • [[m:Special:MyLanguage/Tech/News/2024/45|翻訳]] • [[m:Tech|相談]] • [[m:Talk:Tech/News|フィードバック]] • [[m:Global message delivery/Targets/Tech ambassadors|購読/購読解除]]''
</div><section end="technews-2024-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 2024年11月4日 (月) 20:51 (UTC)
<!-- User:UOzurumba (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=27693917 のリストを使用して送信したメッセージ -->
fkwzfq9bu927f6lbtfx6febefp9cm1y
C++/文法の基礎
0
28727
263053
249134
2024-11-05T00:43:18Z
Ef3
694
校閲と推敲
263053
wikitext
text/x-wiki
{{Nav}}
== C++の概要 ==
=== C++とは ===
C++は、プログラミング言語の1つであり、C言語を基にしたオブジェクト指向プログラミング言語です。C++は、高レベルの抽象化と低レベルのメモリ制御を組み合わせた多様なアプリケーションをサポートします。
=== Hello, World! ===
C++プログラミングの最初のステップとして、Hello, World!プログラムを作成してみましょう。
;[https://paiza.io/projects/e1dReSyaXNEic0Y2sikp5w?language=cpp hello.cc]
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
std::cout << "Hello, World!" << std::endl;
return 0;
}
</syntaxhighlight>
== 最初のプログラム ==
=== Hello, World!プログラムの作成と実行 ===
C++のコンパイルと実行は、次の手順に従います。
# テキストエディタでC++プログラムを作成します。
# コンパイラを使用してプログラムをコンパイルします。一般的なコンパイラには、GCCやClangがあります。
# 実行可能ファイルを実行します。
== C++プログラムの基本構造 ==
=== プログラムの構成要素 ===
C++プログラムは、さまざまな要素で構成されています。基本的な構成要素には、<code>#include</code>ディレクティブ、<code>main()</code>関数、<code>return</code>文が含まれます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
// main関数の本体
return 0;
}
</syntaxhighlight>
== 変数とデータ型 ==
=== 変数の宣言と初期化 ===
C++では、変数を宣言し、初期化することができます。変数は、データを格納するためのメモリ領域を確保します。
:<syntaxhighlight lang=c++>
auto main() -> int {
int number{42}; // 変数の宣言と初期化
return 0;
}
</syntaxhighlight>
=== データ型の種類 ===
C++には、整数型、浮動小数点型、文字型、論理型など、さまざまなデータ型があります。
:<syntaxhighlight lang=c++>
auto main() -> int {
int integer{42}; // 整数型
double floating{3.14}; // 浮動小数点型
char character{'A'}; // 文字型
bool boolean{true}; // 論理型
return 0;
}
</syntaxhighlight>
== 標準入出力 ==
=== 標準入出力の基本 ===
C++では、<code>std::cout</code>を使用して標準出力にデータを出力し、<code>std::cin</code>を使用して標準入力からデータを受け取ります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
auto main() -> int {
std::cout << "Enter your name: ";
std::string name;
std::cin >> name;
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
</syntaxhighlight>
== コメントと整形 ==
=== コードのコメント ===
コメントは、コード内の説明やメモを追加するために使用されます。C++では、単行コメントと複数行コメントの両方がサポートされています。
:<syntaxhighlight lang=c++>
auto main() -> int {
// この行は単行コメントです
/*
これは
複数行コメント
です
*/
return 0;
}
</syntaxhighlight>
=== コードの整形 ===
コードの整形は、読みやすさを向上させるために重要です。適切なインデントと改行を使って、コードを整形しましょう。
:<syntaxhighlight lang=c++>
auto main() -> int {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
std::cout << i << " is even" << std::endl;
} else {
std::cout << i << " is odd" << std::endl;
}
}
return 0;
}
</syntaxhighlight>
== 章末問題 ==
=== 理解度チェック ===
# ユーザーに数値を入力させ、その数値を出力するプログラムを作成してください。
#:<syntaxhighlight lang=c++ style="display:none">
#include <iostream>
auto main() -> int {
// ユーザーに数値を入力してもらう
std::cout << "Enter a number: ";
int number;
std::cin >> number;
// 入力された数値を出力する
std::cout << "You entered: " << number << std::endl;
return 0;
}
</syntaxhighlight>
# 以下のプログラムはどのような出力をしますか?
#:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
int y{10};
std::cout << "The sum of " << x << " and " << y << " is: " << x + y << std::endl;
return 0;
}
</syntaxhighlight>
# コメントの役割を説明してください。
{{Nav}}
{{DEFAULTSORT:ふんほうのきそ}}
[[Category:C++]]
prqiocuqzi89i9u6uvzc64wpxsgoeem
高等学校 物理
0
33254
263030
250691
2024-11-04T13:55:54Z
2400:4051:4460:AA00:7532:7F5A:8F25:EA68
/* 原子 */
263030
wikitext
text/x-wiki
{{pathnav|高等学校の学習|高等学校理科|frame=1}}
※令和5年度以降の新課程教科書も内容に変更はありません。
== 当ページでは ==
本文→整理→発展講義の構成となります。
以下の内容は、なぜそのような法則や公式が成り立つのかを物理の学習する全員にまず覚えてほしいため、講義内容を図・式・文章・証明の4点セットでまとめました。
ページ配列は東京書籍や啓林館の物理教科書に従いました。
次に整理の項目では、各章末や編末の重要事項を身に付けられるようにしています。{{進捗状況}}
==力学 ==
[[高等学校物理/力学|力学]]{{進捗|75%|2013-09-16}}
===円運動と万有引力===
#[[高等学校物理/円運動|円運動]]{{進捗|75%|2022-09-28}}
#[[高等学校物理/慣性力|慣性力]]{{進捗|75%|2022-06-27}}
#[[高等学校 物理/万有引力|万有引力]]{{進捗|00%|2013-09-16}}
#[[高等学校 物理/暗記シート【円運動と万有引力】|まとめてみよう 円運動と万有引力]]
===単振動===
#[[高等学校物理/単振動|単振動]]{{進捗|00%|2013-09-16}}
== 熱力学 ==
[[高校物理 熱力学|熱力学]]{{進捗|75%|2022-9-3}}
===気体分子の運動===
#[[高等学校物理/気体の状態方程式|気体の状態方程式]] {{進捗|100%|2022-02-05}}
#[[高等学校 物理/気体分子の熱運動|気体分子の熱運動]]
== 波動 ==
*[[高校物理 波|波]]
== 電気と磁気 ==
* [[高校物理 電磁気学|電磁気学]]
==原子 ==
[[高等学校物理/原子物理|原子物理]]{{進捗|75%|2024-11-04}}
===電子と光===
#[[高等学校 物理/電子|電子]]{{進捗|00%|2022-07-01}}
#[[高等学校 物理/光の粒子性|光の粒子性]]{{進捗|00%|2022-07-01}}
#[[高等学校物理/X線|X線]]{{進捗|25%|2022-07-01}}
#[[高等学校 物理/粒子の波動性|粒子の波動性]]{{進捗|00%|2022-07-01}}
===原子と原子核===
#[[高等学校 物理/原子モデル|原子モデル]]{{進捗|00%|2022-07-01}}
#[[高等学校物理/原子核と放射線|原子核と放射線]]{{進捗|25%|2022-07-01}}
#[[高等学校物理/物理公式集|物理公式集]]{{進捗|00%|2022-06-28}}
== 参考:物理の学習方法 ==
[[学習方法/高校物理]] {{進捗|50%|2022-9-23}}
== 出典 ==
参考文献は、ほとんどの教科書に掲載されていません。そのため、参考文献のない本は、その性質上、あまり信用出来ません。推測ですが、短文なはずの検定教科書で相当長くなる見込みの参考文献・読書案内は省略されていると思われます。教科書に載っている内容は通説なので、ほとんど論議にならないからでしょう。オンライン文献、特にウィキ形式は誰でも変更出来るので、その信頼性をよく疑われます。文献の種類も信頼性の高さに大きく影響します。そこで、参考文献を紹介します。
*『改訂 物理』、東京書籍、2020年(2017年検定)
*『物理 改訂版』、新興出版社啓林館、2020年(2017年検定)
*『高等学校 改訂 物理』、第一学習社、2020年(2018年検定)
*『高校の物理が1冊で丸ごとわかる』小川慎一郎著 2022年 ベレ出版
*『新・物理入門 〈増補改訂版〉』山本義隆著 2004年 駿台文庫
*『第5版 物理学基礎』原康夫著 2021年 学術図書出版社
[[カテゴリ:高等学校教育|物]]
[[カテゴリ:物理学]]
4zf29shflucp4mnkbl7blhvnthbvorj
C++/アトリビュート
0
39719
263119
248471
2024-11-05T05:55:52Z
Ef3
694
校閲と推敲
263119
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== アトリビュートの概要 ===
C++のアトリビュートは、ソースコードにメタデータを提供し、コンパイラに特定の指示を与える機能です。アトリビュートは関数、変数、型、その他のプログラム宣言に適用でき、C++11から導入され、C++14、C++17、C++20などのバージョンでさらに強化されました。
アトリビュートは、コードの意図や要件を明確にするために使用されます。たとえば、<syntaxhighlight lang=c++ inline>[[nodiscard]]</syntaxhighlight>アトリビュートは、関数の戻り値が無視されるのを防ぐために使用されます。また、<syntaxhighlight lang=c++ inline>[[deprecated]]</syntaxhighlight>アトリビュートは、特定の関数やクラスが非推奨であることを示し、開発者に代替手段を探すよう促します。
アトリビュートは、プログラムのパフォーマンス、保守性、可読性を向上させる重要なツールであり、特定のプラットフォームやコンパイラに固有の機能を活用するための手段としても利用されます。
ここでは、C++のアトリビュートについて詳しく説明し、効果的に活用する方法を探求します。
=== C++の最新のバージョンでのアトリビュートの役割 ===
C++の最新のバージョンでは、アトリビュートがプログラミング言語の機能としてますます重要な役割を果たしています。新しい機能や概念が導入されるにつれ、アトリビュートはコードの意味を明確にし、コンパイラに対してさまざまな指示を提供する手段として進化しています。
たとえば、C++11で導入された<syntaxhighlight lang=c++ inline>[[noreturn]]</syntaxhighlight>アトリビュートは、関数が戻り値を返さないことをコンパイラに通知します。これにより、関数の戻り値が不要であることが明確になり、最適化や警告の改善に役立ちます。C++17では、<syntaxhighlight lang=c++ inline>[[nodiscard]]</syntaxhighlight>アトリビュートが導入され、関数の戻り値が無視されることを防ぐための手段が提供されました。これにより、プログラマーは関数の戻り値を無視することが予期せずに起こる可能性を減らすことができます。
また、C++20では、<syntaxhighlight lang=c++ inline>[[likely]]</syntaxhighlight>および<syntaxhighlight lang=c++ inline>[[unlikely]]</syntaxhighlight>アトリビュートが導入され、特定の分岐が実行される可能性を示すために使用されます。これにより、コンパイラはより効率的な分岐予測を行うことが可能になります。
さらに、C++の最新バージョンでは、コードの品質や保守性を向上させるための新しいアトリビュートが追加されています。<syntaxhighlight lang=c++ inline>[[deprecated]]</syntaxhighlight>アトリビュートは、非推奨の機能をマークし、代替手段を提案することで、開発者がコードの更新やリファクタリングを促進します。さらに、<syntaxhighlight lang=c++ inline>[[maybe_unused]]</syntaxhighlight>アトリビュートは、使用されない変数やパラメータを明示的にマークし、不要な警告を回避します。
C++の最新のバージョンにおけるアトリビュートの役割は多岐にわたりますが、その共通の目的はコードの意味を明確にし、開発者がコンパイラやツールチェーンとより効果的に連携することです。ここでは、これらの新しいアトリビュートの使用方法や効果について詳しく説明します。
== 基本的なアトリビュート ==
=== assume(条件式) ===
<syntaxhighlight lang=c++ inline>[[assume(条件式)]]</syntaxhighlight>アトリビュートは、C++20で導入されたアトリビュートの1つです。このアトリビュートは、コンパイラに対して特定の条件が真であることを前提として、プログラムの最適化を行うよう指示します。
このアトリビュートは、ヌル文に適用されることができます。ヌル文とは、空の文(セミコロンのみの文)のことです。アトリビュート引数節が存在し、その形式は次のようになります:
: ( 条件式 )
条件式は、コンテキストでboolに変換されます。ただし、式は評価されません。もし変換後の式が、前提の現れる箇所でtrueとなる場合、前提は効果を持ちません。そうでない場合、動作は未定義となります。
このアトリビュートの使用目的は、実装が式の形式を分析し、プログラムを最適化するための情報を推論できるようにすることです。ただし、実装は特定の前提から情報を推論する必要はありません。
例えば、次のような関数が考えられます:
:<syntaxhighlight lang=c++>
int divide_by_32(int x) {
[[assume(x >= 0)]];
return x / 32; // この除算のための命令は負の値の処理を省略している可能性があります。
}
</syntaxhighlight>
この例では、関数<syntaxhighlight lang=c++ inline>divide_by_32</syntaxhighlight>の引数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>が非負であるという前提が置かれています。これにより、コンパイラは負の値の処理を省略することができ、最適化の機会を提供します。
また、次の例では、前提が満たされない場合の挙動が示されています:
:<syntaxhighlight lang=c++>
int f(int y) {
[[assume(++y == 43)]]; // yは増分されません
return y; // ステートメントは return 42; に置き換えられる可能性があります。
}
</syntaxhighlight>
この場合、前提が満たされないため、<syntaxhighlight lang=c++ inline>++y</syntaxhighlight>が実行されず、戻り値は<syntaxhighlight lang=c++ inline>42</syntaxhighlight>となります。
<syntaxhighlight lang=c++ inline>[[assume(条件式)]]</syntaxhighlight>アトリビュートは、プログラムの最適化を促進し、コードのパフォーマンスを向上させるために利用されます。
=== carries_dependency ===
<syntaxhighlight lang=c++ inline>[[carries_dependency]]</syntaxhighlight>アトリビュートは、C++11で導入され、依存関係の伝播を関数内外に指定します。このアトリビュートは、関数のパラメータまたはラムダ式に適用でき、そのオブジェクトのlvalue-to-rvalue変換ごとに依存関係を伝播することを指定します。
このアトリビュートは、関数またはラムダ式の呼び出し演算子にも適用できます。その場合、戻り値(存在する場合)が関数呼び出し式の評価に依存関係を伝播することを指定します。
関数の最初の宣言は、関数が<syntaxhighlight lang=c++ inline>carries_dependency</syntaxhighlight>アトリビュートを指定する場合に、その宣言子IDに対して同アトリビュートを指定する必要があります。また、関数の最初の宣言がそのパラメータに対して<syntaxhighlight lang=c++ inline>carries_dependency</syntaxhighlight>アトリビュートを指定する場合、そのパラメータにも同アトリビュートを指定する必要があります。関数またはそのパラメータが1つの翻訳ユニットの最初の宣言である場合、<syntaxhighlight lang=c++ inline>carries_dependency</syntaxhighlight>アトリビュートはその型に対して指定することができ、指定しなければなりません。
このアトリビュートは、並列処理や非同期処理において、データ依存性を正確に伝播するために重要です。これにより、プログラムのパフォーマンスや正確性が向上し、予期しない挙動を防ぐことができます。
== 使い方の例 ==
=== 変数のデフォルト初期化 ===
アトリビュートは、特定の変数に対して適用することができます。次の例では、デフォルト初期化を示します:
:<syntaxhighlight lang=c++>
[[deprecated("この変数は非推奨です")]]
int old_variable = 0;
</syntaxhighlight>
この場合、<syntaxhighlight lang=c++ inline>old_variable</syntaxhighlight>変数は非推奨であることがコンパイラに通知され、警告が表示されます。
=== クラスのメソッド ===
クラスのメソッドにもアトリビュートを適用できます。以下の例では、非推奨のメソッドを示します:
:<syntaxhighlight lang=c++>
class MyClass {
public:
[[deprecated("このメソッドは非推奨です")]]
void old_method() {
// 古いメソッドの実装
}
};
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>old_method</syntaxhighlight>メソッドが非推奨であることを示しています。
=== ラムダ式 ===
ラムダ式にもアトリビュートを適用できます。次の例では、ラムダ式が非推奨であることを示します:
:<syntaxhighlight lang=c++>
[[deprecated("このラムダは非推奨です")]]
auto my_lambda = [](int x) { return x * 2; };
</syntaxhighlight>
このようにして、特定のラムダ式に対しても非推奨の警告を提供できます。
== 注意事項 ==
C++のアトリビュートは、開発者がプログラムの意味をより明確にする手段として非常に有用ですが、正しく使用することが重要です。不適切な使用は、意図しない動作やパフォーマンスの低下を招く可能性があります。アトリビュートを使用する際は、文書化やコードレビューを通じてその効果を確認し、適切に適用するよう努めましょう。
{| class="wikitable center"
|+ C++の属性と一覧
| バージョン || アトリビュート名 || 機能 || 例
|-
| C++14 || <syntaxhighlight lang=c++ inline>[[deprecated]]</syntaxhighlight> || 使用を非推奨にする || <syntaxhighlight lang=c++ inline>[[deprecated]] void old_function();</syntaxhighlight>
|-
| C++17 || <syntaxhighlight lang=c++ inline>[[maybe_unused]]</syntaxhighlight> || 未使用の警告を無視する || <syntaxhighlight lang=c++ inline>[[maybe_unused]] int x;</syntaxhighlight>
|-
| C++17 || <syntaxhighlight lang=c++ inline>[[nodiscard]]</syntaxhighlight> || 戻り値の無視を警告する || <syntaxhighlight lang=c++ inline>[[nodiscard]] int calculate();</syntaxhighlight>
|-
| C++17 || <syntaxhighlight lang=c++ inline>[[fallthrough]]</syntaxhighlight> || switch文のcase文間のフォールスルーを明示する || <syntaxhighlight lang=c++ inline>case 1: [[fallthrough]];</syntaxhighlight>
|-
| C++20 || <syntaxhighlight lang=c++ inline>[[no_unique_address]]</syntaxhighlight> || 変数に対して一意のアドレスを持たないことを示す || <syntaxhighlight lang=c++ inline>struct S { int a; [[no_unique_address]] int b; };</syntaxhighlight>
|-
| C++20 || <syntaxhighlight lang=c++ inline>[[likely]]</syntaxhighlight> <hr> <syntaxhighlight lang=c++ inline>[[unlikely]]</syntaxhighlight>|| 条件の可能性を示す || <syntaxhighlight lang=c++ inline>if ([[likely]] condition) { ... }</syntaxhighlight>
|}
== まとめ ==
C++のアトリビュートは、プログラムの可読性や保守性を向上させるための強力な機能です。アトリビュートを適切に使用することで、コードの意図を明確にし、コンパイラへの指示を効果的に行うことができます。最新のC++標準においても、アトリビュートは新しい機能や最適化のための重要な手段として位置付けられています。
{{Nav}}
[[Category:C++]]
1iqroc1znmigs5r1pb8t6x4t7viyse9
C++/decltype
0
39725
263041
249686
2024-11-04T21:47:19Z
Ef3
694
校閲と推敲
263041
wikitext
text/x-wiki
{{Nav}}
== decltypeとは ==
=== decltypeの概要 ===
decltype(declared type)は、C++11で導入されたキーワードの一つであり、式の型を取得するために使用されます。変数や式の型を推論するための仕組みを提供し、コンパイル時に型情報を取得して型を明示的に指定することを可能にします。
=== decltypeの役割と利点 ===
decltypeの主な役割は、変数や式の型を取得することで、以下の利点があります。
; 静的型付けの強化 : コンパイル時に変数や式の型を正確に推論し、プログラムの安全性と信頼性を向上させます。
; テンプレートメタプログラミング(TMP) : 特に関数戻り値の型やテンプレート引数の型を取得するために有用です。
; 型の自動推論の補完 : autoキーワードと組み合わせることで、型推論をより柔軟に行うことができます。autoが導入された後も、decltypeは複雑な型推論において役立ちます。
== decltypeの基礎 ==
=== decltypeの基本的な構文 ===
decltypeの基本構文は次のとおりです:
<syntaxhighlight lang="cpp">
decltype(expression)
</syntaxhighlight>
式<code>expression</code>の型を取得し、返します。
=== decltypeの型推論の仕組み ===
decltypeは与えられた式の型を返します。型推論の動作は以下のとおりです:
; 左辺値の場合 : 左辺値の式は、参照型として返されます。
; 右辺値の場合 : 右辺値の式は、値型として返されます。
=== decltypeとautoの比較 ===
decltypeとautoは型推論を行いますが、以下の違いがあります:
; 推論元 : decltypeは式の型を取得し、autoは変数の初期化式から型を推論します。
; 参照性の保持 : decltypeは参照性を保持し、autoは参照を解除し値型に変換します。
; 使用場面 : decltypeは関数戻り値の型や式の型を取得する際に、autoは変数の型推論に使用されます。
== decltypeの使い方 ==
=== decltypeを使った変数の宣言 ===
<syntaxhighlight lang="cpp">
int x = 5;
decltype(x) y = 10; // yの型はint
</syntaxhighlight>
<code>x</code>の型を元に新しい変数<code>y</code>が宣言されます。
=== decltypeを使った関数の戻り値の型指定 ===
<syntaxhighlight lang="cpp">
int foo() {
return 42;
}
decltype(foo()) bar(); // barの戻り値の型はint
</syntaxhighlight>
関数<code>foo</code>の戻り値の型を<code>bar</code>に使用します。
=== decltype(auto)の使用方法 ===
C++14で導入された<code>decltype(auto)</code>は、式の型をそのまま保持します。
<syntaxhighlight lang="cpp">
int x = 5;
decltype(auto) y = x; // yの型はint&
</syntaxhighlight>
参照型の<code>x</code>に対して、<code>decltype(auto)</code>は型をそのまま維持します。
== decltypeの応用 ==
=== テンプレート引数との組み合わせ ===
<syntaxhighlight lang="cpp">
template<typename T, typename U>
void func(T t, U u) {
decltype(t + u) result = t + u;
}
</syntaxhighlight>
テンプレート引数<code>t</code>と<code>u</code>の和の型を<code>decltype</code>で推論し、<code>result</code>の型に適用しています。
=== ジェネリックプログラミングでの使用 ===
<syntaxhighlight lang="cpp">
template<typename T, typename U>
auto add(T t, U u) -> decltype(t + u) {
return t + u;
}
</syntaxhighlight>
テンプレート関数<code>add</code>は、型を推論してさまざまな型に対応します。
=== メンバー変数の型推論 ===
<syntaxhighlight lang="cpp">
class MyClass {
public:
int x = 5;
decltype(x) y = 10; // yの型はint
};
</syntaxhighlight>
メンバー変数<code>x</code>の型を使用して、変数<code>y</code>の型を決定します。
== decltypeの高度な利用法 ==
=== SFINAEでの使用 ===
decltypeはSFINAE(Substitution Failure Is Not An Error)と組み合わせて、コンパイル時に条件分岐を行う高度なテンプレート技法で使用されます。
=== decltypeを用いたSFINAEの利用 ===
decltypeは、「Substitution Failure Is Not An Error」(SFINAE)というテクニックにも利用できます。これは、テンプレートメタプログラミングにおいて、特定の条件が満たされない場合にテンプレートの選択が失敗するが、コンパイルエラーとはならないようにする手法です。decltypeは、この条件判定の一部として使用されます。
:<syntaxhighlight lang=c++>
template<typename T>
auto testFunction(T t) -> decltype(t.someMethod(), void()) {
// T型のオブジェクトtがsomeMethodを持つ場合のみこの関数が選択される
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>testFunction</syntaxhighlight>は、渡された型<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が<syntaxhighlight lang=c++ inline>someMethod()</syntaxhighlight>メソッドを持っている場合にのみ選択されます。メソッドが存在しない場合、SFINAEによってテンプレートの選択が失敗し、別のオーバーロードが選択されます。
; まとめ
decltypeは、C++11以降のC++標準において非常に重要な役割を果たすキーワードです。型推論によりコードの安全性と柔軟性を高めるだけでなく、テンプレートメタプログラミングやジェネリックプログラミングにおいても強力なツールとして活用されます。C++14以降に追加された<syntaxhighlight lang=c++ inline>decltype(auto)</syntaxhighlight>を使用することで、型推論の可能性はさらに広がり、より効率的で読みやすいコードを記述することが可能になりました。
{{Nav}}
[[Category:C++]]
sz7lpjfemuyg9hm0u18zs3q1qy4pnhh
C++/using
0
39729
263043
248506
2024-11-04T21:56:31Z
Ef3
694
校閲と推敲
263043
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== <code>using</code>キーワードの概要 ===
C++における<code>using</code>キーワードは、名前空間や型、または特定のメンバーへのアクセスを指定するために使用されます。このキーワードは、コードの可読性を向上させ、記述を簡潔にするのに役立ちます。
=== <code>using</code>の重要性と役割 ===
<code>using</code>キーワードは、以下のような重要な役割を果たします。
; 名前空間の指定 : <code>using ''namespace''</code>ディレクティブを使用して、名前空間内のすべての名前を現在のスコープにインポートします。これにより、特定の名前空間内のすべてのメンバーにアクセスできるようになります。
; 型のエイリアス : <code>using</code>キーワードを使用して、既存の型に別名を付けることができます。これにより、長い型名を短くし、コードの可読性を向上させることができます。
; メンバーの指定 : <code>using</code>キーワードを使用して、クラスや構造体内の特定のメンバーにアクセスできるようにします。これにより、クラス内のメンバーに直接アクセスする際に、クラス名を省略することができます。
<code>using</code>キーワードは、C++プログラミングにおいて非常に便利で重要な機能であり、正しく使用することでコードの可読性や保守性を向上させることができます。
== 名前空間の使用法 ==
=== 名前空間の概要 ===
名前空間は、C++プログラム内で識別子を区別するための仕組みです。名前空間を使用することで、同じ名前の識別子を異なるコンテキストで使用することができます。これにより、関数やクラス、変数などの名前の衝突を回避し、コードの整理とモジュール化を容易にします。
=== 名前空間の定義と使用方法 ===
名前空間は、次のように定義されます。
:<syntaxhighlight lang="c++">
namespace namespace_name {
// 名前空間内の宣言
}
</syntaxhighlight>
名前空間内で関数やクラスを定義することができます。
:<syntaxhighlight lang="c++">
namespace my_namespace {
int add(int a, int b) {
return a + b;
}
}
</syntaxhighlight>
名前空間内のメンバーにアクセスするには、次のように名前空間名を指定します。
:<syntaxhighlight lang="c++">
int result = my_namespace::add(3, 4);
</syntaxhighlight>
=== 名前空間のネストとエイリアス ===
名前空間はネストすることができます。これにより、より複雑な階層構造を持つ名前空間を定義できます。
:<syntaxhighlight lang="c++">
namespace outer {
namespace inner {
void do_something() {
// ...
}
}
}
</syntaxhighlight>
また、名前空間に別名を付けることも可能です。
:<syntaxhighlight lang="c++">
namespace ns = my_namespace;
</syntaxhighlight>
このように<code>ns</code>を使用して<code>my_namespace</code>内のメンバーにアクセスできます。
:<syntaxhighlight lang="c++">
int result = ns::add(3, 4);
</syntaxhighlight>
名前空間はC++プログラミングにおいて名前衝突を回避し、コードを整理して保守性を向上させるのに役立ちます。
== usingディレクティブ ==
=== usingディレクティブの概要 ===
<code>using</code>ディレクティブは、特定の名前空間またはその中のメンバーを現在のスコープに導入するための機能です。これにより、名前空間を指定せずに長い名前空間やメンバーにアクセスすることができます。
=== 名前空間全体をインポートするusingディレクティブ ===
:<syntaxhighlight lang="c++">
#include <iostream>
// my_namespace名前空間の全体をインポートする
using namespace my_namespace;
auto main() -> int {
// my_namespace内のメンバーに直接アクセス可能
int result = add(3, 4);
std::cout << result << std::endl;
return 0;
}
</syntaxhighlight>
<code>using namespace my_namespace;</code> ディレクティブを使用することで<code>my_namespace</code>内のすべてのメンバーがスコープに導入されます。この方法は便利ですが、名前の衝突が発生する可能性があるため注意が必要です。
=== 部分的な名前空間をインポートするusingディレクティブ ===
:<syntaxhighlight lang="c++">
#include <iostream>
// my_namespaceの一部のみをインポートする
using my_namespace::add;
auto main() -> int {
// add関数に直接アクセス可能
int result = add(3, 4);
std::cout << result << std::endl;
return 0;
}
</syntaxhighlight>
このように<code>using my_namespace::add;</code>を使用すれば、<code>add</code>関数のみが現在のスコープに導入され、他のメンバーは影響を受けません。
== using宣言 ==
=== using宣言の概要 ===
<code>using</code>宣言は、特定の名前を導入し、現在のスコープで直接使用できるようにする構文です。この機能は名前空間内の個別の名前、テンプレート、またはクラスのメンバー名のエイリアスとして使用できます。
=== 名前空間内の個別の名前を導入するusing宣言 ===
:<syntaxhighlight lang="c++">
#include <iostream>
// std名前空間から特定の名前を導入する
using std::cout;
using std::endl;
auto main() -> int {
// coutとendlを直接使用できる
cout << "Hello, world!" << endl;
return 0;
}
</syntaxhighlight>
<code>using std::cout;</code> および <code>using std::endl;</code> によって、<code>std</code>名前空間から<code>cout</code>と<code>endl</code>を導入し、これらを直接使用可能にします。
=== テンプレートのusing宣言 ===
:<syntaxhighlight lang="c++">
#include <iostream>
#include <vector>
template<typename T>
using Vec = std::vector<T>;
auto main() -> int {
// Vec<int>型のベクターを作成
Vec<int> numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
std::cout << num << std::endl;
}
return 0;
}
</syntaxhighlight>
<code>using Vec = std::vector<T>;</code> は<code>std::vector</code>のエイリアスとして使用され、より簡潔な表現が可能です。
=== メンバー名のエイリアスとしてのusing宣言 ===
:<syntaxhighlight lang="c++">
#include <iostream>
#include <string>
class MyClass {
public:
void printMessage() const {
std::cout << "Hello from MyClass!" << std::endl;
}
};
auto main() -> int {
MyClass obj;
obj.printMessage();
// MyClass::printMessage()をprintとしてエイリアス
using print = MyClass::printMessage;
(obj.*print)();
return 0;
}
</syntaxhighlight>
<code>using print = MyClass::printMessage;</code>はメンバー関数を別名で呼び出せるようにします。
== usingディレクティブとusing宣言の比較 ==
=== usingディレクティブとusing宣言の違い ===
==== usingディレクティブ ====
; 概要 : <code>using namespace</code>を使用して、名前空間全体をインポートする。
; 効果 : 指定された名前空間内のすべての名前が現在のスコープに追加される。
; 注意点 : 名前の衝突が発生しやすく、予期しない振る舞いやバグを引き起こす可能性がある。
:<syntaxhighlight lang="c++">
#include <iostream>
// std名前空間のすべての名前を現在のスコープにインポート
using namespace std;
auto main() -> int {
cout << "Hello, world!" << endl;
return 0;
}
</syntaxhighlight>
==== using宣言 ====
; 概要 : <code>using</code>を使用して特定の名前空間内の名前を指定してインポートする。
; 効果 : 必要な名前のみをスコープに追加するため、安全で衝突のリスクが少ない。
:<syntaxhighlight lang="c++">
#include <iostream>
// std名前空間からcoutのみをインポート
using std::cout;
auto main() -> int {
// coutのみを使用可能
cout << "Hello, world!" << std::endl;
return 0;
}
</syntaxhighlight>
<code>using</code>宣言の方が、コードの可読性や保守性が向上し、予期しない名前の衝突を防ぐことができます。
== <code>using</code>の実用例 ==
=== 名前空間のエイリアスを使用した実用例 ===
複雑な名前空間の階層を短縮するために、名前空間エイリアスを使うと便利です。
:<syntaxhighlight lang="c++">
#include <iostream>
#include <complex>
namespace math_operations = std::complex_literals;
auto main() -> int {
auto num = 1.0 + 2.0i; // std::complex_literalsのiを使用
std::cout << "Complex number: " << num << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>std::complex_literals</code>に<code>math_operations</code>というエイリアスを付けて、複雑な記述を簡素化しています。
=== 型エイリアスの実用例 ===
テンプレートを使用した型エイリアスにより、長い型名を短縮してコードを読みやすくします。
:<syntaxhighlight lang="c++">
#include <map>
#include <string>
// 長い型名を短縮するエイリアスを定義
using StringMap = std::map<std::string, int>;
auto main() -> int {
StringMap myMap;
myMap["example"] = 42;
std::cout << "Value: " << myMap["example"] << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>std::map<std::string, int></code>を<code>StringMap</code>という簡単な名前で扱うことができます。
== 注意点とベストプラクティス ==
=== <code>using</code>ディレクティブの使用に関する注意点 ===
<code>using namespace</code>ディレクティブを使用すると、コードが読みやすくなる一方で、名前の衝突が発生しやすくなります。特に標準ライブラリ(<code>std</code>名前空間)や他の大規模な名前空間をインポートする際には注意が必要です。
=== ベストプラクティス ===
# '''限定的な<code>using</code>宣言を使用''': 必要なものだけをスコープに導入し、名前の衝突を避ける。
# '''エイリアスを使ってコードを簡潔に''': 長い型名や名前空間を短縮して読みやすくする。
# '''グローバルスコープでの<code>using namespace</code>の使用を避ける''': 意図しない名前の衝突を防ぐため、グローバルスコープでの<code>using namespace</code>の使用は控える。
;まとめ
C++における<code>using</code>キーワードは、名前空間や型を効率的に扱うための強力なツールです。<code>using</code>ディレクティブと<code>using</code>宣言を適切に使用することで、コードの可読性と保守性を大幅に向上させることができます。ただし、使用方法に注意を払うことで、予期しないバグや名前の衝突を避けることができます。
{{Nav}}
{{DEFAULTSORT:USING}}
[[Category:C++]]
du7o4gqhf3aatw9wfvxowafn06draul
C++/ラムダ式
0
39730
263044
249315
2024-11-04T22:05:41Z
Ef3
694
校閲と推敲。+C++20の新機能。
263044
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== ラムダ式の概要 ===
ラムダ式(または無名関数)は、C++11から導入された機能であり、関数を定義するための簡潔で柔軟な方法を提供します。ラムダ式は、関数オブジェクト(関数ファンクタ)をインラインで定義し、名前を持たずに一時的な用途で使用することができます。これはコードの簡潔さと可読性を向上させます。
=== ラムダ式の重要性と役割 ===
ラムダ式は、C++プログラムでコンパクトで直感的なコードを記述するための強力な手段です。STLアルゴリズムやライブラリでコールバック関数として使用される場面においても、ラムダ式を用いることでコードの冗長さを排除し、明確で保守性の高いコードを実現できます。
== ラムダ式の基礎 ==
=== ラムダ式とは何か? ===
ラムダ式は、関数オブジェクトをインラインで定義するための構文です。名前を持たずに使い捨て的に使用されるため、簡潔な関数の記述に最適です。
=== 従来の関数との比較 ===
従来の関数は名前を持ち、再利用が容易ですが、ラムダ式は匿名関数として短期間の使用を意図しています。関数ポインタは従来の関数に限定されますが、ラムダ式は関数オブジェクトとして自動的に扱われ、より多用途です。
=== ラムダ式の基本構文と使い方 ===
ラムダ式は、<code>[]</code>(キャプチャリスト)、<code>()</code>(引数リスト)、<code>{}</code>(関数本体)で構成されます。例えば:
:<syntaxhighlight lang="c++">
[]() { /* 関数本体 */ }
</syntaxhighlight>
ラムダ式は変数に代入したり、関数の引数として使用できます。キャプチャリストにより外部変数を使用することも可能です。
== キャプチャ ==
=== キャプチャとは何か? ===
キャプチャは、ラムダ式内で外部変数にアクセスするための仕組みです。これにより、ラムダ式は外部のスコープの変数を操作できます。
=== ラムダ式での変数のキャプチャ方法 ===
キャプチャリストに変数を指定することで、外部変数をラムダ式内に取り込むことができます。
=== キャプチャリストの構文と利用法 ===
キャプチャリストの構文は以下の通りです:
* <code>[]</code>: キャプチャなし。外部変数へのアクセス不可。
* <code>[&]</code>: すべての外部変数を参照キャプチャ。
* <code>[=]</code>: すべての外部変数を値キャプチャ。
* <code>[x, &y]</code>: <code>x</code>を値キャプチャ、<code>y</code>を参照キャプチャ。
:<syntaxhighlight lang="c++">
int x = 5;
auto lambda = [x]() { std::cout << x; };
</syntaxhighlight>
* <code>[変数 = 式]</code>: 初期化キャプチャで特定の式の値をラムダ式に持ち込みます。
:<syntaxhighlight lang="c++">
int a{5};
auto lambda = [v = a + 1]() {
std::cout << v << std::endl;
};
</syntaxhighlight>
== ラムダ式の呼び出し ==
=== ラムダ式の呼び出し方法 ===
ラムダ式は関数オブジェクトとして扱われ、<code>()</code>を使って呼び出せます。
:<syntaxhighlight lang="c++">
auto lambda = [](int x, int y) { return x + y; };
int result = lambda(3, 4); // ラムダ式の呼び出し
</syntaxhighlight>
=== ラムダ式の引数の受け渡し ===
引数は<code>()</code>内で定義され、呼び出し時に指定します。
:<syntaxhighlight lang="c++">
auto lambda = [](int x, int y) { return x + y; };
int result = lambda(3, 4); // 引数として3と4を渡す
</syntaxhighlight>
=== 引数と戻り値の型推論 ===
型はコンパイラによって推論されます。明示的な型指定がない場合でも、自動的に型を判別します。
:<syntaxhighlight lang="c++">
auto lambda = [](int x, int y) { return x + y; };
</syntaxhighlight>
この場合、戻り値も<code>int</code>と推論されます。
== スコープとライフタイム ==
=== ラムダ式のスコープとライフタイム ===
ラムダ式のスコープは定義された場所に依存します。変数をキャプチャしている場合、変数が有効な間にラムダ式を実行しないと未定義動作が生じる可能性があります。
:<syntaxhighlight lang="c++">
#include <iostream>
void exampleFunction() {
int localVar = 10;
auto lambda = [&localVar]() {
std::cout << "Local variable inside lambda: " << localVar << std::endl;
};
lambda();
}
int main() {
exampleFunction();
return 0;
}
</syntaxhighlight>
=== ラムダ式のキャプチャ変数の有効範囲 ===
キャプチャした変数は、ラムダ式の定義されたスコープ内で有効です。
=== ラムダ式と関数オブジェクトの比較 ===
関数オブジェクトは通常、クラスとして明示的に定義されますが、ラムダ式はその場で簡潔に記述できます。
== 構造化束縛とラムダ式 ==
{{Main|C++/構造化束縛}}
=== 構造化束縛とは何か? ===
C++17で導入された構造化束縛により、タプルやペアの要素を一度に複数の変数へ分割して代入できます。
=== ラムダ式での構造化束縛の使用方法 ===
ラムダ式内でも構造化束縛を使って引数を分割できます。
:<syntaxhighlight lang="c++">
auto print_pair = [](auto&& pair) {
auto [first, second] = pair;
std::cout << "First: " << first << ", Second: " << second << std::endl;
};
std::pair<int, std::string> my_pair = {42, "hello"};
print_pair(my_pair); // Output: First: 42, Second: hello
</syntaxhighlight>
この例では、ラムダ式の中で構造化束縛を使用して <code>std::pair</code> の内容を個別にアクセスしています。構造化束縛を使うことで、コードが簡潔になり、変数にアクセスするための分割や解釈が容易になります。
== ラムダ式の進化と新機能 ==
=== C++14でのラムダ式の改良 ===
C++14では、ラムダ式にいくつかの改良が加えられました。特に注目すべき点は、ラムダ式の引数型の自動推論です。C++11では、引数の型を明示的に指定する必要がありましたが、C++14では <code>auto</code> キーワードを使用して型を推論できます。
:<syntaxhighlight lang=c++>
auto add = [](auto x, auto y) {
return x + y;
};
</syntaxhighlight>
この例では、引数の型を <code>auto</code> と指定することで、任意の型の引数をラムダ式で受け取ることができます。これにより、テンプレート関数のような汎用性を持つラムダ式を記述できます。
=== C++17でのキャプチャ初期化 ===
C++17では、ラムダ式にキャプチャ初期化機能が追加されました。キャプチャリスト内で変数の初期化を行うことができ、外部スコープの変数をそのままキャプチャするのではなく、式を使って値を計算しながらキャプチャできます。
:<syntaxhighlight lang=c++>
int a = 3;
auto lambda = [b = a * 2]() {
std::cout << "b: " << b << std::endl;
};
</syntaxhighlight>
この例では、<code>a * 2</code> の結果を <code>b</code> にキャプチャして、ラムダ式内で使用しています。このキャプチャ方法は、ラムダ式内で安全に変数の初期化が行えるため、柔軟性が増します。
=== C++20での新機能 ===
C++20では、ラムダ式にさらなる改良が加えられました。特に、コンセプトのサポートが追加されたことで、ラムダ式の引数に型制約を設けることが可能になりました。
:<syntaxhighlight lang=c++>
auto add_numbers = [](std::integral auto x, std::integral auto y) {
return x + y;
};
</syntaxhighlight>
この例では、<code>std::integral</code> を使用して、ラムダ式の引数が整数型であることを制約しています。これにより、ラムダ式が受け取る引数に型の制限を設け、コードの安全性と可読性が向上します。
;まとめ
ラムダ式は、C++のプログラミングにおいて非常に強力なツールです。関数オブジェクトを簡潔に記述し、コードの可読性や保守性を高めることができます。C++のバージョンが進むにつれ、ラムダ式も進化し、より柔軟で効率的なコードを書くことが可能になっています。
{{Nav}}
[[Category:C++]]
accyi042dv75471k5g83nvesmxjex4s
C++/nullptr
0
39731
263049
248511
2024-11-04T22:36:25Z
Ef3
694
校閲と推敲
263049
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== nullptrの導入と背景 ===
<code>nullptr</code>は、C++11で導入された新しいキーワードです。従来、C++では<code>NULL</code>ポインタがヌルポインタを表すために使用されていましたが、これにはいくつかの問題がありました。例えば、<code>NULL</code>マクロは整数型に定義されている場合があり、ポインタと整数型の間で暗黙の型変換が発生する可能性がありました。これにより、ポインタと整数の不正な変換や、<code>NULL</code>ポインタと<code>0</code>の区別が難しくなるなどの問題が生じました。
<code>nullptr</code>は、これらの問題を解決するために導入されました。<code>nullptr</code>はポインタ型のリテラルであり、明示的にヌルポインタを表します。これにより、ヌルポインタと整数型の間での混乱を回避し、ポインタと整数の不正な変換を防ぐことができます。
=== nullptrの重要性と役割 ===
<code>nullptr</code>は、C++において安全性と可読性を向上させる重要な要素です。以下に<code>nullptr</code>の主な役割を示します。
; ヌルポインタの明確な表現 : <code>nullptr</code>は明示的にヌルポインタを表すため、コードの意図が明確になります。
; 型安全性の向上 : <code>nullptr</code>はポインタ型のリテラルであり、整数型との暗黙の変換を避けることができます。これにより、型安全性が向上し、バグの発生を防ぐことができます。
; 構文の明確化 : <code>nullptr</code>は新しいキーワードであり、その使用は明確な意味を持ちます。コードの可読性が向上し、メンテナンスが容易になります。
<code>nullptr</code>は、ポインタ型のリテラルとして、C++のポインタ操作において非常に重要な役割を果たしています。
== nullptrの基礎 ==
=== nullptrとは何か? ===
<code>nullptr</code>は、C++11で導入されたポインタ型のリテラルです。従来、C++では<code>NULL</code>ポインタを表すために、<code>NULL</code>マクロや<code>0</code>リテラルが使用されていましたが、これらにはいくつかの問題がありました。<code>nullptr</code>は、これらの問題を解決するために導入されました。
=== 従来のNULLポインタとの比較 ===
従来のC++では、<code>NULL</code>ポインタを表すために<code>NULL</code>マクロや<code>0</code>リテラルが使用されていました。しかし、これらの方法にはいくつかの問題がありました。
; 整数型との衝突 : <code>NULL</code>マクロや<code>0</code>リテラルは整数型としても定義されており、ポインタ型と整数型の間で暗黙の型変換が発生する可能性がありました。これにより、ポインタと整数の不正な変換や、意図しない動作が発生する可能性がありました。
; 型安全性の不足 : <code>NULL</code>マクロや<code>0</code>リテラルは、ポインタ型として明示的に指定されていないため、型安全性が不足していました。
=== nullptrの構文と使い方 ===
<code>nullptr</code>は、ポインタ型のリテラルとして次のように使用されます。
:<syntaxhighlight lang=c++>
int* ptr = nullptr;
</syntaxhighlight>
<code>nullptr</code>はポインタ型のリテラルであり、ポインタ型の変数に代入することができます。<code>nullptr</code>は、整数型ではなく、ポインタ型であり、ポインタと整数の不正な変換を防ぎます。
<code>nullptr</code>は、関数の引数や戻り値、条件式など、ポインタが必要な場所で使用されます。<code>nullptr</code>はヌルポインタを表し、ポインタ型の変数に代入することで、ヌルポインタを明示的に表現します。
== nullptrの利点 ==
=== ヌルポインタの明確な表現 ===
<code>nullptr</code>は、ヌルポインタを表すための明確なリテラルです。従来の<code>NULL</code>ポインタとは異なり、<code>nullptr</code>はポインタ型のリテラルであり、ヌルポインタを明示的に表現します。これにより、コード内でヌルポインタがどこで使用されているかが明確になります。
=== 安全性の向上とバグの防止 ===
<code>nullptr</code>は、整数型との混同を防ぎ、ポインタ型としてのみ使用されるため、型安全性が向上します。従来の<code>NULL</code>ポインタは整数型としても定義されており、整数型との間で暗黙の型変換が発生する可能性がありました。これにより、ポインタと整数の不正な変換や、ポインタの誤用によるバグが発生する可能性がありました。<code>nullptr</code>の導入により、このような問題を防ぐことができます。
=== 構文の明快さと可読性の向上 ===
<code>nullptr</code>は、その名前からもわかるように、ヌルポインタを表すリテラルであることが明確です。従来の<code>NULL</code>ポインタや<code>0</code>リテラルよりも、<code>nullptr</code>を使用することで、コードの意図がより明確になります。また、<code>nullptr</code>はポインタ型のリテラルとしてのみ使用されるため、コードの可読性が向上します。
== nullptrの応用 ==
=== nullptrの使用例とパターン ===
<code>nullptr</code>は、ポインタ型のリテラルとしてヌルポインタを表現するため、様々な場面で活用されます。以下は、<code>nullptr</code>の一般的な使用例とパターンです。
; ポインタの初期化 : ポインタを明示的に初期化する際に<code>nullptr</code>を使用します。例えば、以下のように使用します。
:<syntaxhighlight lang=c++>
int* ptr = nullptr;
</syntaxhighlight>
; 条件式での比較 : ポインタが<code>nullptr</code>であるかどうかをチェックする際に使用されます。
:<syntaxhighlight lang=c++>
if (ptr == nullptr) {
// ポインタがnullptrの場合の処理
}
</syntaxhighlight>
; ポインタの解放 : <syntaxhighlight lang=c++ inline>delete</syntaxhighlight>演算子を使用する際に、ポインタを<code>nullptr</code>に設定することが一般的です。
:<syntaxhighlight lang=c++>
delete ptr;
ptr = nullptr;
</syntaxhighlight>
; 関数の引数や戻り値 : 関数の引数や戻り値にヌルポインタを表現する際に<code>nullptr</code>を使用します。
:<syntaxhighlight lang=c++>
void foo(int* ptr) {
// 何らかの処理
}
int* bar() {
return nullptr;
}
</syntaxhighlight>
=== ポインタと参照の初期化におけるnullptrの活用 ===
<code>nullptr</code>は、ポインタと参照の初期化において重要な役割を果たします。以下は、ポインタと参照の初期化における<code>nullptr</code>の活用例です。
; ポインタの初期化 : <code>nullptr</code>を使用することで、ポインタが明示的にヌルポインタとして初期化されます。
:<syntaxhighlight lang=c++>
int* ptr = nullptr;
</syntaxhighlight>
; 参照の初期化 : 参照をヌルポインタに初期化することはできませんが、参照の代わりにポインタを使用する際に<code>nullptr</code>を使用することがあります。
:<syntaxhighlight lang=c++>
int* refPtr = nullptr; // 参照の代わりにポインタを使用
</syntaxhighlight>
=== nullptrの使用場面と適切な使い方 ===
<code>nullptr</code>は、C++11以降の標準で導入された機能であり、ヌルポインタをより明確に表現するために設計されています。<code>nullptr</code>を使用する際は、次のような場面での適切な使い方を心掛けると良いでしょう。
; 初期化時の明示的な使用 : ポインタ変数を初期化する際には<code>nullptr</code>を使用し、明示的にヌルポインタであることを示します。
; 条件文での使用 : ポインタの状態をチェックする条件文で、<code>nullptr</code>を利用することで、可読性の高いコードを書くことができます。
; 関数の引数や戻り値の指定 : ヌルポインタを示す際には<code>nullptr</code>を使用し、意図を明確にします。
== まとめ ==
<code>nullptr</code>は、C++11で導入された重要なキーワードであり、ポインタ型のリテラルとしてヌルポインタを表すために設計されました。<code>nullptr</code>を使用することで、コードの可読性が向上し、型安全性が確保され、バグの発生を防ぐことができます。<code>nullptr</code>は、C++のプログラミングにおいて重要な要素であり、今後の開発においても広く使用されることが期待されます。
{{Nav}}
{{DEFAULTSORT:NULLPTR}}
[[Category:C++]]
sg7chctrnuizg92ays0874qfqcvnfl6
C++/Uniform initialization
0
39732
263050
248515
2024-11-04T22:42:19Z
Ef3
694
校閲と推敲
263050
wikitext
text/x-wiki
{{Nav}}
== Uniform Initializationの概要 ==
Uniform initializationは、C++11で導入された初期化方法の一つであり、ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用して異なる種類のオブジェクトを初期化する手法を指します。この方法は、さまざまな初期化シナリオで統一された構文を提供し、コードの一貫性や可読性を向上させることを目的としています。
=== Uniform Initializationとは何か? ===
Uniform initializationは、オブジェクトを初期化する際にブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用する方法です。例えば、整数や浮動小数点数、配列、構造体、クラスなど、さまざまなデータ型やオブジェクトをこの方法で初期化することができます。この方法は、従来の初期化方法と比較して一貫性があり、初心者から上級者までの開発者にとって理解しやすい構文を提供します。
=== どのような問題を解決するのか? ===
Uniform initializationは、従来の初期化方法が持っていたいくつかの問題点を解決することを目指しています。従来の初期化方法では、初期化に使用される構文が多様であり、一貫性が欠けていました。また、一部の初期化方法では暗黙の型変換が発生し、意図しない挙動を引き起こすことがありました。Uniform initializationはこれらの問題を解決し、初期化の一貫性と安全性を向上させることを目指しています。
=== C++11で導入された背景や動機 ===
C++11では、Uniform initializationが導入された背景にはいくつかの要因があります。一つは、初期化の一貫性と可読性の向上です。従来の初期化方法では、開発者がそれぞれの初期化方法を覚える必要がありました。Uniform initializationは統一された初期化構文を提供することで、コードの可読性を向上させます。また、Uniform initializationは暗黙の型変換を防止し、初期化時の意図しない挙動を減らすことができます。これにより、プログラムの安全性が向上し、バグの発生を防ぐことができます。
== Uniform Initializationの基本的な文法 ==
Uniform initializationを使用すると、さまざまなオブジェクトを一貫した構文で初期化できます。この章では、Uniform initializationの基本的な文法について詳しく見ていきます。
=== ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用した初期化の基本形 ===
ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用した初期化は、Uniform initializationの基本形です。これは次のように使用します。
:<syntaxhighlight lang=c++>
// 整数の初期化
int x{10};
// 浮動小数点数の初期化
double y{3.14};
// 文字列の初期化
std::string str{"Hello"};
// 配列の初期化
int arr[]{1, 2, 3, 4, 5};
// 構造体の初期化
struct Point {
int x;
int y;
};
Point p{5, 10};
</syntaxhighlight>
このように、ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> 内に初期化したい値を列挙することで、さまざまなオブジェクトを初期化できます。この方法は、従来の初期化方法と比較して一貫性があり、初心者から上級者までの開発者にとって理解しやすい構文を提供します。
=== 初期化リストを使った初期化方法の解説 ===
Uniform initializationでは、初期化リストを使って複数の値を一度に初期化することもできます。これは、ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> 内に値をコンマで区切って列挙することで行います。
:<syntaxhighlight lang=c++>
// 初期化リストを使った初期化
std::vector<int> vec{1, 2, 3, 4, 5};
// 多次元配列の初期化
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
// 構造体の初期化
struct Rectangle {
int width;
int height;
};
Rectangle rect{10, 20};
</syntaxhighlight>
初期化リストを使うことで、複数の値を効率的に初期化できます。また、初期化リストを使用すると、初期化したいオブジェクトの型に関係なく、統一された構文で初期化を行うことができます。
=== 型推論との組み合わせ ===
Uniform initializationは、型推論との組み合わせて使用することもできます。これにより、初期化時に型を明示的に指定する必要がなくなり、より簡潔なコードを書くことができます。
:<syntaxhighlight lang=c++>
// 型推論とUniform initializationの組み合わせ
auto x{10}; // int型として推論される
auto y{3.14}; // double型として推論される
auto str{"Hello"}; // const char*型として推論される
auto vec = std::vector<int>{1, 2, 3}; // std::vector<int>型として推論される
</syntaxhighlight>
型推論を使用することで、コードの記述量を減らし、初期化時の型の明示性を向上させることができます。Uniform initializationと型推論を組み合わせて使用することで、より効率的で読みやすいコードを書くことができます。
== Uniform Initializationの利点 ==
Uniform initializationは、さまざまな初期化シナリオでいくつかの重要な利点を提供します。ここでは、その利点について詳しく説明します。
=== 初期化リストの明確な構文 ===
Uniform initializationでは、初期化リストを使用することで、オブジェクトを初期化する際の構文が明確になります。ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用して値を列挙することで、初期化する値が明確に区別され、初期化の意図が明確に表現されます。
:<syntaxhighlight lang=c++>
// 初期化リストの明確な構文
std::vector<int> vec{1, 2, 3, 4, 5};
Rectangle rect{10, 20};
</syntaxhighlight>
このように、初期化リストを使用することで、初期化の構文が統一され、初心者から上級者までの開発者がコードを理解しやすくなります。
=== ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使った初期化の一貫性 ===
Uniform initializationでは、どのようなオブジェクトでもブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用して初期化できます。これにより、異なる種類のオブジェクトを初期化する際に、一貫した構文を使用することができます。
:<syntaxhighlight lang=c++>
// ブレース {}を使った初期化の一貫性
int x{10};
double y{3.14};
std::string str{"Hello"};
</syntaxhighlight>
このように、ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使った初期化は、初期化方法を一貫させるための優れた手段です。
=== 暗黙の型変換を防止する安全性 ===
従来の初期化方法では、暗黙の型変換が発生し、意図しない挙動を引き起こすことがありました。しかし、Uniform initializationを使用すると、暗黙の型変換を防止できます。ブレース <syntaxhighlight lang=c++ inline>{}</syntaxhighlight> を使用することで、明示的な型変換が行われ、初期化の安全性が向上します。
:<syntaxhighlight lang=c++>
// 暗黙の型変換を防止する安全性
int x{3.14}; // エラー、暗黙の型変換が禁止されているため
</syntaxhighlight>
このように、Uniform initializationは、初期化時の安全性を向上させるための重要な手段です。
=== コンパイル時のエラーの早期発見 ===
Uniform initializationでは、初期化時に不正な初期化が行われた場合、コンパイラがエラーを報告します。これにより、バグを早期に発見し、修正することができます。
:<syntaxhighlight lang=c++>
// コンパイル時のエラーの早期発見
std::vector<int> vec{1, 2, "three"}; // エラー、型の不一致があるため
</syntaxhighlight>
このように、Uniform initializationを使用することで、コンパイル時のエラーを早期に発見でき、コードの品質を向上させることができます。
== まとめ ==
Uniform initializationは、C++11で導入された強力な初期化手法であり、さまざまなオブジェクトを一貫した構文で初期化することができます。これにより、初期化の一貫性や可読性が向上し、バグの発生を防ぐことができます。また、Uniform initializationを使用することで、コードの安全性や品質を向上させることができます。今後のC++プログラミングにおいて、Uniform initializationを積極的に活用していきましょう。
{{Nav}}
{{DEFAULTSORT:UNIFORM INITIALIZATION}}
[[Category:C++]]
qvr3aldkdqowhe5m8sq793ci8u7283n
C++/関数
0
39734
263065
251790
2024-11-05T02:53:38Z
Ef3
694
/* 関数の基本 */ 校閲と推敲
263065
wikitext
text/x-wiki
{{Nav}}
== 関数の基本 ==
=== 関数とは何か? ===
関数は、プログラム内で特定のタスクを実行するための独立したコードブロックです。関数を使用することで、コードの再利用や保守が容易になり、プログラムの構造を論理的に分割することで可読性が向上します。
=== 関数の定義と宣言 ===
関数の定義は、関数の具体的な動作を示す部分であり、宣言は関数の存在をコンパイラに知らせる部分です。C++11以降、トレイリングリターン型を使用した宣言は、特に複雑な型において可読性を高めます。
==== トレイリングリターン型による関数の宣言と定義 ====
<syntaxhighlight lang="cpp">
// 関数の宣言
auto add(int a, int b) -> int;
// 関数の定義
auto add(int a, int b) -> int {
return a + b;
}
</syntaxhighlight>
==== 旧式のC言語スタイル(非推奨) ====
古いC言語スタイルの宣言は、モダンC++では推奨されません。
<syntaxhighlight lang="cpp">
// 非推奨のスタイル
int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
=== 関数の呼び出しと戻り値 ===
関数は呼び出し元に制御を戻し、必要に応じて戻り値を返します。戻り値の型はトレイリングリターン型で明示すると分かりやすくなります。
<syntaxhighlight lang="cpp">
auto result = add(3, 4);
std::cout << "結果: " << result << std::endl; // 結果: 7
</syntaxhighlight>
=== パラメータと引数 ===
関数は入力としてパラメータを定義できます。呼び出し時に引数として渡されるデータを受け取り処理します。
<syntaxhighlight lang="cpp">
// 関数の定義
auto printSum(int a, int b) -> void {
auto sum = a + b;
std::cout << "合計: " << sum << std::endl;
}
// 呼び出し例
printSum(5, 7); // 出力: 合計: 12
</syntaxhighlight>
=== トレイリングリターン型の利点 ===
; 可読性向上 : 戻り値の型を関数名の後ろに記述することでコードの読みやすさが向上します。
; 一貫性 : [[C++/ラムダ式|ラムダ式]]や<code>auto</code>キーワードとスタイルを統一できます。
; 複雑な型の処理 : テンプレート関数や特殊な型を使う場合に役立ちます。
{{See also|C++/ラムダ式}}
; まとめ
トレイリングリターン型を利用することで、コードの保守性や可読性を向上させることができます。旧来のC言語スタイルは避け、モダンC++の規約を取り入れることが推奨されます。
== 関数の種類 ==
=== 戻り値のない関数 ===
戻り値のない関数は、結果を返さずに実行される関数です。主に何らかの処理を行うために使用されます。このような関数は、返り値の型として<syntaxhighlight lang=c++ inline>void</syntaxhighlight>を指定します。例えば、画面にメッセージを表示する関数や、ファイルにデータを書き込む関数などが戻り値のない関数の一例です。
:<syntaxhighlight lang=cpp>
auto printMessage() -> void {
std::cout << "Hello, World!" << std::endl;
}
</syntaxhighlight>
=== パラメータのない関数 ===
パラメータのない関数は、呼び出し時に引数を必要としない関数です。関数の定義には引数のリストが含まれません(C23より前のCでは明示的に <syntaxhighlight lang=c++ inline>void</syntaxhighlight> と書かないとパラメータ不明な関数でしたが、C++では何も書かなければパラメータがゼロ個な関数です)。この種類の関数は、特定の条件や状態を必要とせずに、単純な処理を実行する際に使用されます。例えば、現在の日付や時刻を取得する関数などがパラメータのない関数の一例です。
:<syntaxhighlight lang=cpp>
auto getCurrentTime() -> std::string {
auto t = std::time(nullptr);
auto tm = *std::localtime(&t);
std::ostringstream oss;
oss << std::put_time(&tm, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
</syntaxhighlight>
=== 戻り値とパラメータの両方を持つ関数 ===
戻り値とパラメータの両方を持つ関数は、関数が呼び出し元に値を返すだけでなく、関数の実行に必要な情報を引数として受け取る場合に使用されます。これらの関数は、複雑な処理を行う場合や、外部のデータを受け取ってそれを処理する場合に適しています。例えば、数値の加算を行う関数や、文字列の長さを返す関数などがこの種類の関数です。
:<syntaxhighlight lang=cpp>
auto add(int a, int b) -> int {
return a + b;
}
auto getStringLength(const std::string& str) -> std::size_t {
return str.length();
}
</syntaxhighlight>
=== 再帰関数 ===
再帰関数は、関数内で自身を呼び出す関数のことです。再帰関数は通常、同じ問題をより小さい部分に分割し、それを解決するために自身を再帰的に呼び出す場合に使用されます。再帰関数は、アルゴリズムの実装やデータ構造の操作など、特定の問題に対する効果的な解決法を提供する場合があります。
:<syntaxhighlight lang=cpp>
auto factorial(int n) -> int {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
</syntaxhighlight>
これらの関数の種類は、さまざまなプログラム設計や問題解決の方法を提供し、適切に使用することでコードの効率性と可読性を大幅に向上させます。トレイリングリターン型を使用することで、関数の宣言と定義が明確になり、複雑な型や再帰的な定義も扱いやすくなります。
== 関数オーバーロード ==
{{See also|[[C++/関数オーバーロード]]}}
=== 関数オーバーロードの概要 ===
関数オーバーロードとは、同じ名前の関数が複数定義され、それぞれが異なる引数リストを持つことです。C++では、関数名が同じでも引数の数や型が異なれば、異なる関数として扱われます。関数オーバーロードにより、同じ名前の関数を使って、複数のタイプやデータ構造に対応することができます。
=== オーバーロード解決のルール ===
関数オーバーロードの際には、呼び出し元で使用される引数のリストに一致する最も適切な関数が選択されます。オーバーロード解決のルールは次のようになります。
# 引数の数が一致する場合、引数の型が最も正確に一致する関数が選択されます。
# 引数の型が一致する関数が複数存在する場合、その引数の型がより具体的な関数が選択されます。
# キャストが必要な場合、最も少ないキャストが必要な関数が選択されます。
=== オーバーロードの例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
// int型の引数を受け取る関数
auto print(int num) -> void {
std::cout << "Integer: " << num << std::endl;
}
// double型の引数を受け取る関数
auto print(double num) -> void {
std::cout << "Double: " << num << std::endl;
}
// 文字列型の引数を受け取る関数
auto print(const std::string& str) -> void {
std::cout << "String: " << str << std::endl;
}
auto main() -> int {
print(5); // int型の関数が呼び出される
print(3.14); // double型の関数が呼び出される
print("Hello"); // 文字列型の関数が呼び出される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline></syntaxhighlight>という関数がオーバーロードされています。<syntaxhighlight lang=c++ inline></syntaxhighlight>関数は、整数型、浮動小数点型、および文字列型の引数を受け取る3つのバージョンがあります。<syntaxhighlight lang=c++ inline></syntaxhighlight>関数では、整数、浮動小数点数、および文字列を引数として<syntaxhighlight lang=c++ inline></syntaxhighlight>関数を呼び出していますが、それぞれ適切な型の<syntaxhighlight lang=c++ inline></syntaxhighlight>関数が選択されて呼び出されます。
; まとめ
関数オーバーロードは、同じ名前の関数を異なる引数リストで複数定義することで、さまざまなデータ型や状況に対応する柔軟なインターフェースを提供します。オーバーロード解決のルールを理解し、適切な関数を選択できるようにすることは、効果的なC++プログラミングの重要なスキルです。トレイリングリターン型を使うことで、関数の宣言がより明確になり、読みやすさも向上します。
== デフォルト引数 ==
=== デフォルト引数の利点と構文 ===
デフォルト引数は、関数の引数に初期値を設定することができる機能です。これにより、関数を呼び出す際に引数を省略することができ、デフォルト値が自動的に使用されます。デフォルト引数を使用することで、関数の呼び出しを簡略化し、コードの可読性を向上させることができます。
デフォルト引数の構文は、関数の引数リストで初期値を設定することです。例えば、以下のように定義します。
:<syntaxhighlight lang=c++>
auto myFunction(int x, int y = 10, int z = 20) -> void {
// 関数の本体
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>という関数が定義されています。この関数は、最初の引数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>は必須で、<syntaxhighlight lang=c++ inline>y</syntaxhighlight>と<syntaxhighlight lang=c++ inline>z</syntaxhighlight>はデフォルト値を持ちます。<syntaxhighlight lang=c++ inline>y</syntaxhighlight>のデフォルト値は10、<syntaxhighlight lang=c++ inline>z</syntaxhighlight>のデフォルト値は20です。
=== デフォルト引数の注意点 ===
デフォルト引数を使用する際には、いくつかの注意点があります。まず、デフォルト引数は、関数の定義または宣言のどちらか一方で指定する必要があります。また、デフォルト引数は、右側から順に指定される必要があります。つまり、右側の引数からデフォルト値を指定し、左側の引数にデフォルト値を指定することはできません。
また、デフォルト引数を持つ関数のオーバーロードも考慮する必要があります。複数の関数が同じ名前を持つ場合、それぞれの関数に異なるデフォルト引数を指定することができます。しかし、オーバーロード解決の際には、最も適切な関数を選択するために引数の型と数が考慮されます。
=== デフォルト引数の使用例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
// デフォルト引数を持つ関数の定義
auto greet(std::string name = "Guest") -> void {
std::cout << "Hello, " << name << "!" << std::endl;
}
auto main() -> int {
// デフォルト引数を使用して関数を呼び出す
greet(); // "Hello, Guest!" と表示される
greet("Alice"); // "Hello, Alice!" と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>greet</syntaxhighlight>という関数が定義されています。この関数は、引数<syntaxhighlight lang=c++ inline>name</syntaxhighlight>のデフォルト値を"Guest"としています。<syntaxhighlight lang=c++ inline>main</syntaxhighlight>関数では、<syntaxhighlight lang=c++ inline>greet</syntaxhighlight>関数を引数なしで呼び出すとデフォルト値が使用され、引数を指定して呼び出すとその値が使用されます。
=== 複数のデフォルト引数を持つ関数 ===
複数のデフォルト引数を持つ関数も定義できます。以下に例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 複数のデフォルト引数を持つ関数の定義
auto displayInfo(std::string name, int age = 0, std::string city = "Unknown") -> void {
std::cout << "Name: " << name << ", Age: " << age << ", City: " << city << std::endl;
}
auto main() -> int {
// デフォルト引数を使用して関数を呼び出す
displayInfo("Bob"); // Name: Bob, Age: 0, City: Unknown
displayInfo("Alice", 30); // Name: Alice, Age: 30, City: Unknown
displayInfo("Charlie", 25, "New York"); // Name: Charlie, Age: 25, City: New York
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>displayInfo</syntaxhighlight>という関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>name</syntaxhighlight>、<syntaxhighlight lang=c++ inline>age</syntaxhighlight>、<syntaxhighlight lang=c++ inline>city</syntaxhighlight>の3つの引数を持ち、<syntaxhighlight lang=c++ inline>age</syntaxhighlight>と<syntaxhighlight lang=c++ inline>city</syntaxhighlight>にデフォルト値が設定されています。<syntaxhighlight lang=c++ inline>main</syntaxhighlight>関数では、引数を部分的に省略して<syntaxhighlight lang=c++ inline>displayInfo</syntaxhighlight>関数を呼び出すことができ、指定されなかった引数にはデフォルト値が使用されます。
デフォルト引数をうまく活用することで、柔軟で読みやすいコードを書くことができます。特に、関数の呼び出しを簡潔にし、コードのメンテナンス性を向上させることができます。
== 参照渡しとポインタ渡し ==
=== 値渡しと参照渡しの違い ===
値渡しは、関数に引数として渡される値のコピーが関数内で作成されます。これに対して、参照渡しは、関数に引数として渡される変数のアドレスが関数に渡され、その変数に対する直接のアクセスが可能となります。値渡しでは、関数内での変数の変更は呼び出し元の変数に影響を与えませんが、参照渡しでは関数内での変更が呼び出し元の変数に反映されます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByValue(int value) -> void {
value = 100;
}
auto passByReference(int& ref) -> void {
ref = 100;
}
auto main() -> int {
int a{10};
int b{10};
passByValue(a);
passByReference(b);
std::cout << "a (pass by value): " << a << std::endl; // 10
std::cout << "b (pass by reference): " << b << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByValue</syntaxhighlight>関数は値渡し、<syntaxhighlight lang=c++ inline>passByReference</syntaxhighlight>関数は参照渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されませんが、<syntaxhighlight lang=c++ inline>b</syntaxhighlight>の値は変更されています。
=== ポインタ渡しと参照渡しの比較 ===
ポインタ渡しと参照渡しは、両方とも関数に変数のアドレスを渡すことができますが、その違いは主に構文とセマンティクスにあります。ポインタ渡しでは、関数定義と呼び出し時にポインタ演算子<syntaxhighlight lang=c++ inline>*</syntaxhighlight>とアドレス演算子<syntaxhighlight lang=c++ inline>&</syntaxhighlight>を使用する必要がありますが、参照渡しではこれらの演算子を使用する必要はありません。また、参照渡しではヌルポインタのチェックが不要であり、より安全です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByPointer(int* ptr) -> void {
if (ptr != nullptr) {
*ptr = 100;
}
}
auto main() -> int {
int a{10};
int* b{nullptr};
passByPointer(&a);
passByPointer(b);
std::cout << "a (pass by pointer): " << a << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByPointer</syntaxhighlight>関数はポインタ渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されますが、ヌルポインタ<syntaxhighlight lang=c++ inline>b</syntaxhighlight>に対しては安全に処理されています。
=== ポインタと参照の選択基準 ===
ポインタと参照の選択基準は、プログラムの要件や設計上の考慮事項によって異なります。一般的なガイドラインとしては、以下の点が挙げられます。
* '''ポインタ'''は、関数内でNULL値を許容する必要がある場合や、動的なメモリ管理が必要な場合に適しています。一方、'''参照'''はNULL値を許容せず、常に有効なオブジェクトを参照するために使用されます。
* '''参照'''は、ポインタよりも単純で直感的な構文を提供し、プログラムの読みやすさを向上させます。そのため、可読性や保守性を重視する場合には参照を選択することが一般的です。
* 関数の引数としてオブジェクトを渡す際に、オブジェクトを変更する必要がある場合には'''参照'''を使用します。一方、オブジェクトを変更しない場合や、オブジェクトがNULLである可能性がある場合には'''ポインタ'''を使用します。
これらの基準を考慮して、ポインタと参照を使い分けることで、効果的なプログラム設計を行うことができます。
== ラムダ式と無名関数 ==
{{See also|[[C++/ラムダ式]]}}
=== ラムダ式の概要 ===
ラムダ式は、匿名の関数を定義するための機能であり、関数オブジェクトとして扱われます。C++11から導入された機能であり、関数をインラインで定義し、その場で使用することができます。ラムダ式は、簡潔で直感的な記法を提供し、コードの可読性と書きやすさを向上させます。
=== ラムダ式の使用法と構文 ===
ラムダ式は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
[ キャプチャリスト ] ( パラメータリスト ) -> 戻り値型 { 本体 }
</syntaxhighlight>
; <syntaxhighlight lang=c++ inline>キャプチャリスト</syntaxhighlight> : ラムダ式が外部の変数を参照する場合に使用します。ラムダ式内で変数を使用する際に、その変数をラムダ式にキャプチャする必要があります。キャプチャリストは、ラムダ式がどの変数をキャプチャするかを指定します。
; <syntaxhighlight lang=c++ inline>パラメータリスト</syntaxhighlight> : ラムダ式の引数リストです。関数の引数と同様に、必要な引数を指定することができます。
; <syntaxhighlight lang=c++ inline>戻り値型</syntaxhighlight> : ラムダ式が返す値の型です。省略可能であり、省略するとコンパイラが自動的に返り値の型を推論します。
; <syntaxhighlight lang=c++ inline>本体</syntaxhighlight> : ラムダ式の本体です。関数の処理を記述します。
以下は、ラムダ式の簡単な例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
// ラムダ式を使った関数オブジェクトの定義と呼び出し
auto add = [](int x, int y) { return x + y; };
std::cout << add(3, 5) << std::endl; // 出力: 8
return 0;
}
</syntaxhighlight>
=== キャプチャリスト ===
キャプチャリストは、ラムダ式が外部の変数を参照する方法を指定します。キャプチャリストには、次のような種類があります。
; <syntaxhighlight lang=c++ inline>[]</syntaxhighlight> : キャプチャなし。ラムダ式内で外部の変数を使用できません。
; <syntaxhighlight lang=c++ inline>[&]</syntaxhighlight> : ラムダ式が参照する外部の変数を参照キャプチャします。参照キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することができます。
; <syntaxhighlight lang=c++ inline>[=]</syntaxhighlight> : ラムダ式が参照する外部の変数を値キャプチャします。値キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することはできません。
以下は、キャプチャリストを使用した例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
auto func1 = [&]() { return x + 1; }; // xを参照キャプチャ
auto func2 = [=]() { return x + 1; }; // xを値キャプチャ
x = 10;
std::cout << func1() << std::endl; // 出力: 11
std::cout << func2() << std::endl; // 出力: 6
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>func1</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を参照キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映され、<syntaxhighlight lang=c++ inline>func2</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を値キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映されません。
== 関数テンプレート ==
{{See also|[[C++/テンプレート#関数テンプレート]]}}
=== テンプレートの概要 ===
関数テンプレートは、異なるデータ型や値に対して汎用的な処理を行うための機能です。テンプレートを使用することで、同じコードを異なるデータ型や値に対して再利用することができます。C++において、関数テンプレートは、ジェネリックプログラミングの手法の一部として広く利用されています。
=== テンプレート関数の定義と使用法 ===
テンプレート関数は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
template <typename T>
T myFunction(T x, T y) {
return x + y;
}
</syntaxhighlight>
このように、<syntaxhighlight lang=c++ inline>template</syntaxhighlight>キーワードと<syntaxhighlight lang=c++ inline>typename</syntaxhighlight>または<syntaxhighlight lang=c++ inline>class</syntaxhighlight>キーワードを使用して、テンプレートパラメータを定義します。<syntaxhighlight lang=c++ inline>T</syntaxhighlight>はテンプレートパラメータであり、任意のデータ型を指定することができます。関数内では、<syntaxhighlight lang=c++ inline>T</syntaxhighlight>を通じてジェネリックな処理を行うことができます。
テンプレート関数を使用する際には、次のようにして呼び出します。
:<syntaxhighlight lang=c++>
int result1 = myFunction(3, 5); // int型の場合
double result2 = myFunction(3.5, 5.5); // double型の場合
</syntaxhighlight>
引数として与えるデータ型に応じて、適切なテンプレートインスタンスが生成されます。
=== テンプレートの特殊化 ===
テンプレートの特殊化は、特定のデータ型に対してカスタム処理を提供するための機能です。一般的なテンプレート関数に加えて、特定のデータ型に対する特殊なバージョンを提供することができます。これにより、特殊なデータ型に対して最適化された処理を行うことができます。
:<syntaxhighlight lang=c++>
// int型に特殊化されたテンプレート関数
template <>
int myFunction<int>(int x, int y) {
return x * y;
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型に特殊化された<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型の引数に対して掛け算を行います。特殊化されたテンプレート関数は、通常のテンプレート関数と同様に使用されますが、特定のデータ型に対して優先的に選択されます。
== 関数と型推論 ==
C++は複雑な型システムを持ち、コードの安全性と可読性を向上させるために型推論の機能を提供しています。特に、関数の引数や戻り値、ラムダ式において型推論を活用することができます。C++11以降の規格で導入されたこれらの機能を利用することで、より簡潔でメンテナンスしやすいコードを書くことが可能です。
=== 引数の型推論 ===
関数の引数に対する型推論は、C++20で導入されたコンセプトを使用することで実現できます。テンプレートを使用して、関数の引数の型を自動的に推論することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
// C++20以降での型推論を使用した関数テンプレート
template<typename T>
auto printValue(T value) -> void {
std::cout << value << std::endl;
}
auto main() -> int {
printValue(42); // int型を推論
printValue(3.14); // double型を推論
printValue("Hello"); // const char*型を推論
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>printValue</syntaxhighlight>関数はテンプレートを使用して引数の型を推論します。テンプレートの引数<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が、自動的に渡された引数の型に置き換えられます。
=== 戻り値の型推論 ===
戻り値の型推論は、C++14で導入された機能です。<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して、関数の戻り値の型をコンパイラに推論させることができます。これにより、関数の宣言が簡潔になり、コードの可読性が向上します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 戻り値の型推論を使用した関数
auto add(int a, int b) -> auto {
return a + b;
}
auto main() -> int {
std::cout << add(5, 3) << std::endl; // 8 と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数の戻り値の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>とし、コンパイラに型推論を任せています。
=== ラムダ式の型推論 ===
ラムダ式は、C++11で導入された匿名関数の一種です。ラムダ式では、引数や戻り値の型を省略することができ、コンパイラが自動的に推論してくれます。ラムダ式の型推論を利用することで、コードがより簡潔になります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// ラムダ式を使用してベクトルの各要素を2倍にする
std::for_each(numbers.begin(), numbers.end(), [](auto& n) {
n *= 2;
});
for (const auto& n : numbers) {
std::cout << n << " "; // 2 4 6 8 10 と表示される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ式の引数<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>としています。コンパイラは<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を自動的に推論し、適切な型として扱います。また、戻り値も型推論で暗黙に<code>int</code>が推論されます。
; まとめ
C++11以降の規格で導入された型推論の機能を活用することで、関数の引数や戻り値、ラムダ式の型を明示的に指定する必要がなくなり、コードがより簡潔で可読性の高いものになります。特に、C++14の<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>戻り値型推論やC++20のコンセプトを使用することで、複雑な型を扱う場合でもシンプルなコードを書くことができます。これらの機能を積極的に利用することで、よりメンテナブルで効率的なプログラムを作成することができます。
{{コラム|型推論を用いるとテンプレートを使わずジェネリックプログラミングができる|2=型推論を使用することで、テンプレートを使わずにジェネリックプログラミングを行うことができます。これは、C++11以降で導入された<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードや、C++14以降で導入された<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードなどを活用することで実現されます。
例えば、<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用することで、関数テンプレートを定義せずにジェネリックな関数を作成することができます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// ジェネリックな関数を定義
auto add(auto a, auto b) {
return a + b;
}
auto main() -> int {
auto result1 = add(5, 3); // int型として推論される
auto result2 = add(3.14, 2.5); // double型として推論される
std::cout << "Result 1: " << result1 << std::endl; // 8
std::cout << "Result 2: " << result2 << std::endl; // 5.64
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数は<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して引数と戻り値の型を推論しています。そのため、関数がジェネリックになり、さまざまな型の引数を受け取ることができます。
同様に、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用して変数の型を推論することもできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
decltype(x) y = 10; // 変数xと同じ型(int型)としてyの型が推論される
std::cout << "Value of y: " << y << std::endl; // 10
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>decltype(x)</syntaxhighlight>を使用して変数<syntaxhighlight lang=c++ inline>y</syntaxhighlight>の型を変数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>と同じ型として推論しています。このように、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用することで、変数の型を他の式や変数から推論することができます。
これらの型推論機能を組み合わせて使うことで、テンプレートを使わずにジェネリックなプログラミングを行うことができます。これにより、コードがより簡潔で読みやすくなり、プログラムの保守性が向上します。
}}
== 標準ライブラリの関数 ==
=== algorithm ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>algorithm</syntaxhighlight> ライブラリには、STL(Standard Template Library)の一部として、さまざまな便利な関数が含まれています。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::sort()</syntaxhighlight> : コンテナ内の要素をソートします。
; <syntaxhighlight lang=c++ inline>std::find()</syntaxhighlight> : コンテナ内で指定された値を検索します。
; <syntaxhighlight lang=c++ inline>std::count()</syntaxhighlight> : コンテナ内で指定された値の出現回数を数えます。
; <syntaxhighlight lang=c++ inline>std::accumulate()</syntaxhighlight> : コンテナ内の要素を合計します。
; <syntaxhighlight lang=c++ inline>std::transform()</syntaxhighlight> : コンテナ内の要素に対して変換を適用します。
=== functional ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>functional</syntaxhighlight> ライブラリは、関数オブジェクトを操作するためのユーティリティ関数を提供します。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::function</syntaxhighlight> : 任意の関数や関数オブジェクトをラップし、関数型として使用するためのクラスです。
; <syntaxhighlight lang=c++ inline>std::bind</syntaxhighlight> : 関数の一部の引数を固定し、新しい関数を作成します。
; <syntaxhighlight lang=c++ inline>std::plus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::minus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::multiplies</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::divides</syntaxhighlight> : 二項演算を行う関数オブジェクトです。
; <syntaxhighlight lang=c++ inline>std::greater</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::less</syntaxhighlight> : 比較を行う関数オブジェクトです。
=== その他の標準ライブラリ関数の利用法 ===
その他の標準ライブラリ関数を利用するには、適切なヘッダファイルをインクルードし、関数を呼び出すだけです。例えば、<syntaxhighlight lang=c++ inline>std::sort</syntaxhighlight>関数を使用する場合、<syntaxhighlight lang=c++ inline><algorithm></syntaxhighlight>ヘッダをインクルードします。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <algorithm>
#include <vector>
auto main() -> int {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// ソート
std::sort(vec.begin(), vec.end());
// 結果を表示
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
このように、標準ライブラリ関数を利用することで、効率的で信頼性の高いコードを書くことができます。
== C++11以降の関数関係の機能追加 ==
C++11以降では、関数に関する機能や新しいスタイルがいくつか導入されています。以下にいくつかの主な機能を紹介します。
; ラムダ式(Lambda Expressions) : C++11では、ラムダ式が導入されました。これは、簡潔な匿名関数を定義するための構文です。ラムダ式は、関数オブジェクトを簡単に定義し、スコープ内で即座に使用することができます。
:<syntaxhighlight lang=c++>
auto func = [](auto x, auto y) { return x + y; };
auto result = func(3, 4); // 7
</syntaxhighlight>
; <code>std::function</code>と<code>std::bind</code> : <code>std::function</code>は、任意の呼び出し可能なターゲット(関数、関数オブジェクト、ラムダ式など)を保持するための汎用的なクラステンプレートです。<code>std::bind</code>は、関数やメンバ関数の呼び出しを部分的に適用するためのツールです。
:<syntaxhighlight lang=c++>
#include <functional>
#include <iostream>
void foo(int x, int y) {
std::cout << "Sum: " << x + y << std::endl;
}
auto main() -> int {
auto f = std::bind(foo, 10, std::placeholders::_1);
f(20); // Sum: 30
return 0;
}
</syntaxhighlight>
; 右辺値参照と移動セマンティクス(Rvalue References and Move Semantics) : C++11では、右辺値参照と移動セマンティクスが導入されました。これにより、一時オブジェクトの所有権を効率的に移動できるようになり、効率的なメモリ管理やオブジェクトのパフォーマンスの向上が可能になりました。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1の所有権がv2に移動される
return 0;
}
</syntaxhighlight>
; constexpr関数 : <code>constexpr</code>修飾子を使って関数を宣言することで、コンパイル時に評価される定数式として使用できる関数を定義できます。これにより、コンパイル時の計算が可能になり、実行時のオーバーヘッドが軽減されます。
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
auto main() -> int {
constexpr int result = factorial(5); // コンパイル時に評価される
return 0;
}
</syntaxhighlight>
; デフォルト関数と削除関数 : <code>= default</code>および<code>= delete</code>キーワードを使用して、デフォルトのコンストラクタやデストラクタを明示的に指定することができます。また、<code>= delete</code>を使用して、意図的に特定の関数の定義を削除することもできます。
:<syntaxhighlight lang=c++>
class MyClass {
public:
// デフォルトのコンストラクタ
MyClass() = default;
// コピーコンストラクタを削除
MyClass(const MyClass&) = delete;
};
</syntaxhighlight>
; consteval関数 : <code>consteval</code>はC++20で導入されたキーワードで、constexpr関数の一種ですが、コンパイル時に実行されることが保証される点で異なります。<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義することができます。これにより、プログラムのパフォーマンスやセキュリティを向上させることができます。
:以下は、<code>consteval</code>を使用して素数を判定する関数を定義する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
// トレイリングリターン型を使った素数判定関数
consteval auto is_prime(int n) -> bool {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
auto main() -> int {
constexpr auto num{17};
if (constexpr bool result = is_prime(num); result) {
std::cout << num << " is a prime number." << std::endl;
} else {
std::cout << num << " is not a prime number." << std::endl;
}
return 0;
}
</syntaxhighlight>
: この例では、<code>is_prime</code>関数が<code>consteval</code>で修飾されています。そのため、この関数はコンパイル時に実行され、結果はコンパイル時に評価されます。<code>constexpr</code>修飾子を使用して変数<code>num</code>を定義し、この変数を<code>is_prime</code>関数の引数として使用しています。コンパイル時に<code>is_prime</code>関数が評価され、結果が定数式として求められます。その結果、変数<code>result</code>はコンパイル時に確定され、実行時には不変の値となります。
: このように、<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義し、実行時のオーバーヘッドを避けることができます。これにより、効率的なコードを記述し、パフォーマンスの向上やセキュリティの確保を実現することができます。
これらの機能やスタイルの導入により、C++の関数や関数に関連するコードの記述がより簡潔で効率的になり、より安全で柔軟なプログラミングが可能になりました。
== 例題と演習 ==
=== 簡単な問題から応用問題までの一連の演習 ===
; 簡単な問題
: 整数の配列が与えられたとき、その配列の要素の合計を計算する関数を作成してください。
; 中級レベルの問題
: 与えられた文字列が回文(前から読んでも後ろから読んでも同じ)かどうかを判定する関数を実装してください。
; 応用問題
: フィボナッチ数列の第n項を計算する関数を再帰的に実装してください。ただし、この関数の計算時間が指数時間になることを避けるために、適切な方法で最適化してください。
=== 回答例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
#include <cassert>
// 例題1の関数: 配列の合計を計算する関数
int sumArray(const int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
// 例題2の関数: 回文かどうかを判定する関数
bool isPalindrome(const std::string& str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
++left;
--right;
}
return true;
}
// 例題3の関数: フィボナッチ数列の第n項を計算する関数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
auto main() -> int {
// 例題1のテスト
int arr[] = {1, 2, 3, 4, 5};
assert(sumArray(arr, 5) == 15);
// 例題2のテスト
assert(isPalindrome("radar") == true);
assert(isPalindrome("hello") == false);
// 例題3のテスト
assert(fibonacci(6) == 8);
std::cout << "All tests passed!" << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、各関数をテストするために <syntaxhighlight lang=c++ inline>assert()</syntaxhighlight> マクロが使用されています。各関数が期待どおりに動作するかどうかを確認するために、適切な入力でテストを行います。
{{Nav}}
[[Category:C++]]
bvx90m6ni9f6979ee8vr52sek81c1fz
263066
263065
2024-11-05T03:00:06Z
Ef3
694
/* 関数の種類 */ 校閲と推敲
263066
wikitext
text/x-wiki
{{Nav}}
== 関数の基本 ==
=== 関数とは何か? ===
関数は、プログラム内で特定のタスクを実行するための独立したコードブロックです。関数を使用することで、コードの再利用や保守が容易になり、プログラムの構造を論理的に分割することで可読性が向上します。
=== 関数の定義と宣言 ===
関数の定義は、関数の具体的な動作を示す部分であり、宣言は関数の存在をコンパイラに知らせる部分です。C++11以降、トレイリングリターン型を使用した宣言は、特に複雑な型において可読性を高めます。
==== トレイリングリターン型による関数の宣言と定義 ====
<syntaxhighlight lang="cpp">
// 関数の宣言
auto add(int a, int b) -> int;
// 関数の定義
auto add(int a, int b) -> int {
return a + b;
}
</syntaxhighlight>
==== 旧式のC言語スタイル(非推奨) ====
古いC言語スタイルの宣言は、モダンC++では推奨されません。
<syntaxhighlight lang="cpp">
// 非推奨のスタイル
int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
=== 関数の呼び出しと戻り値 ===
関数は呼び出し元に制御を戻し、必要に応じて戻り値を返します。戻り値の型はトレイリングリターン型で明示すると分かりやすくなります。
<syntaxhighlight lang="cpp">
auto result = add(3, 4);
std::cout << "結果: " << result << std::endl; // 結果: 7
</syntaxhighlight>
=== パラメータと引数 ===
関数は入力としてパラメータを定義できます。呼び出し時に引数として渡されるデータを受け取り処理します。
<syntaxhighlight lang="cpp">
// 関数の定義
auto printSum(int a, int b) -> void {
auto sum = a + b;
std::cout << "合計: " << sum << std::endl;
}
// 呼び出し例
printSum(5, 7); // 出力: 合計: 12
</syntaxhighlight>
=== トレイリングリターン型の利点 ===
; 可読性向上 : 戻り値の型を関数名の後ろに記述することでコードの読みやすさが向上します。
; 一貫性 : [[C++/ラムダ式|ラムダ式]]や<code>auto</code>キーワードとスタイルを統一できます。
; 複雑な型の処理 : テンプレート関数や特殊な型を使う場合に役立ちます。
{{See also|C++/ラムダ式}}
; まとめ
トレイリングリターン型を利用することで、コードの保守性や可読性を向上させることができます。旧来のC言語スタイルは避け、モダンC++の規約を取り入れることが推奨されます。
== 関数の種類 ==
=== 戻り値のない関数 ===
戻り値のない関数は、結果を返さずに処理を実行する関数です。返り値の型として <syntaxhighlight lang=cpp inline>void</syntaxhighlight> を指定します。画面へのメッセージ表示やファイルへのデータ書き込みなどの副作用を目的とした処理によく使用されます。
:<syntaxhighlight lang=cpp>
auto printMessage() -> void {
std::cout << "Hello, World!" << std::endl;
}
</syntaxhighlight>
=== パラメータのない関数 ===
パラメータのない関数は、呼び出し時に引数を必要としない関数です。C++では空の引数リスト <syntaxhighlight lang=cpp inline>()</syntaxhighlight> で定義します(C23以前のCとは異なり、<syntaxhighlight lang=cpp inline>void</syntaxhighlight> の明示は不要です)。システムの状態取得など、外部入力に依存しない処理に適しています。
:<syntaxhighlight lang=cpp>
auto getCurrentTime() -> std::string {
const auto now = std::time(nullptr);
const auto local_time = *std::localtime(&now);
std::ostringstream oss;
oss << std::put_time(&local_time, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
</syntaxhighlight>
=== 戻り値とパラメータを持つ関数 ===
入力パラメータを受け取り、処理結果を戻り値として返す最も一般的な関数の形式です。入力データの変換や計算など、純粋な関数型プログラミングの基本となります。
:<syntaxhighlight lang=cpp>
auto add(const int a, const int b) -> int {
return a + b;
}
auto getStringLength(const std::string& str) -> std::size_t {
return str.length();
}
</syntaxhighlight>
=== 再帰関数 ===
関数内で自身を呼び出す関数です。問題を小さな部分問題に分割して解決する際に有効です。階乗計算やツリー構造の探索など、自己相似的な問題に適しています。ただし、深い再帰呼び出しはスタックオーバーフローのリスクがあるため、適切な終了条件の設定が重要です。
:<syntaxhighlight lang=cpp>
auto factorial(const int n) -> int {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
</syntaxhighlight>
これらの関数の種類を適切に使い分けることで、保守性と可読性の高いコードを設計できます。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特に複雑な戻り値の型を持つ関数や、テンプレート関数の定義が明確になります。
== 関数オーバーロード ==
{{See also|[[C++/関数オーバーロード]]}}
=== 関数オーバーロードの概要 ===
関数オーバーロードとは、同じ名前の関数が複数定義され、それぞれが異なる引数リストを持つことです。C++では、関数名が同じでも引数の数や型が異なれば、異なる関数として扱われます。関数オーバーロードにより、同じ名前の関数を使って、複数のタイプやデータ構造に対応することができます。
=== オーバーロード解決のルール ===
関数オーバーロードの際には、呼び出し元で使用される引数のリストに一致する最も適切な関数が選択されます。オーバーロード解決のルールは次のようになります。
# 引数の数が一致する場合、引数の型が最も正確に一致する関数が選択されます。
# 引数の型が一致する関数が複数存在する場合、その引数の型がより具体的な関数が選択されます。
# キャストが必要な場合、最も少ないキャストが必要な関数が選択されます。
=== オーバーロードの例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
// int型の引数を受け取る関数
auto print(int num) -> void {
std::cout << "Integer: " << num << std::endl;
}
// double型の引数を受け取る関数
auto print(double num) -> void {
std::cout << "Double: " << num << std::endl;
}
// 文字列型の引数を受け取る関数
auto print(const std::string& str) -> void {
std::cout << "String: " << str << std::endl;
}
auto main() -> int {
print(5); // int型の関数が呼び出される
print(3.14); // double型の関数が呼び出される
print("Hello"); // 文字列型の関数が呼び出される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline></syntaxhighlight>という関数がオーバーロードされています。<syntaxhighlight lang=c++ inline></syntaxhighlight>関数は、整数型、浮動小数点型、および文字列型の引数を受け取る3つのバージョンがあります。<syntaxhighlight lang=c++ inline></syntaxhighlight>関数では、整数、浮動小数点数、および文字列を引数として<syntaxhighlight lang=c++ inline></syntaxhighlight>関数を呼び出していますが、それぞれ適切な型の<syntaxhighlight lang=c++ inline></syntaxhighlight>関数が選択されて呼び出されます。
; まとめ
関数オーバーロードは、同じ名前の関数を異なる引数リストで複数定義することで、さまざまなデータ型や状況に対応する柔軟なインターフェースを提供します。オーバーロード解決のルールを理解し、適切な関数を選択できるようにすることは、効果的なC++プログラミングの重要なスキルです。トレイリングリターン型を使うことで、関数の宣言がより明確になり、読みやすさも向上します。
== デフォルト引数 ==
=== デフォルト引数の利点と構文 ===
デフォルト引数は、関数の引数に初期値を設定することができる機能です。これにより、関数を呼び出す際に引数を省略することができ、デフォルト値が自動的に使用されます。デフォルト引数を使用することで、関数の呼び出しを簡略化し、コードの可読性を向上させることができます。
デフォルト引数の構文は、関数の引数リストで初期値を設定することです。例えば、以下のように定義します。
:<syntaxhighlight lang=c++>
auto myFunction(int x, int y = 10, int z = 20) -> void {
// 関数の本体
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>という関数が定義されています。この関数は、最初の引数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>は必須で、<syntaxhighlight lang=c++ inline>y</syntaxhighlight>と<syntaxhighlight lang=c++ inline>z</syntaxhighlight>はデフォルト値を持ちます。<syntaxhighlight lang=c++ inline>y</syntaxhighlight>のデフォルト値は10、<syntaxhighlight lang=c++ inline>z</syntaxhighlight>のデフォルト値は20です。
=== デフォルト引数の注意点 ===
デフォルト引数を使用する際には、いくつかの注意点があります。まず、デフォルト引数は、関数の定義または宣言のどちらか一方で指定する必要があります。また、デフォルト引数は、右側から順に指定される必要があります。つまり、右側の引数からデフォルト値を指定し、左側の引数にデフォルト値を指定することはできません。
また、デフォルト引数を持つ関数のオーバーロードも考慮する必要があります。複数の関数が同じ名前を持つ場合、それぞれの関数に異なるデフォルト引数を指定することができます。しかし、オーバーロード解決の際には、最も適切な関数を選択するために引数の型と数が考慮されます。
=== デフォルト引数の使用例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
// デフォルト引数を持つ関数の定義
auto greet(std::string name = "Guest") -> void {
std::cout << "Hello, " << name << "!" << std::endl;
}
auto main() -> int {
// デフォルト引数を使用して関数を呼び出す
greet(); // "Hello, Guest!" と表示される
greet("Alice"); // "Hello, Alice!" と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>greet</syntaxhighlight>という関数が定義されています。この関数は、引数<syntaxhighlight lang=c++ inline>name</syntaxhighlight>のデフォルト値を"Guest"としています。<syntaxhighlight lang=c++ inline>main</syntaxhighlight>関数では、<syntaxhighlight lang=c++ inline>greet</syntaxhighlight>関数を引数なしで呼び出すとデフォルト値が使用され、引数を指定して呼び出すとその値が使用されます。
=== 複数のデフォルト引数を持つ関数 ===
複数のデフォルト引数を持つ関数も定義できます。以下に例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 複数のデフォルト引数を持つ関数の定義
auto displayInfo(std::string name, int age = 0, std::string city = "Unknown") -> void {
std::cout << "Name: " << name << ", Age: " << age << ", City: " << city << std::endl;
}
auto main() -> int {
// デフォルト引数を使用して関数を呼び出す
displayInfo("Bob"); // Name: Bob, Age: 0, City: Unknown
displayInfo("Alice", 30); // Name: Alice, Age: 30, City: Unknown
displayInfo("Charlie", 25, "New York"); // Name: Charlie, Age: 25, City: New York
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>displayInfo</syntaxhighlight>という関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>name</syntaxhighlight>、<syntaxhighlight lang=c++ inline>age</syntaxhighlight>、<syntaxhighlight lang=c++ inline>city</syntaxhighlight>の3つの引数を持ち、<syntaxhighlight lang=c++ inline>age</syntaxhighlight>と<syntaxhighlight lang=c++ inline>city</syntaxhighlight>にデフォルト値が設定されています。<syntaxhighlight lang=c++ inline>main</syntaxhighlight>関数では、引数を部分的に省略して<syntaxhighlight lang=c++ inline>displayInfo</syntaxhighlight>関数を呼び出すことができ、指定されなかった引数にはデフォルト値が使用されます。
デフォルト引数をうまく活用することで、柔軟で読みやすいコードを書くことができます。特に、関数の呼び出しを簡潔にし、コードのメンテナンス性を向上させることができます。
== 参照渡しとポインタ渡し ==
=== 値渡しと参照渡しの違い ===
値渡しは、関数に引数として渡される値のコピーが関数内で作成されます。これに対して、参照渡しは、関数に引数として渡される変数のアドレスが関数に渡され、その変数に対する直接のアクセスが可能となります。値渡しでは、関数内での変数の変更は呼び出し元の変数に影響を与えませんが、参照渡しでは関数内での変更が呼び出し元の変数に反映されます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByValue(int value) -> void {
value = 100;
}
auto passByReference(int& ref) -> void {
ref = 100;
}
auto main() -> int {
int a{10};
int b{10};
passByValue(a);
passByReference(b);
std::cout << "a (pass by value): " << a << std::endl; // 10
std::cout << "b (pass by reference): " << b << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByValue</syntaxhighlight>関数は値渡し、<syntaxhighlight lang=c++ inline>passByReference</syntaxhighlight>関数は参照渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されませんが、<syntaxhighlight lang=c++ inline>b</syntaxhighlight>の値は変更されています。
=== ポインタ渡しと参照渡しの比較 ===
ポインタ渡しと参照渡しは、両方とも関数に変数のアドレスを渡すことができますが、その違いは主に構文とセマンティクスにあります。ポインタ渡しでは、関数定義と呼び出し時にポインタ演算子<syntaxhighlight lang=c++ inline>*</syntaxhighlight>とアドレス演算子<syntaxhighlight lang=c++ inline>&</syntaxhighlight>を使用する必要がありますが、参照渡しではこれらの演算子を使用する必要はありません。また、参照渡しではヌルポインタのチェックが不要であり、より安全です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByPointer(int* ptr) -> void {
if (ptr != nullptr) {
*ptr = 100;
}
}
auto main() -> int {
int a{10};
int* b{nullptr};
passByPointer(&a);
passByPointer(b);
std::cout << "a (pass by pointer): " << a << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByPointer</syntaxhighlight>関数はポインタ渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されますが、ヌルポインタ<syntaxhighlight lang=c++ inline>b</syntaxhighlight>に対しては安全に処理されています。
=== ポインタと参照の選択基準 ===
ポインタと参照の選択基準は、プログラムの要件や設計上の考慮事項によって異なります。一般的なガイドラインとしては、以下の点が挙げられます。
* '''ポインタ'''は、関数内でNULL値を許容する必要がある場合や、動的なメモリ管理が必要な場合に適しています。一方、'''参照'''はNULL値を許容せず、常に有効なオブジェクトを参照するために使用されます。
* '''参照'''は、ポインタよりも単純で直感的な構文を提供し、プログラムの読みやすさを向上させます。そのため、可読性や保守性を重視する場合には参照を選択することが一般的です。
* 関数の引数としてオブジェクトを渡す際に、オブジェクトを変更する必要がある場合には'''参照'''を使用します。一方、オブジェクトを変更しない場合や、オブジェクトがNULLである可能性がある場合には'''ポインタ'''を使用します。
これらの基準を考慮して、ポインタと参照を使い分けることで、効果的なプログラム設計を行うことができます。
== ラムダ式と無名関数 ==
{{See also|[[C++/ラムダ式]]}}
=== ラムダ式の概要 ===
ラムダ式は、匿名の関数を定義するための機能であり、関数オブジェクトとして扱われます。C++11から導入された機能であり、関数をインラインで定義し、その場で使用することができます。ラムダ式は、簡潔で直感的な記法を提供し、コードの可読性と書きやすさを向上させます。
=== ラムダ式の使用法と構文 ===
ラムダ式は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
[ キャプチャリスト ] ( パラメータリスト ) -> 戻り値型 { 本体 }
</syntaxhighlight>
; <syntaxhighlight lang=c++ inline>キャプチャリスト</syntaxhighlight> : ラムダ式が外部の変数を参照する場合に使用します。ラムダ式内で変数を使用する際に、その変数をラムダ式にキャプチャする必要があります。キャプチャリストは、ラムダ式がどの変数をキャプチャするかを指定します。
; <syntaxhighlight lang=c++ inline>パラメータリスト</syntaxhighlight> : ラムダ式の引数リストです。関数の引数と同様に、必要な引数を指定することができます。
; <syntaxhighlight lang=c++ inline>戻り値型</syntaxhighlight> : ラムダ式が返す値の型です。省略可能であり、省略するとコンパイラが自動的に返り値の型を推論します。
; <syntaxhighlight lang=c++ inline>本体</syntaxhighlight> : ラムダ式の本体です。関数の処理を記述します。
以下は、ラムダ式の簡単な例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
// ラムダ式を使った関数オブジェクトの定義と呼び出し
auto add = [](int x, int y) { return x + y; };
std::cout << add(3, 5) << std::endl; // 出力: 8
return 0;
}
</syntaxhighlight>
=== キャプチャリスト ===
キャプチャリストは、ラムダ式が外部の変数を参照する方法を指定します。キャプチャリストには、次のような種類があります。
; <syntaxhighlight lang=c++ inline>[]</syntaxhighlight> : キャプチャなし。ラムダ式内で外部の変数を使用できません。
; <syntaxhighlight lang=c++ inline>[&]</syntaxhighlight> : ラムダ式が参照する外部の変数を参照キャプチャします。参照キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することができます。
; <syntaxhighlight lang=c++ inline>[=]</syntaxhighlight> : ラムダ式が参照する外部の変数を値キャプチャします。値キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することはできません。
以下は、キャプチャリストを使用した例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
auto func1 = [&]() { return x + 1; }; // xを参照キャプチャ
auto func2 = [=]() { return x + 1; }; // xを値キャプチャ
x = 10;
std::cout << func1() << std::endl; // 出力: 11
std::cout << func2() << std::endl; // 出力: 6
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>func1</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を参照キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映され、<syntaxhighlight lang=c++ inline>func2</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を値キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映されません。
== 関数テンプレート ==
{{See also|[[C++/テンプレート#関数テンプレート]]}}
=== テンプレートの概要 ===
関数テンプレートは、異なるデータ型や値に対して汎用的な処理を行うための機能です。テンプレートを使用することで、同じコードを異なるデータ型や値に対して再利用することができます。C++において、関数テンプレートは、ジェネリックプログラミングの手法の一部として広く利用されています。
=== テンプレート関数の定義と使用法 ===
テンプレート関数は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
template <typename T>
T myFunction(T x, T y) {
return x + y;
}
</syntaxhighlight>
このように、<syntaxhighlight lang=c++ inline>template</syntaxhighlight>キーワードと<syntaxhighlight lang=c++ inline>typename</syntaxhighlight>または<syntaxhighlight lang=c++ inline>class</syntaxhighlight>キーワードを使用して、テンプレートパラメータを定義します。<syntaxhighlight lang=c++ inline>T</syntaxhighlight>はテンプレートパラメータであり、任意のデータ型を指定することができます。関数内では、<syntaxhighlight lang=c++ inline>T</syntaxhighlight>を通じてジェネリックな処理を行うことができます。
テンプレート関数を使用する際には、次のようにして呼び出します。
:<syntaxhighlight lang=c++>
int result1 = myFunction(3, 5); // int型の場合
double result2 = myFunction(3.5, 5.5); // double型の場合
</syntaxhighlight>
引数として与えるデータ型に応じて、適切なテンプレートインスタンスが生成されます。
=== テンプレートの特殊化 ===
テンプレートの特殊化は、特定のデータ型に対してカスタム処理を提供するための機能です。一般的なテンプレート関数に加えて、特定のデータ型に対する特殊なバージョンを提供することができます。これにより、特殊なデータ型に対して最適化された処理を行うことができます。
:<syntaxhighlight lang=c++>
// int型に特殊化されたテンプレート関数
template <>
int myFunction<int>(int x, int y) {
return x * y;
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型に特殊化された<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型の引数に対して掛け算を行います。特殊化されたテンプレート関数は、通常のテンプレート関数と同様に使用されますが、特定のデータ型に対して優先的に選択されます。
== 関数と型推論 ==
C++は複雑な型システムを持ち、コードの安全性と可読性を向上させるために型推論の機能を提供しています。特に、関数の引数や戻り値、ラムダ式において型推論を活用することができます。C++11以降の規格で導入されたこれらの機能を利用することで、より簡潔でメンテナンスしやすいコードを書くことが可能です。
=== 引数の型推論 ===
関数の引数に対する型推論は、C++20で導入されたコンセプトを使用することで実現できます。テンプレートを使用して、関数の引数の型を自動的に推論することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
// C++20以降での型推論を使用した関数テンプレート
template<typename T>
auto printValue(T value) -> void {
std::cout << value << std::endl;
}
auto main() -> int {
printValue(42); // int型を推論
printValue(3.14); // double型を推論
printValue("Hello"); // const char*型を推論
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>printValue</syntaxhighlight>関数はテンプレートを使用して引数の型を推論します。テンプレートの引数<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が、自動的に渡された引数の型に置き換えられます。
=== 戻り値の型推論 ===
戻り値の型推論は、C++14で導入された機能です。<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して、関数の戻り値の型をコンパイラに推論させることができます。これにより、関数の宣言が簡潔になり、コードの可読性が向上します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 戻り値の型推論を使用した関数
auto add(int a, int b) -> auto {
return a + b;
}
auto main() -> int {
std::cout << add(5, 3) << std::endl; // 8 と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数の戻り値の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>とし、コンパイラに型推論を任せています。
=== ラムダ式の型推論 ===
ラムダ式は、C++11で導入された匿名関数の一種です。ラムダ式では、引数や戻り値の型を省略することができ、コンパイラが自動的に推論してくれます。ラムダ式の型推論を利用することで、コードがより簡潔になります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// ラムダ式を使用してベクトルの各要素を2倍にする
std::for_each(numbers.begin(), numbers.end(), [](auto& n) {
n *= 2;
});
for (const auto& n : numbers) {
std::cout << n << " "; // 2 4 6 8 10 と表示される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ式の引数<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>としています。コンパイラは<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を自動的に推論し、適切な型として扱います。また、戻り値も型推論で暗黙に<code>int</code>が推論されます。
; まとめ
C++11以降の規格で導入された型推論の機能を活用することで、関数の引数や戻り値、ラムダ式の型を明示的に指定する必要がなくなり、コードがより簡潔で可読性の高いものになります。特に、C++14の<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>戻り値型推論やC++20のコンセプトを使用することで、複雑な型を扱う場合でもシンプルなコードを書くことができます。これらの機能を積極的に利用することで、よりメンテナブルで効率的なプログラムを作成することができます。
{{コラム|型推論を用いるとテンプレートを使わずジェネリックプログラミングができる|2=型推論を使用することで、テンプレートを使わずにジェネリックプログラミングを行うことができます。これは、C++11以降で導入された<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードや、C++14以降で導入された<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードなどを活用することで実現されます。
例えば、<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用することで、関数テンプレートを定義せずにジェネリックな関数を作成することができます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// ジェネリックな関数を定義
auto add(auto a, auto b) {
return a + b;
}
auto main() -> int {
auto result1 = add(5, 3); // int型として推論される
auto result2 = add(3.14, 2.5); // double型として推論される
std::cout << "Result 1: " << result1 << std::endl; // 8
std::cout << "Result 2: " << result2 << std::endl; // 5.64
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数は<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して引数と戻り値の型を推論しています。そのため、関数がジェネリックになり、さまざまな型の引数を受け取ることができます。
同様に、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用して変数の型を推論することもできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
decltype(x) y = 10; // 変数xと同じ型(int型)としてyの型が推論される
std::cout << "Value of y: " << y << std::endl; // 10
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>decltype(x)</syntaxhighlight>を使用して変数<syntaxhighlight lang=c++ inline>y</syntaxhighlight>の型を変数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>と同じ型として推論しています。このように、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用することで、変数の型を他の式や変数から推論することができます。
これらの型推論機能を組み合わせて使うことで、テンプレートを使わずにジェネリックなプログラミングを行うことができます。これにより、コードがより簡潔で読みやすくなり、プログラムの保守性が向上します。
}}
== 標準ライブラリの関数 ==
=== algorithm ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>algorithm</syntaxhighlight> ライブラリには、STL(Standard Template Library)の一部として、さまざまな便利な関数が含まれています。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::sort()</syntaxhighlight> : コンテナ内の要素をソートします。
; <syntaxhighlight lang=c++ inline>std::find()</syntaxhighlight> : コンテナ内で指定された値を検索します。
; <syntaxhighlight lang=c++ inline>std::count()</syntaxhighlight> : コンテナ内で指定された値の出現回数を数えます。
; <syntaxhighlight lang=c++ inline>std::accumulate()</syntaxhighlight> : コンテナ内の要素を合計します。
; <syntaxhighlight lang=c++ inline>std::transform()</syntaxhighlight> : コンテナ内の要素に対して変換を適用します。
=== functional ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>functional</syntaxhighlight> ライブラリは、関数オブジェクトを操作するためのユーティリティ関数を提供します。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::function</syntaxhighlight> : 任意の関数や関数オブジェクトをラップし、関数型として使用するためのクラスです。
; <syntaxhighlight lang=c++ inline>std::bind</syntaxhighlight> : 関数の一部の引数を固定し、新しい関数を作成します。
; <syntaxhighlight lang=c++ inline>std::plus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::minus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::multiplies</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::divides</syntaxhighlight> : 二項演算を行う関数オブジェクトです。
; <syntaxhighlight lang=c++ inline>std::greater</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::less</syntaxhighlight> : 比較を行う関数オブジェクトです。
=== その他の標準ライブラリ関数の利用法 ===
その他の標準ライブラリ関数を利用するには、適切なヘッダファイルをインクルードし、関数を呼び出すだけです。例えば、<syntaxhighlight lang=c++ inline>std::sort</syntaxhighlight>関数を使用する場合、<syntaxhighlight lang=c++ inline><algorithm></syntaxhighlight>ヘッダをインクルードします。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <algorithm>
#include <vector>
auto main() -> int {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// ソート
std::sort(vec.begin(), vec.end());
// 結果を表示
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
このように、標準ライブラリ関数を利用することで、効率的で信頼性の高いコードを書くことができます。
== C++11以降の関数関係の機能追加 ==
C++11以降では、関数に関する機能や新しいスタイルがいくつか導入されています。以下にいくつかの主な機能を紹介します。
; ラムダ式(Lambda Expressions) : C++11では、ラムダ式が導入されました。これは、簡潔な匿名関数を定義するための構文です。ラムダ式は、関数オブジェクトを簡単に定義し、スコープ内で即座に使用することができます。
:<syntaxhighlight lang=c++>
auto func = [](auto x, auto y) { return x + y; };
auto result = func(3, 4); // 7
</syntaxhighlight>
; <code>std::function</code>と<code>std::bind</code> : <code>std::function</code>は、任意の呼び出し可能なターゲット(関数、関数オブジェクト、ラムダ式など)を保持するための汎用的なクラステンプレートです。<code>std::bind</code>は、関数やメンバ関数の呼び出しを部分的に適用するためのツールです。
:<syntaxhighlight lang=c++>
#include <functional>
#include <iostream>
void foo(int x, int y) {
std::cout << "Sum: " << x + y << std::endl;
}
auto main() -> int {
auto f = std::bind(foo, 10, std::placeholders::_1);
f(20); // Sum: 30
return 0;
}
</syntaxhighlight>
; 右辺値参照と移動セマンティクス(Rvalue References and Move Semantics) : C++11では、右辺値参照と移動セマンティクスが導入されました。これにより、一時オブジェクトの所有権を効率的に移動できるようになり、効率的なメモリ管理やオブジェクトのパフォーマンスの向上が可能になりました。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1の所有権がv2に移動される
return 0;
}
</syntaxhighlight>
; constexpr関数 : <code>constexpr</code>修飾子を使って関数を宣言することで、コンパイル時に評価される定数式として使用できる関数を定義できます。これにより、コンパイル時の計算が可能になり、実行時のオーバーヘッドが軽減されます。
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
auto main() -> int {
constexpr int result = factorial(5); // コンパイル時に評価される
return 0;
}
</syntaxhighlight>
; デフォルト関数と削除関数 : <code>= default</code>および<code>= delete</code>キーワードを使用して、デフォルトのコンストラクタやデストラクタを明示的に指定することができます。また、<code>= delete</code>を使用して、意図的に特定の関数の定義を削除することもできます。
:<syntaxhighlight lang=c++>
class MyClass {
public:
// デフォルトのコンストラクタ
MyClass() = default;
// コピーコンストラクタを削除
MyClass(const MyClass&) = delete;
};
</syntaxhighlight>
; consteval関数 : <code>consteval</code>はC++20で導入されたキーワードで、constexpr関数の一種ですが、コンパイル時に実行されることが保証される点で異なります。<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義することができます。これにより、プログラムのパフォーマンスやセキュリティを向上させることができます。
:以下は、<code>consteval</code>を使用して素数を判定する関数を定義する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
// トレイリングリターン型を使った素数判定関数
consteval auto is_prime(int n) -> bool {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
auto main() -> int {
constexpr auto num{17};
if (constexpr bool result = is_prime(num); result) {
std::cout << num << " is a prime number." << std::endl;
} else {
std::cout << num << " is not a prime number." << std::endl;
}
return 0;
}
</syntaxhighlight>
: この例では、<code>is_prime</code>関数が<code>consteval</code>で修飾されています。そのため、この関数はコンパイル時に実行され、結果はコンパイル時に評価されます。<code>constexpr</code>修飾子を使用して変数<code>num</code>を定義し、この変数を<code>is_prime</code>関数の引数として使用しています。コンパイル時に<code>is_prime</code>関数が評価され、結果が定数式として求められます。その結果、変数<code>result</code>はコンパイル時に確定され、実行時には不変の値となります。
: このように、<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義し、実行時のオーバーヘッドを避けることができます。これにより、効率的なコードを記述し、パフォーマンスの向上やセキュリティの確保を実現することができます。
これらの機能やスタイルの導入により、C++の関数や関数に関連するコードの記述がより簡潔で効率的になり、より安全で柔軟なプログラミングが可能になりました。
== 例題と演習 ==
=== 簡単な問題から応用問題までの一連の演習 ===
; 簡単な問題
: 整数の配列が与えられたとき、その配列の要素の合計を計算する関数を作成してください。
; 中級レベルの問題
: 与えられた文字列が回文(前から読んでも後ろから読んでも同じ)かどうかを判定する関数を実装してください。
; 応用問題
: フィボナッチ数列の第n項を計算する関数を再帰的に実装してください。ただし、この関数の計算時間が指数時間になることを避けるために、適切な方法で最適化してください。
=== 回答例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
#include <cassert>
// 例題1の関数: 配列の合計を計算する関数
int sumArray(const int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
// 例題2の関数: 回文かどうかを判定する関数
bool isPalindrome(const std::string& str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
++left;
--right;
}
return true;
}
// 例題3の関数: フィボナッチ数列の第n項を計算する関数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
auto main() -> int {
// 例題1のテスト
int arr[] = {1, 2, 3, 4, 5};
assert(sumArray(arr, 5) == 15);
// 例題2のテスト
assert(isPalindrome("radar") == true);
assert(isPalindrome("hello") == false);
// 例題3のテスト
assert(fibonacci(6) == 8);
std::cout << "All tests passed!" << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、各関数をテストするために <syntaxhighlight lang=c++ inline>assert()</syntaxhighlight> マクロが使用されています。各関数が期待どおりに動作するかどうかを確認するために、適切な入力でテストを行います。
{{Nav}}
[[Category:C++]]
qyldcqyl9h7sl2phsq5td6vedww3gzi
263067
263066
2024-11-05T03:03:09Z
Ef3
694
/* 関数オーバーロード */ オーバーロード解決ルールの詳細化 コード例の改善(constの追加、より明確なコメント) 注意点セクションの追加 説明の具体化と正確性の向上 レイアウトの改善(セクション間の空行追加)
263067
wikitext
text/x-wiki
{{Nav}}
== 関数の基本 ==
=== 関数とは何か? ===
関数は、プログラム内で特定のタスクを実行するための独立したコードブロックです。関数を使用することで、コードの再利用や保守が容易になり、プログラムの構造を論理的に分割することで可読性が向上します。
=== 関数の定義と宣言 ===
関数の定義は、関数の具体的な動作を示す部分であり、宣言は関数の存在をコンパイラに知らせる部分です。C++11以降、トレイリングリターン型を使用した宣言は、特に複雑な型において可読性を高めます。
==== トレイリングリターン型による関数の宣言と定義 ====
<syntaxhighlight lang="cpp">
// 関数の宣言
auto add(int a, int b) -> int;
// 関数の定義
auto add(int a, int b) -> int {
return a + b;
}
</syntaxhighlight>
==== 旧式のC言語スタイル(非推奨) ====
古いC言語スタイルの宣言は、モダンC++では推奨されません。
<syntaxhighlight lang="cpp">
// 非推奨のスタイル
int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
=== 関数の呼び出しと戻り値 ===
関数は呼び出し元に制御を戻し、必要に応じて戻り値を返します。戻り値の型はトレイリングリターン型で明示すると分かりやすくなります。
<syntaxhighlight lang="cpp">
auto result = add(3, 4);
std::cout << "結果: " << result << std::endl; // 結果: 7
</syntaxhighlight>
=== パラメータと引数 ===
関数は入力としてパラメータを定義できます。呼び出し時に引数として渡されるデータを受け取り処理します。
<syntaxhighlight lang="cpp">
// 関数の定義
auto printSum(int a, int b) -> void {
auto sum = a + b;
std::cout << "合計: " << sum << std::endl;
}
// 呼び出し例
printSum(5, 7); // 出力: 合計: 12
</syntaxhighlight>
=== トレイリングリターン型の利点 ===
; 可読性向上 : 戻り値の型を関数名の後ろに記述することでコードの読みやすさが向上します。
; 一貫性 : [[C++/ラムダ式|ラムダ式]]や<code>auto</code>キーワードとスタイルを統一できます。
; 複雑な型の処理 : テンプレート関数や特殊な型を使う場合に役立ちます。
{{See also|C++/ラムダ式}}
; まとめ
トレイリングリターン型を利用することで、コードの保守性や可読性を向上させることができます。旧来のC言語スタイルは避け、モダンC++の規約を取り入れることが推奨されます。
== 関数の種類 ==
=== 戻り値のない関数 ===
戻り値のない関数は、結果を返さずに処理を実行する関数です。返り値の型として <syntaxhighlight lang=cpp inline>void</syntaxhighlight> を指定します。画面へのメッセージ表示やファイルへのデータ書き込みなどの副作用を目的とした処理によく使用されます。
:<syntaxhighlight lang=cpp>
auto printMessage() -> void {
std::cout << "Hello, World!" << std::endl;
}
</syntaxhighlight>
=== パラメータのない関数 ===
パラメータのない関数は、呼び出し時に引数を必要としない関数です。C++では空の引数リスト <syntaxhighlight lang=cpp inline>()</syntaxhighlight> で定義します(C23以前のCとは異なり、<syntaxhighlight lang=cpp inline>void</syntaxhighlight> の明示は不要です)。システムの状態取得など、外部入力に依存しない処理に適しています。
:<syntaxhighlight lang=cpp>
auto getCurrentTime() -> std::string {
const auto now = std::time(nullptr);
const auto local_time = *std::localtime(&now);
std::ostringstream oss;
oss << std::put_time(&local_time, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
</syntaxhighlight>
=== 戻り値とパラメータを持つ関数 ===
入力パラメータを受け取り、処理結果を戻り値として返す最も一般的な関数の形式です。入力データの変換や計算など、純粋な関数型プログラミングの基本となります。
:<syntaxhighlight lang=cpp>
auto add(const int a, const int b) -> int {
return a + b;
}
auto getStringLength(const std::string& str) -> std::size_t {
return str.length();
}
</syntaxhighlight>
=== 再帰関数 ===
関数内で自身を呼び出す関数です。問題を小さな部分問題に分割して解決する際に有効です。階乗計算やツリー構造の探索など、自己相似的な問題に適しています。ただし、深い再帰呼び出しはスタックオーバーフローのリスクがあるため、適切な終了条件の設定が重要です。
:<syntaxhighlight lang=cpp>
auto factorial(const int n) -> int {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
</syntaxhighlight>
これらの関数の種類を適切に使い分けることで、保守性と可読性の高いコードを設計できます。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特に複雑な戻り値の型を持つ関数や、テンプレート関数の定義が明確になります。
== 関数オーバーロード ==
{{See also|[[C++/関数オーバーロード]]}}
=== 関数オーバーロードの概要 ===
関数オーバーロードとは、同じ名前で異なるパラメータリストを持つ複数の関数を定義する機能です。C++では、関数名が同じでもパラメータの数や型が異なれば、それぞれ独立した関数として扱われます。これにより、同じような操作を異なる型のデータに対して、統一的な名前で提供できます。
=== オーバーロード解決のルール ===
コンパイラは以下の優先順位に従って最適な関数を選択します:
# 完全一致:パラメータの型と数が完全に一致する関数が最優先
# 昇格:整数の昇格(charからint)など、情報が失われない変換
# 標準変換:異なる数値型間の変換など
# ユーザー定義変換:変換コンストラクタやキャスト演算子による変換
複数の関数が同じ優先度で適合する場合は、曖昧性エラーとなります。
=== オーバーロードの例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// 整数値を表示
auto print(const int num) -> void {
std::cout << "Integer: " << num << std::endl;
}
// 浮動小数点数を表示
auto print(const double num) -> void {
std::cout << "Double: " << num << std::endl;
}
// 文字列を表示
auto print(const std::string& str) -> void {
std::cout << "String: " << str << std::endl;
}
auto main() -> int {
print(42); // Integer: 42
print(3.14159); // Double: 3.14159
print("Hello"); // String: Hello(文字列リテラルから std::string への暗黙変換)
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=cpp inline>print</syntaxhighlight>関数が3つの異なるバージョンでオーバーロードされています:
* 整数版(<syntaxhighlight lang=cpp inline>int</syntaxhighlight>)
* 浮動小数点版(<syntaxhighlight lang=cpp inline>double</syntaxhighlight>)
* 文字列版(<syntaxhighlight lang=cpp inline>const std::string&</syntaxhighlight>)
コンパイラは呼び出し時の引数の型に基づいて、最適な関数を自動的に選択します。
=== オーバーロード時の注意点 ===
* 戻り値の型の違いだけではオーバーロードできません
* 参照修飾子(const、volatile)の有無はオーバーロードの区別に有効です
* テンプレートと関数オーバーロードを併用する場合、特殊化の順序に注意が必要です
* 暗黙の型変換による予期しない関数呼び出しを避けるため、必要に応じて<syntaxhighlight lang=cpp inline>explicit</syntaxhighlight>キーワードを使用します
=== まとめ ===
関数オーバーロードは、型安全かつ直感的なインターフェースを設計するための重要な機能です。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特にテンプレートや複雑な戻り値型を持つ関数のオーバーロードがより明確になります。
== デフォルト引数 ==
=== デフォルト引数の利点と構文 ===
デフォルト引数は、関数の引数に初期値を設定することができる機能です。これにより、関数を呼び出す際に引数を省略することができ、デフォルト値が自動的に使用されます。デフォルト引数を使用することで、関数の呼び出しを簡略化し、コードの可読性を向上させることができます。
デフォルト引数の構文は、関数の引数リストで初期値を設定することです。例えば、以下のように定義します。
:<syntaxhighlight lang=c++>
auto myFunction(int x, int y = 10, int z = 20) -> void {
// 関数の本体
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>という関数が定義されています。この関数は、最初の引数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>は必須で、<syntaxhighlight lang=c++ inline>y</syntaxhighlight>と<syntaxhighlight lang=c++ inline>z</syntaxhighlight>はデフォルト値を持ちます。<syntaxhighlight lang=c++ inline>y</syntaxhighlight>のデフォルト値は10、<syntaxhighlight lang=c++ inline>z</syntaxhighlight>のデフォルト値は20です。
=== デフォルト引数の注意点 ===
デフォルト引数を使用する際には、いくつかの注意点があります。まず、デフォルト引数は、関数の定義または宣言のどちらか一方で指定する必要があります。また、デフォルト引数は、右側から順に指定される必要があります。つまり、右側の引数からデフォルト値を指定し、左側の引数にデフォルト値を指定することはできません。
また、デフォルト引数を持つ関数のオーバーロードも考慮する必要があります。複数の関数が同じ名前を持つ場合、それぞれの関数に異なるデフォルト引数を指定することができます。しかし、オーバーロード解決の際には、最も適切な関数を選択するために引数の型と数が考慮されます。
=== デフォルト引数の使用例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
// デフォルト引数を持つ関数の定義
auto greet(std::string name = "Guest") -> void {
std::cout << "Hello, " << name << "!" << std::endl;
}
auto main() -> int {
// デフォルト引数を使用して関数を呼び出す
greet(); // "Hello, Guest!" と表示される
greet("Alice"); // "Hello, Alice!" と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>greet</syntaxhighlight>という関数が定義されています。この関数は、引数<syntaxhighlight lang=c++ inline>name</syntaxhighlight>のデフォルト値を"Guest"としています。<syntaxhighlight lang=c++ inline>main</syntaxhighlight>関数では、<syntaxhighlight lang=c++ inline>greet</syntaxhighlight>関数を引数なしで呼び出すとデフォルト値が使用され、引数を指定して呼び出すとその値が使用されます。
=== 複数のデフォルト引数を持つ関数 ===
複数のデフォルト引数を持つ関数も定義できます。以下に例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 複数のデフォルト引数を持つ関数の定義
auto displayInfo(std::string name, int age = 0, std::string city = "Unknown") -> void {
std::cout << "Name: " << name << ", Age: " << age << ", City: " << city << std::endl;
}
auto main() -> int {
// デフォルト引数を使用して関数を呼び出す
displayInfo("Bob"); // Name: Bob, Age: 0, City: Unknown
displayInfo("Alice", 30); // Name: Alice, Age: 30, City: Unknown
displayInfo("Charlie", 25, "New York"); // Name: Charlie, Age: 25, City: New York
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>displayInfo</syntaxhighlight>という関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>name</syntaxhighlight>、<syntaxhighlight lang=c++ inline>age</syntaxhighlight>、<syntaxhighlight lang=c++ inline>city</syntaxhighlight>の3つの引数を持ち、<syntaxhighlight lang=c++ inline>age</syntaxhighlight>と<syntaxhighlight lang=c++ inline>city</syntaxhighlight>にデフォルト値が設定されています。<syntaxhighlight lang=c++ inline>main</syntaxhighlight>関数では、引数を部分的に省略して<syntaxhighlight lang=c++ inline>displayInfo</syntaxhighlight>関数を呼び出すことができ、指定されなかった引数にはデフォルト値が使用されます。
デフォルト引数をうまく活用することで、柔軟で読みやすいコードを書くことができます。特に、関数の呼び出しを簡潔にし、コードのメンテナンス性を向上させることができます。
== 参照渡しとポインタ渡し ==
=== 値渡しと参照渡しの違い ===
値渡しは、関数に引数として渡される値のコピーが関数内で作成されます。これに対して、参照渡しは、関数に引数として渡される変数のアドレスが関数に渡され、その変数に対する直接のアクセスが可能となります。値渡しでは、関数内での変数の変更は呼び出し元の変数に影響を与えませんが、参照渡しでは関数内での変更が呼び出し元の変数に反映されます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByValue(int value) -> void {
value = 100;
}
auto passByReference(int& ref) -> void {
ref = 100;
}
auto main() -> int {
int a{10};
int b{10};
passByValue(a);
passByReference(b);
std::cout << "a (pass by value): " << a << std::endl; // 10
std::cout << "b (pass by reference): " << b << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByValue</syntaxhighlight>関数は値渡し、<syntaxhighlight lang=c++ inline>passByReference</syntaxhighlight>関数は参照渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されませんが、<syntaxhighlight lang=c++ inline>b</syntaxhighlight>の値は変更されています。
=== ポインタ渡しと参照渡しの比較 ===
ポインタ渡しと参照渡しは、両方とも関数に変数のアドレスを渡すことができますが、その違いは主に構文とセマンティクスにあります。ポインタ渡しでは、関数定義と呼び出し時にポインタ演算子<syntaxhighlight lang=c++ inline>*</syntaxhighlight>とアドレス演算子<syntaxhighlight lang=c++ inline>&</syntaxhighlight>を使用する必要がありますが、参照渡しではこれらの演算子を使用する必要はありません。また、参照渡しではヌルポインタのチェックが不要であり、より安全です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByPointer(int* ptr) -> void {
if (ptr != nullptr) {
*ptr = 100;
}
}
auto main() -> int {
int a{10};
int* b{nullptr};
passByPointer(&a);
passByPointer(b);
std::cout << "a (pass by pointer): " << a << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByPointer</syntaxhighlight>関数はポインタ渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されますが、ヌルポインタ<syntaxhighlight lang=c++ inline>b</syntaxhighlight>に対しては安全に処理されています。
=== ポインタと参照の選択基準 ===
ポインタと参照の選択基準は、プログラムの要件や設計上の考慮事項によって異なります。一般的なガイドラインとしては、以下の点が挙げられます。
* '''ポインタ'''は、関数内でNULL値を許容する必要がある場合や、動的なメモリ管理が必要な場合に適しています。一方、'''参照'''はNULL値を許容せず、常に有効なオブジェクトを参照するために使用されます。
* '''参照'''は、ポインタよりも単純で直感的な構文を提供し、プログラムの読みやすさを向上させます。そのため、可読性や保守性を重視する場合には参照を選択することが一般的です。
* 関数の引数としてオブジェクトを渡す際に、オブジェクトを変更する必要がある場合には'''参照'''を使用します。一方、オブジェクトを変更しない場合や、オブジェクトがNULLである可能性がある場合には'''ポインタ'''を使用します。
これらの基準を考慮して、ポインタと参照を使い分けることで、効果的なプログラム設計を行うことができます。
== ラムダ式と無名関数 ==
{{See also|[[C++/ラムダ式]]}}
=== ラムダ式の概要 ===
ラムダ式は、匿名の関数を定義するための機能であり、関数オブジェクトとして扱われます。C++11から導入された機能であり、関数をインラインで定義し、その場で使用することができます。ラムダ式は、簡潔で直感的な記法を提供し、コードの可読性と書きやすさを向上させます。
=== ラムダ式の使用法と構文 ===
ラムダ式は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
[ キャプチャリスト ] ( パラメータリスト ) -> 戻り値型 { 本体 }
</syntaxhighlight>
; <syntaxhighlight lang=c++ inline>キャプチャリスト</syntaxhighlight> : ラムダ式が外部の変数を参照する場合に使用します。ラムダ式内で変数を使用する際に、その変数をラムダ式にキャプチャする必要があります。キャプチャリストは、ラムダ式がどの変数をキャプチャするかを指定します。
; <syntaxhighlight lang=c++ inline>パラメータリスト</syntaxhighlight> : ラムダ式の引数リストです。関数の引数と同様に、必要な引数を指定することができます。
; <syntaxhighlight lang=c++ inline>戻り値型</syntaxhighlight> : ラムダ式が返す値の型です。省略可能であり、省略するとコンパイラが自動的に返り値の型を推論します。
; <syntaxhighlight lang=c++ inline>本体</syntaxhighlight> : ラムダ式の本体です。関数の処理を記述します。
以下は、ラムダ式の簡単な例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
// ラムダ式を使った関数オブジェクトの定義と呼び出し
auto add = [](int x, int y) { return x + y; };
std::cout << add(3, 5) << std::endl; // 出力: 8
return 0;
}
</syntaxhighlight>
=== キャプチャリスト ===
キャプチャリストは、ラムダ式が外部の変数を参照する方法を指定します。キャプチャリストには、次のような種類があります。
; <syntaxhighlight lang=c++ inline>[]</syntaxhighlight> : キャプチャなし。ラムダ式内で外部の変数を使用できません。
; <syntaxhighlight lang=c++ inline>[&]</syntaxhighlight> : ラムダ式が参照する外部の変数を参照キャプチャします。参照キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することができます。
; <syntaxhighlight lang=c++ inline>[=]</syntaxhighlight> : ラムダ式が参照する外部の変数を値キャプチャします。値キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することはできません。
以下は、キャプチャリストを使用した例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
auto func1 = [&]() { return x + 1; }; // xを参照キャプチャ
auto func2 = [=]() { return x + 1; }; // xを値キャプチャ
x = 10;
std::cout << func1() << std::endl; // 出力: 11
std::cout << func2() << std::endl; // 出力: 6
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>func1</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を参照キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映され、<syntaxhighlight lang=c++ inline>func2</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を値キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映されません。
== 関数テンプレート ==
{{See also|[[C++/テンプレート#関数テンプレート]]}}
=== テンプレートの概要 ===
関数テンプレートは、異なるデータ型や値に対して汎用的な処理を行うための機能です。テンプレートを使用することで、同じコードを異なるデータ型や値に対して再利用することができます。C++において、関数テンプレートは、ジェネリックプログラミングの手法の一部として広く利用されています。
=== テンプレート関数の定義と使用法 ===
テンプレート関数は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
template <typename T>
T myFunction(T x, T y) {
return x + y;
}
</syntaxhighlight>
このように、<syntaxhighlight lang=c++ inline>template</syntaxhighlight>キーワードと<syntaxhighlight lang=c++ inline>typename</syntaxhighlight>または<syntaxhighlight lang=c++ inline>class</syntaxhighlight>キーワードを使用して、テンプレートパラメータを定義します。<syntaxhighlight lang=c++ inline>T</syntaxhighlight>はテンプレートパラメータであり、任意のデータ型を指定することができます。関数内では、<syntaxhighlight lang=c++ inline>T</syntaxhighlight>を通じてジェネリックな処理を行うことができます。
テンプレート関数を使用する際には、次のようにして呼び出します。
:<syntaxhighlight lang=c++>
int result1 = myFunction(3, 5); // int型の場合
double result2 = myFunction(3.5, 5.5); // double型の場合
</syntaxhighlight>
引数として与えるデータ型に応じて、適切なテンプレートインスタンスが生成されます。
=== テンプレートの特殊化 ===
テンプレートの特殊化は、特定のデータ型に対してカスタム処理を提供するための機能です。一般的なテンプレート関数に加えて、特定のデータ型に対する特殊なバージョンを提供することができます。これにより、特殊なデータ型に対して最適化された処理を行うことができます。
:<syntaxhighlight lang=c++>
// int型に特殊化されたテンプレート関数
template <>
int myFunction<int>(int x, int y) {
return x * y;
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型に特殊化された<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型の引数に対して掛け算を行います。特殊化されたテンプレート関数は、通常のテンプレート関数と同様に使用されますが、特定のデータ型に対して優先的に選択されます。
== 関数と型推論 ==
C++は複雑な型システムを持ち、コードの安全性と可読性を向上させるために型推論の機能を提供しています。特に、関数の引数や戻り値、ラムダ式において型推論を活用することができます。C++11以降の規格で導入されたこれらの機能を利用することで、より簡潔でメンテナンスしやすいコードを書くことが可能です。
=== 引数の型推論 ===
関数の引数に対する型推論は、C++20で導入されたコンセプトを使用することで実現できます。テンプレートを使用して、関数の引数の型を自動的に推論することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
// C++20以降での型推論を使用した関数テンプレート
template<typename T>
auto printValue(T value) -> void {
std::cout << value << std::endl;
}
auto main() -> int {
printValue(42); // int型を推論
printValue(3.14); // double型を推論
printValue("Hello"); // const char*型を推論
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>printValue</syntaxhighlight>関数はテンプレートを使用して引数の型を推論します。テンプレートの引数<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が、自動的に渡された引数の型に置き換えられます。
=== 戻り値の型推論 ===
戻り値の型推論は、C++14で導入された機能です。<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して、関数の戻り値の型をコンパイラに推論させることができます。これにより、関数の宣言が簡潔になり、コードの可読性が向上します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 戻り値の型推論を使用した関数
auto add(int a, int b) -> auto {
return a + b;
}
auto main() -> int {
std::cout << add(5, 3) << std::endl; // 8 と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数の戻り値の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>とし、コンパイラに型推論を任せています。
=== ラムダ式の型推論 ===
ラムダ式は、C++11で導入された匿名関数の一種です。ラムダ式では、引数や戻り値の型を省略することができ、コンパイラが自動的に推論してくれます。ラムダ式の型推論を利用することで、コードがより簡潔になります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// ラムダ式を使用してベクトルの各要素を2倍にする
std::for_each(numbers.begin(), numbers.end(), [](auto& n) {
n *= 2;
});
for (const auto& n : numbers) {
std::cout << n << " "; // 2 4 6 8 10 と表示される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ式の引数<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>としています。コンパイラは<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を自動的に推論し、適切な型として扱います。また、戻り値も型推論で暗黙に<code>int</code>が推論されます。
; まとめ
C++11以降の規格で導入された型推論の機能を活用することで、関数の引数や戻り値、ラムダ式の型を明示的に指定する必要がなくなり、コードがより簡潔で可読性の高いものになります。特に、C++14の<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>戻り値型推論やC++20のコンセプトを使用することで、複雑な型を扱う場合でもシンプルなコードを書くことができます。これらの機能を積極的に利用することで、よりメンテナブルで効率的なプログラムを作成することができます。
{{コラム|型推論を用いるとテンプレートを使わずジェネリックプログラミングができる|2=型推論を使用することで、テンプレートを使わずにジェネリックプログラミングを行うことができます。これは、C++11以降で導入された<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードや、C++14以降で導入された<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードなどを活用することで実現されます。
例えば、<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用することで、関数テンプレートを定義せずにジェネリックな関数を作成することができます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// ジェネリックな関数を定義
auto add(auto a, auto b) {
return a + b;
}
auto main() -> int {
auto result1 = add(5, 3); // int型として推論される
auto result2 = add(3.14, 2.5); // double型として推論される
std::cout << "Result 1: " << result1 << std::endl; // 8
std::cout << "Result 2: " << result2 << std::endl; // 5.64
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数は<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して引数と戻り値の型を推論しています。そのため、関数がジェネリックになり、さまざまな型の引数を受け取ることができます。
同様に、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用して変数の型を推論することもできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
decltype(x) y = 10; // 変数xと同じ型(int型)としてyの型が推論される
std::cout << "Value of y: " << y << std::endl; // 10
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>decltype(x)</syntaxhighlight>を使用して変数<syntaxhighlight lang=c++ inline>y</syntaxhighlight>の型を変数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>と同じ型として推論しています。このように、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用することで、変数の型を他の式や変数から推論することができます。
これらの型推論機能を組み合わせて使うことで、テンプレートを使わずにジェネリックなプログラミングを行うことができます。これにより、コードがより簡潔で読みやすくなり、プログラムの保守性が向上します。
}}
== 標準ライブラリの関数 ==
=== algorithm ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>algorithm</syntaxhighlight> ライブラリには、STL(Standard Template Library)の一部として、さまざまな便利な関数が含まれています。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::sort()</syntaxhighlight> : コンテナ内の要素をソートします。
; <syntaxhighlight lang=c++ inline>std::find()</syntaxhighlight> : コンテナ内で指定された値を検索します。
; <syntaxhighlight lang=c++ inline>std::count()</syntaxhighlight> : コンテナ内で指定された値の出現回数を数えます。
; <syntaxhighlight lang=c++ inline>std::accumulate()</syntaxhighlight> : コンテナ内の要素を合計します。
; <syntaxhighlight lang=c++ inline>std::transform()</syntaxhighlight> : コンテナ内の要素に対して変換を適用します。
=== functional ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>functional</syntaxhighlight> ライブラリは、関数オブジェクトを操作するためのユーティリティ関数を提供します。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::function</syntaxhighlight> : 任意の関数や関数オブジェクトをラップし、関数型として使用するためのクラスです。
; <syntaxhighlight lang=c++ inline>std::bind</syntaxhighlight> : 関数の一部の引数を固定し、新しい関数を作成します。
; <syntaxhighlight lang=c++ inline>std::plus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::minus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::multiplies</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::divides</syntaxhighlight> : 二項演算を行う関数オブジェクトです。
; <syntaxhighlight lang=c++ inline>std::greater</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::less</syntaxhighlight> : 比較を行う関数オブジェクトです。
=== その他の標準ライブラリ関数の利用法 ===
その他の標準ライブラリ関数を利用するには、適切なヘッダファイルをインクルードし、関数を呼び出すだけです。例えば、<syntaxhighlight lang=c++ inline>std::sort</syntaxhighlight>関数を使用する場合、<syntaxhighlight lang=c++ inline><algorithm></syntaxhighlight>ヘッダをインクルードします。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <algorithm>
#include <vector>
auto main() -> int {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// ソート
std::sort(vec.begin(), vec.end());
// 結果を表示
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
このように、標準ライブラリ関数を利用することで、効率的で信頼性の高いコードを書くことができます。
== C++11以降の関数関係の機能追加 ==
C++11以降では、関数に関する機能や新しいスタイルがいくつか導入されています。以下にいくつかの主な機能を紹介します。
; ラムダ式(Lambda Expressions) : C++11では、ラムダ式が導入されました。これは、簡潔な匿名関数を定義するための構文です。ラムダ式は、関数オブジェクトを簡単に定義し、スコープ内で即座に使用することができます。
:<syntaxhighlight lang=c++>
auto func = [](auto x, auto y) { return x + y; };
auto result = func(3, 4); // 7
</syntaxhighlight>
; <code>std::function</code>と<code>std::bind</code> : <code>std::function</code>は、任意の呼び出し可能なターゲット(関数、関数オブジェクト、ラムダ式など)を保持するための汎用的なクラステンプレートです。<code>std::bind</code>は、関数やメンバ関数の呼び出しを部分的に適用するためのツールです。
:<syntaxhighlight lang=c++>
#include <functional>
#include <iostream>
void foo(int x, int y) {
std::cout << "Sum: " << x + y << std::endl;
}
auto main() -> int {
auto f = std::bind(foo, 10, std::placeholders::_1);
f(20); // Sum: 30
return 0;
}
</syntaxhighlight>
; 右辺値参照と移動セマンティクス(Rvalue References and Move Semantics) : C++11では、右辺値参照と移動セマンティクスが導入されました。これにより、一時オブジェクトの所有権を効率的に移動できるようになり、効率的なメモリ管理やオブジェクトのパフォーマンスの向上が可能になりました。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1の所有権がv2に移動される
return 0;
}
</syntaxhighlight>
; constexpr関数 : <code>constexpr</code>修飾子を使って関数を宣言することで、コンパイル時に評価される定数式として使用できる関数を定義できます。これにより、コンパイル時の計算が可能になり、実行時のオーバーヘッドが軽減されます。
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
auto main() -> int {
constexpr int result = factorial(5); // コンパイル時に評価される
return 0;
}
</syntaxhighlight>
; デフォルト関数と削除関数 : <code>= default</code>および<code>= delete</code>キーワードを使用して、デフォルトのコンストラクタやデストラクタを明示的に指定することができます。また、<code>= delete</code>を使用して、意図的に特定の関数の定義を削除することもできます。
:<syntaxhighlight lang=c++>
class MyClass {
public:
// デフォルトのコンストラクタ
MyClass() = default;
// コピーコンストラクタを削除
MyClass(const MyClass&) = delete;
};
</syntaxhighlight>
; consteval関数 : <code>consteval</code>はC++20で導入されたキーワードで、constexpr関数の一種ですが、コンパイル時に実行されることが保証される点で異なります。<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義することができます。これにより、プログラムのパフォーマンスやセキュリティを向上させることができます。
:以下は、<code>consteval</code>を使用して素数を判定する関数を定義する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
// トレイリングリターン型を使った素数判定関数
consteval auto is_prime(int n) -> bool {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
auto main() -> int {
constexpr auto num{17};
if (constexpr bool result = is_prime(num); result) {
std::cout << num << " is a prime number." << std::endl;
} else {
std::cout << num << " is not a prime number." << std::endl;
}
return 0;
}
</syntaxhighlight>
: この例では、<code>is_prime</code>関数が<code>consteval</code>で修飾されています。そのため、この関数はコンパイル時に実行され、結果はコンパイル時に評価されます。<code>constexpr</code>修飾子を使用して変数<code>num</code>を定義し、この変数を<code>is_prime</code>関数の引数として使用しています。コンパイル時に<code>is_prime</code>関数が評価され、結果が定数式として求められます。その結果、変数<code>result</code>はコンパイル時に確定され、実行時には不変の値となります。
: このように、<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義し、実行時のオーバーヘッドを避けることができます。これにより、効率的なコードを記述し、パフォーマンスの向上やセキュリティの確保を実現することができます。
これらの機能やスタイルの導入により、C++の関数や関数に関連するコードの記述がより簡潔で効率的になり、より安全で柔軟なプログラミングが可能になりました。
== 例題と演習 ==
=== 簡単な問題から応用問題までの一連の演習 ===
; 簡単な問題
: 整数の配列が与えられたとき、その配列の要素の合計を計算する関数を作成してください。
; 中級レベルの問題
: 与えられた文字列が回文(前から読んでも後ろから読んでも同じ)かどうかを判定する関数を実装してください。
; 応用問題
: フィボナッチ数列の第n項を計算する関数を再帰的に実装してください。ただし、この関数の計算時間が指数時間になることを避けるために、適切な方法で最適化してください。
=== 回答例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
#include <cassert>
// 例題1の関数: 配列の合計を計算する関数
int sumArray(const int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
// 例題2の関数: 回文かどうかを判定する関数
bool isPalindrome(const std::string& str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
++left;
--right;
}
return true;
}
// 例題3の関数: フィボナッチ数列の第n項を計算する関数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
auto main() -> int {
// 例題1のテスト
int arr[] = {1, 2, 3, 4, 5};
assert(sumArray(arr, 5) == 15);
// 例題2のテスト
assert(isPalindrome("radar") == true);
assert(isPalindrome("hello") == false);
// 例題3のテスト
assert(fibonacci(6) == 8);
std::cout << "All tests passed!" << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、各関数をテストするために <syntaxhighlight lang=c++ inline>assert()</syntaxhighlight> マクロが使用されています。各関数が期待どおりに動作するかどうかを確認するために、適切な入力でテストを行います。
{{Nav}}
[[Category:C++]]
dck84e9haujnvxpyg44llomoavfi5o0
263068
263067
2024-11-05T03:06:46Z
Ef3
694
/* デフォルト引数 */ 主な変更点: 1. セクション構成の改善 2. コード例の最新化(const修飾子の追加) 3. ベストプラクティスセクションの追加 4. オーバーロードとの関係の説明追加 5. 技術的な正確性の向上
263068
wikitext
text/x-wiki
{{Nav}}
== 関数の基本 ==
=== 関数とは何か? ===
関数は、プログラム内で特定のタスクを実行するための独立したコードブロックです。関数を使用することで、コードの再利用や保守が容易になり、プログラムの構造を論理的に分割することで可読性が向上します。
=== 関数の定義と宣言 ===
関数の定義は、関数の具体的な動作を示す部分であり、宣言は関数の存在をコンパイラに知らせる部分です。C++11以降、トレイリングリターン型を使用した宣言は、特に複雑な型において可読性を高めます。
==== トレイリングリターン型による関数の宣言と定義 ====
<syntaxhighlight lang="cpp">
// 関数の宣言
auto add(int a, int b) -> int;
// 関数の定義
auto add(int a, int b) -> int {
return a + b;
}
</syntaxhighlight>
==== 旧式のC言語スタイル(非推奨) ====
古いC言語スタイルの宣言は、モダンC++では推奨されません。
<syntaxhighlight lang="cpp">
// 非推奨のスタイル
int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
=== 関数の呼び出しと戻り値 ===
関数は呼び出し元に制御を戻し、必要に応じて戻り値を返します。戻り値の型はトレイリングリターン型で明示すると分かりやすくなります。
<syntaxhighlight lang="cpp">
auto result = add(3, 4);
std::cout << "結果: " << result << std::endl; // 結果: 7
</syntaxhighlight>
=== パラメータと引数 ===
関数は入力としてパラメータを定義できます。呼び出し時に引数として渡されるデータを受け取り処理します。
<syntaxhighlight lang="cpp">
// 関数の定義
auto printSum(int a, int b) -> void {
auto sum = a + b;
std::cout << "合計: " << sum << std::endl;
}
// 呼び出し例
printSum(5, 7); // 出力: 合計: 12
</syntaxhighlight>
=== トレイリングリターン型の利点 ===
; 可読性向上 : 戻り値の型を関数名の後ろに記述することでコードの読みやすさが向上します。
; 一貫性 : [[C++/ラムダ式|ラムダ式]]や<code>auto</code>キーワードとスタイルを統一できます。
; 複雑な型の処理 : テンプレート関数や特殊な型を使う場合に役立ちます。
{{See also|C++/ラムダ式}}
; まとめ
トレイリングリターン型を利用することで、コードの保守性や可読性を向上させることができます。旧来のC言語スタイルは避け、モダンC++の規約を取り入れることが推奨されます。
== 関数の種類 ==
=== 戻り値のない関数 ===
戻り値のない関数は、結果を返さずに処理を実行する関数です。返り値の型として <syntaxhighlight lang=cpp inline>void</syntaxhighlight> を指定します。画面へのメッセージ表示やファイルへのデータ書き込みなどの副作用を目的とした処理によく使用されます。
:<syntaxhighlight lang=cpp>
auto printMessage() -> void {
std::cout << "Hello, World!" << std::endl;
}
</syntaxhighlight>
=== パラメータのない関数 ===
パラメータのない関数は、呼び出し時に引数を必要としない関数です。C++では空の引数リスト <syntaxhighlight lang=cpp inline>()</syntaxhighlight> で定義します(C23以前のCとは異なり、<syntaxhighlight lang=cpp inline>void</syntaxhighlight> の明示は不要です)。システムの状態取得など、外部入力に依存しない処理に適しています。
:<syntaxhighlight lang=cpp>
auto getCurrentTime() -> std::string {
const auto now = std::time(nullptr);
const auto local_time = *std::localtime(&now);
std::ostringstream oss;
oss << std::put_time(&local_time, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
</syntaxhighlight>
=== 戻り値とパラメータを持つ関数 ===
入力パラメータを受け取り、処理結果を戻り値として返す最も一般的な関数の形式です。入力データの変換や計算など、純粋な関数型プログラミングの基本となります。
:<syntaxhighlight lang=cpp>
auto add(const int a, const int b) -> int {
return a + b;
}
auto getStringLength(const std::string& str) -> std::size_t {
return str.length();
}
</syntaxhighlight>
=== 再帰関数 ===
関数内で自身を呼び出す関数です。問題を小さな部分問題に分割して解決する際に有効です。階乗計算やツリー構造の探索など、自己相似的な問題に適しています。ただし、深い再帰呼び出しはスタックオーバーフローのリスクがあるため、適切な終了条件の設定が重要です。
:<syntaxhighlight lang=cpp>
auto factorial(const int n) -> int {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
</syntaxhighlight>
これらの関数の種類を適切に使い分けることで、保守性と可読性の高いコードを設計できます。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特に複雑な戻り値の型を持つ関数や、テンプレート関数の定義が明確になります。
== 関数オーバーロード ==
{{See also|[[C++/関数オーバーロード]]}}
=== 関数オーバーロードの概要 ===
関数オーバーロードとは、同じ名前で異なるパラメータリストを持つ複数の関数を定義する機能です。C++では、関数名が同じでもパラメータの数や型が異なれば、それぞれ独立した関数として扱われます。これにより、同じような操作を異なる型のデータに対して、統一的な名前で提供できます。
=== オーバーロード解決のルール ===
コンパイラは以下の優先順位に従って最適な関数を選択します:
# 完全一致:パラメータの型と数が完全に一致する関数が最優先
# 昇格:整数の昇格(charからint)など、情報が失われない変換
# 標準変換:異なる数値型間の変換など
# ユーザー定義変換:変換コンストラクタやキャスト演算子による変換
複数の関数が同じ優先度で適合する場合は、曖昧性エラーとなります。
=== オーバーロードの例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// 整数値を表示
auto print(const int num) -> void {
std::cout << "Integer: " << num << std::endl;
}
// 浮動小数点数を表示
auto print(const double num) -> void {
std::cout << "Double: " << num << std::endl;
}
// 文字列を表示
auto print(const std::string& str) -> void {
std::cout << "String: " << str << std::endl;
}
auto main() -> int {
print(42); // Integer: 42
print(3.14159); // Double: 3.14159
print("Hello"); // String: Hello(文字列リテラルから std::string への暗黙変換)
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=cpp inline>print</syntaxhighlight>関数が3つの異なるバージョンでオーバーロードされています:
* 整数版(<syntaxhighlight lang=cpp inline>int</syntaxhighlight>)
* 浮動小数点版(<syntaxhighlight lang=cpp inline>double</syntaxhighlight>)
* 文字列版(<syntaxhighlight lang=cpp inline>const std::string&</syntaxhighlight>)
コンパイラは呼び出し時の引数の型に基づいて、最適な関数を自動的に選択します。
=== オーバーロード時の注意点 ===
* 戻り値の型の違いだけではオーバーロードできません
* 参照修飾子(const、volatile)の有無はオーバーロードの区別に有効です
* テンプレートと関数オーバーロードを併用する場合、特殊化の順序に注意が必要です
* 暗黙の型変換による予期しない関数呼び出しを避けるため、必要に応じて<syntaxhighlight lang=cpp inline>explicit</syntaxhighlight>キーワードを使用します
=== まとめ ===
関数オーバーロードは、型安全かつ直感的なインターフェースを設計するための重要な機能です。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特にテンプレートや複雑な戻り値型を持つ関数のオーバーロードがより明確になります。
== デフォルト引数 ==
=== デフォルト引数の概要 ===
デフォルト引数は、関数パラメータに初期値を設定する機能です。これにより、関数呼び出し時に一部の引数を省略でき、コードの簡潔性と柔軟性が向上します。
関数宣言でのデフォルト引数の基本構文:
:<syntaxhighlight lang=cpp>
auto function(int required, int optional = 10) -> void;
</syntaxhighlight>
=== デフォルト引数の規則 ===
# デフォルト引数は右端のパラメータから順に指定する必要があります
# デフォルト値は関数宣言時に一度だけ指定します(定義時には記述しません)
# デフォルト値には定数式またはグローバル変数を使用可能です
# クラスメンバ関数では、thisポインタを使用したデフォルト値も設定可能です
=== 基本的な使用例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// デフォルト引数を持つ関数の宣言
auto greet(const std::string& name = "Guest") -> void {
std::cout << "Hello, " << name << "!" << std::endl;
}
auto main() -> int {
greet(); // 出力: "Hello, Guest!"
greet("Alice"); // 出力: "Hello, Alice!"
return 0;
}
</syntaxhighlight>
=== 複数のデフォルト引数 ===
関数は複数のデフォルト引数を持つことができます:
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
auto displayInfo(
const std::string& name,
const int age = 0,
const std::string& city = "Unknown"
) -> void {
std::cout << "Name: " << name
<< ", Age: " << age
<< ", City: " << city << std::endl;
}
auto main() -> int {
displayInfo("Bob"); // Name: Bob, Age: 0, City: Unknown
displayInfo("Alice", 30); // Name: Alice, Age: 30, City: Unknown
displayInfo("Charlie", 25, "Tokyo"); // Name: Charlie, Age: 25, City: Tokyo
return 0;
}
</syntaxhighlight>
=== デフォルト引数とオーバーロード ===
デフォルト引数は関数オーバーロードと組み合わせて使用する際に注意が必要です:
:<syntaxhighlight lang=cpp>
// 良い例:明確な区別がある
auto process(const int x) -> void;
auto process(const int x, const std::string& s = "") -> void;
// 悪い例:曖昧な呼び出しの可能性
auto process(const int x, const int y = 0) -> void;
auto process(const int x, const std::string& s = "") -> void;
// process(42); // エラー:どちらの関数を呼び出すべきか曖昧
</syntaxhighlight>
=== ベストプラクティス ===
* デフォルト引数は関数宣言時にのみ指定し、定義では省略する
* 必須パラメータを左側に、オプショナルなパラメータを右側に配置する
* デフォルト値には意味のある値を使用する(例:数値の0、文字列の空文字列など)
* オーバーロードとの組み合わせ時は、曖昧性を避ける
* 変更される可能性のあるグローバル変数はデフォルト値として使用しない
=== まとめ ===
デフォルト引数は、関数インターフェースを柔軟にし、コードの可読性を向上させる強力な機能です。ただし、適切な使用には規則とベストプラクティスの理解が重要です。関数オーバーロードと組み合わせる際は、特に注意が必要です。
== 参照渡しとポインタ渡し ==
=== 値渡しと参照渡しの違い ===
値渡しは、関数に引数として渡される値のコピーが関数内で作成されます。これに対して、参照渡しは、関数に引数として渡される変数のアドレスが関数に渡され、その変数に対する直接のアクセスが可能となります。値渡しでは、関数内での変数の変更は呼び出し元の変数に影響を与えませんが、参照渡しでは関数内での変更が呼び出し元の変数に反映されます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByValue(int value) -> void {
value = 100;
}
auto passByReference(int& ref) -> void {
ref = 100;
}
auto main() -> int {
int a{10};
int b{10};
passByValue(a);
passByReference(b);
std::cout << "a (pass by value): " << a << std::endl; // 10
std::cout << "b (pass by reference): " << b << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByValue</syntaxhighlight>関数は値渡し、<syntaxhighlight lang=c++ inline>passByReference</syntaxhighlight>関数は参照渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されませんが、<syntaxhighlight lang=c++ inline>b</syntaxhighlight>の値は変更されています。
=== ポインタ渡しと参照渡しの比較 ===
ポインタ渡しと参照渡しは、両方とも関数に変数のアドレスを渡すことができますが、その違いは主に構文とセマンティクスにあります。ポインタ渡しでは、関数定義と呼び出し時にポインタ演算子<syntaxhighlight lang=c++ inline>*</syntaxhighlight>とアドレス演算子<syntaxhighlight lang=c++ inline>&</syntaxhighlight>を使用する必要がありますが、参照渡しではこれらの演算子を使用する必要はありません。また、参照渡しではヌルポインタのチェックが不要であり、より安全です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto passByPointer(int* ptr) -> void {
if (ptr != nullptr) {
*ptr = 100;
}
}
auto main() -> int {
int a{10};
int* b{nullptr};
passByPointer(&a);
passByPointer(b);
std::cout << "a (pass by pointer): " << a << std::endl; // 100
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>passByPointer</syntaxhighlight>関数はポインタ渡しを使用しています。<syntaxhighlight lang=c++ inline>a</syntaxhighlight>の値は変更されますが、ヌルポインタ<syntaxhighlight lang=c++ inline>b</syntaxhighlight>に対しては安全に処理されています。
=== ポインタと参照の選択基準 ===
ポインタと参照の選択基準は、プログラムの要件や設計上の考慮事項によって異なります。一般的なガイドラインとしては、以下の点が挙げられます。
* '''ポインタ'''は、関数内でNULL値を許容する必要がある場合や、動的なメモリ管理が必要な場合に適しています。一方、'''参照'''はNULL値を許容せず、常に有効なオブジェクトを参照するために使用されます。
* '''参照'''は、ポインタよりも単純で直感的な構文を提供し、プログラムの読みやすさを向上させます。そのため、可読性や保守性を重視する場合には参照を選択することが一般的です。
* 関数の引数としてオブジェクトを渡す際に、オブジェクトを変更する必要がある場合には'''参照'''を使用します。一方、オブジェクトを変更しない場合や、オブジェクトがNULLである可能性がある場合には'''ポインタ'''を使用します。
これらの基準を考慮して、ポインタと参照を使い分けることで、効果的なプログラム設計を行うことができます。
== ラムダ式と無名関数 ==
{{See also|[[C++/ラムダ式]]}}
=== ラムダ式の概要 ===
ラムダ式は、匿名の関数を定義するための機能であり、関数オブジェクトとして扱われます。C++11から導入された機能であり、関数をインラインで定義し、その場で使用することができます。ラムダ式は、簡潔で直感的な記法を提供し、コードの可読性と書きやすさを向上させます。
=== ラムダ式の使用法と構文 ===
ラムダ式は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
[ キャプチャリスト ] ( パラメータリスト ) -> 戻り値型 { 本体 }
</syntaxhighlight>
; <syntaxhighlight lang=c++ inline>キャプチャリスト</syntaxhighlight> : ラムダ式が外部の変数を参照する場合に使用します。ラムダ式内で変数を使用する際に、その変数をラムダ式にキャプチャする必要があります。キャプチャリストは、ラムダ式がどの変数をキャプチャするかを指定します。
; <syntaxhighlight lang=c++ inline>パラメータリスト</syntaxhighlight> : ラムダ式の引数リストです。関数の引数と同様に、必要な引数を指定することができます。
; <syntaxhighlight lang=c++ inline>戻り値型</syntaxhighlight> : ラムダ式が返す値の型です。省略可能であり、省略するとコンパイラが自動的に返り値の型を推論します。
; <syntaxhighlight lang=c++ inline>本体</syntaxhighlight> : ラムダ式の本体です。関数の処理を記述します。
以下は、ラムダ式の簡単な例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
// ラムダ式を使った関数オブジェクトの定義と呼び出し
auto add = [](int x, int y) { return x + y; };
std::cout << add(3, 5) << std::endl; // 出力: 8
return 0;
}
</syntaxhighlight>
=== キャプチャリスト ===
キャプチャリストは、ラムダ式が外部の変数を参照する方法を指定します。キャプチャリストには、次のような種類があります。
; <syntaxhighlight lang=c++ inline>[]</syntaxhighlight> : キャプチャなし。ラムダ式内で外部の変数を使用できません。
; <syntaxhighlight lang=c++ inline>[&]</syntaxhighlight> : ラムダ式が参照する外部の変数を参照キャプチャします。参照キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することができます。
; <syntaxhighlight lang=c++ inline>[=]</syntaxhighlight> : ラムダ式が参照する外部の変数を値キャプチャします。値キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することはできません。
以下は、キャプチャリストを使用した例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
auto func1 = [&]() { return x + 1; }; // xを参照キャプチャ
auto func2 = [=]() { return x + 1; }; // xを値キャプチャ
x = 10;
std::cout << func1() << std::endl; // 出力: 11
std::cout << func2() << std::endl; // 出力: 6
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>func1</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を参照キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映され、<syntaxhighlight lang=c++ inline>func2</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を値キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映されません。
== 関数テンプレート ==
{{See also|[[C++/テンプレート#関数テンプレート]]}}
=== テンプレートの概要 ===
関数テンプレートは、異なるデータ型や値に対して汎用的な処理を行うための機能です。テンプレートを使用することで、同じコードを異なるデータ型や値に対して再利用することができます。C++において、関数テンプレートは、ジェネリックプログラミングの手法の一部として広く利用されています。
=== テンプレート関数の定義と使用法 ===
テンプレート関数は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
template <typename T>
T myFunction(T x, T y) {
return x + y;
}
</syntaxhighlight>
このように、<syntaxhighlight lang=c++ inline>template</syntaxhighlight>キーワードと<syntaxhighlight lang=c++ inline>typename</syntaxhighlight>または<syntaxhighlight lang=c++ inline>class</syntaxhighlight>キーワードを使用して、テンプレートパラメータを定義します。<syntaxhighlight lang=c++ inline>T</syntaxhighlight>はテンプレートパラメータであり、任意のデータ型を指定することができます。関数内では、<syntaxhighlight lang=c++ inline>T</syntaxhighlight>を通じてジェネリックな処理を行うことができます。
テンプレート関数を使用する際には、次のようにして呼び出します。
:<syntaxhighlight lang=c++>
int result1 = myFunction(3, 5); // int型の場合
double result2 = myFunction(3.5, 5.5); // double型の場合
</syntaxhighlight>
引数として与えるデータ型に応じて、適切なテンプレートインスタンスが生成されます。
=== テンプレートの特殊化 ===
テンプレートの特殊化は、特定のデータ型に対してカスタム処理を提供するための機能です。一般的なテンプレート関数に加えて、特定のデータ型に対する特殊なバージョンを提供することができます。これにより、特殊なデータ型に対して最適化された処理を行うことができます。
:<syntaxhighlight lang=c++>
// int型に特殊化されたテンプレート関数
template <>
int myFunction<int>(int x, int y) {
return x * y;
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型に特殊化された<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型の引数に対して掛け算を行います。特殊化されたテンプレート関数は、通常のテンプレート関数と同様に使用されますが、特定のデータ型に対して優先的に選択されます。
== 関数と型推論 ==
C++は複雑な型システムを持ち、コードの安全性と可読性を向上させるために型推論の機能を提供しています。特に、関数の引数や戻り値、ラムダ式において型推論を活用することができます。C++11以降の規格で導入されたこれらの機能を利用することで、より簡潔でメンテナンスしやすいコードを書くことが可能です。
=== 引数の型推論 ===
関数の引数に対する型推論は、C++20で導入されたコンセプトを使用することで実現できます。テンプレートを使用して、関数の引数の型を自動的に推論することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
// C++20以降での型推論を使用した関数テンプレート
template<typename T>
auto printValue(T value) -> void {
std::cout << value << std::endl;
}
auto main() -> int {
printValue(42); // int型を推論
printValue(3.14); // double型を推論
printValue("Hello"); // const char*型を推論
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>printValue</syntaxhighlight>関数はテンプレートを使用して引数の型を推論します。テンプレートの引数<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が、自動的に渡された引数の型に置き換えられます。
=== 戻り値の型推論 ===
戻り値の型推論は、C++14で導入された機能です。<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して、関数の戻り値の型をコンパイラに推論させることができます。これにより、関数の宣言が簡潔になり、コードの可読性が向上します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 戻り値の型推論を使用した関数
auto add(int a, int b) -> auto {
return a + b;
}
auto main() -> int {
std::cout << add(5, 3) << std::endl; // 8 と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数の戻り値の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>とし、コンパイラに型推論を任せています。
=== ラムダ式の型推論 ===
ラムダ式は、C++11で導入された匿名関数の一種です。ラムダ式では、引数や戻り値の型を省略することができ、コンパイラが自動的に推論してくれます。ラムダ式の型推論を利用することで、コードがより簡潔になります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// ラムダ式を使用してベクトルの各要素を2倍にする
std::for_each(numbers.begin(), numbers.end(), [](auto& n) {
n *= 2;
});
for (const auto& n : numbers) {
std::cout << n << " "; // 2 4 6 8 10 と表示される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ式の引数<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>としています。コンパイラは<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を自動的に推論し、適切な型として扱います。また、戻り値も型推論で暗黙に<code>int</code>が推論されます。
; まとめ
C++11以降の規格で導入された型推論の機能を活用することで、関数の引数や戻り値、ラムダ式の型を明示的に指定する必要がなくなり、コードがより簡潔で可読性の高いものになります。特に、C++14の<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>戻り値型推論やC++20のコンセプトを使用することで、複雑な型を扱う場合でもシンプルなコードを書くことができます。これらの機能を積極的に利用することで、よりメンテナブルで効率的なプログラムを作成することができます。
{{コラム|型推論を用いるとテンプレートを使わずジェネリックプログラミングができる|2=型推論を使用することで、テンプレートを使わずにジェネリックプログラミングを行うことができます。これは、C++11以降で導入された<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードや、C++14以降で導入された<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードなどを活用することで実現されます。
例えば、<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用することで、関数テンプレートを定義せずにジェネリックな関数を作成することができます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// ジェネリックな関数を定義
auto add(auto a, auto b) {
return a + b;
}
auto main() -> int {
auto result1 = add(5, 3); // int型として推論される
auto result2 = add(3.14, 2.5); // double型として推論される
std::cout << "Result 1: " << result1 << std::endl; // 8
std::cout << "Result 2: " << result2 << std::endl; // 5.64
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数は<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して引数と戻り値の型を推論しています。そのため、関数がジェネリックになり、さまざまな型の引数を受け取ることができます。
同様に、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用して変数の型を推論することもできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
decltype(x) y = 10; // 変数xと同じ型(int型)としてyの型が推論される
std::cout << "Value of y: " << y << std::endl; // 10
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>decltype(x)</syntaxhighlight>を使用して変数<syntaxhighlight lang=c++ inline>y</syntaxhighlight>の型を変数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>と同じ型として推論しています。このように、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用することで、変数の型を他の式や変数から推論することができます。
これらの型推論機能を組み合わせて使うことで、テンプレートを使わずにジェネリックなプログラミングを行うことができます。これにより、コードがより簡潔で読みやすくなり、プログラムの保守性が向上します。
}}
== 標準ライブラリの関数 ==
=== algorithm ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>algorithm</syntaxhighlight> ライブラリには、STL(Standard Template Library)の一部として、さまざまな便利な関数が含まれています。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::sort()</syntaxhighlight> : コンテナ内の要素をソートします。
; <syntaxhighlight lang=c++ inline>std::find()</syntaxhighlight> : コンテナ内で指定された値を検索します。
; <syntaxhighlight lang=c++ inline>std::count()</syntaxhighlight> : コンテナ内で指定された値の出現回数を数えます。
; <syntaxhighlight lang=c++ inline>std::accumulate()</syntaxhighlight> : コンテナ内の要素を合計します。
; <syntaxhighlight lang=c++ inline>std::transform()</syntaxhighlight> : コンテナ内の要素に対して変換を適用します。
=== functional ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>functional</syntaxhighlight> ライブラリは、関数オブジェクトを操作するためのユーティリティ関数を提供します。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::function</syntaxhighlight> : 任意の関数や関数オブジェクトをラップし、関数型として使用するためのクラスです。
; <syntaxhighlight lang=c++ inline>std::bind</syntaxhighlight> : 関数の一部の引数を固定し、新しい関数を作成します。
; <syntaxhighlight lang=c++ inline>std::plus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::minus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::multiplies</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::divides</syntaxhighlight> : 二項演算を行う関数オブジェクトです。
; <syntaxhighlight lang=c++ inline>std::greater</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::less</syntaxhighlight> : 比較を行う関数オブジェクトです。
=== その他の標準ライブラリ関数の利用法 ===
その他の標準ライブラリ関数を利用するには、適切なヘッダファイルをインクルードし、関数を呼び出すだけです。例えば、<syntaxhighlight lang=c++ inline>std::sort</syntaxhighlight>関数を使用する場合、<syntaxhighlight lang=c++ inline><algorithm></syntaxhighlight>ヘッダをインクルードします。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <algorithm>
#include <vector>
auto main() -> int {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// ソート
std::sort(vec.begin(), vec.end());
// 結果を表示
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
このように、標準ライブラリ関数を利用することで、効率的で信頼性の高いコードを書くことができます。
== C++11以降の関数関係の機能追加 ==
C++11以降では、関数に関する機能や新しいスタイルがいくつか導入されています。以下にいくつかの主な機能を紹介します。
; ラムダ式(Lambda Expressions) : C++11では、ラムダ式が導入されました。これは、簡潔な匿名関数を定義するための構文です。ラムダ式は、関数オブジェクトを簡単に定義し、スコープ内で即座に使用することができます。
:<syntaxhighlight lang=c++>
auto func = [](auto x, auto y) { return x + y; };
auto result = func(3, 4); // 7
</syntaxhighlight>
; <code>std::function</code>と<code>std::bind</code> : <code>std::function</code>は、任意の呼び出し可能なターゲット(関数、関数オブジェクト、ラムダ式など)を保持するための汎用的なクラステンプレートです。<code>std::bind</code>は、関数やメンバ関数の呼び出しを部分的に適用するためのツールです。
:<syntaxhighlight lang=c++>
#include <functional>
#include <iostream>
void foo(int x, int y) {
std::cout << "Sum: " << x + y << std::endl;
}
auto main() -> int {
auto f = std::bind(foo, 10, std::placeholders::_1);
f(20); // Sum: 30
return 0;
}
</syntaxhighlight>
; 右辺値参照と移動セマンティクス(Rvalue References and Move Semantics) : C++11では、右辺値参照と移動セマンティクスが導入されました。これにより、一時オブジェクトの所有権を効率的に移動できるようになり、効率的なメモリ管理やオブジェクトのパフォーマンスの向上が可能になりました。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1の所有権がv2に移動される
return 0;
}
</syntaxhighlight>
; constexpr関数 : <code>constexpr</code>修飾子を使って関数を宣言することで、コンパイル時に評価される定数式として使用できる関数を定義できます。これにより、コンパイル時の計算が可能になり、実行時のオーバーヘッドが軽減されます。
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
auto main() -> int {
constexpr int result = factorial(5); // コンパイル時に評価される
return 0;
}
</syntaxhighlight>
; デフォルト関数と削除関数 : <code>= default</code>および<code>= delete</code>キーワードを使用して、デフォルトのコンストラクタやデストラクタを明示的に指定することができます。また、<code>= delete</code>を使用して、意図的に特定の関数の定義を削除することもできます。
:<syntaxhighlight lang=c++>
class MyClass {
public:
// デフォルトのコンストラクタ
MyClass() = default;
// コピーコンストラクタを削除
MyClass(const MyClass&) = delete;
};
</syntaxhighlight>
; consteval関数 : <code>consteval</code>はC++20で導入されたキーワードで、constexpr関数の一種ですが、コンパイル時に実行されることが保証される点で異なります。<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義することができます。これにより、プログラムのパフォーマンスやセキュリティを向上させることができます。
:以下は、<code>consteval</code>を使用して素数を判定する関数を定義する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
// トレイリングリターン型を使った素数判定関数
consteval auto is_prime(int n) -> bool {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
auto main() -> int {
constexpr auto num{17};
if (constexpr bool result = is_prime(num); result) {
std::cout << num << " is a prime number." << std::endl;
} else {
std::cout << num << " is not a prime number." << std::endl;
}
return 0;
}
</syntaxhighlight>
: この例では、<code>is_prime</code>関数が<code>consteval</code>で修飾されています。そのため、この関数はコンパイル時に実行され、結果はコンパイル時に評価されます。<code>constexpr</code>修飾子を使用して変数<code>num</code>を定義し、この変数を<code>is_prime</code>関数の引数として使用しています。コンパイル時に<code>is_prime</code>関数が評価され、結果が定数式として求められます。その結果、変数<code>result</code>はコンパイル時に確定され、実行時には不変の値となります。
: このように、<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義し、実行時のオーバーヘッドを避けることができます。これにより、効率的なコードを記述し、パフォーマンスの向上やセキュリティの確保を実現することができます。
これらの機能やスタイルの導入により、C++の関数や関数に関連するコードの記述がより簡潔で効率的になり、より安全で柔軟なプログラミングが可能になりました。
== 例題と演習 ==
=== 簡単な問題から応用問題までの一連の演習 ===
; 簡単な問題
: 整数の配列が与えられたとき、その配列の要素の合計を計算する関数を作成してください。
; 中級レベルの問題
: 与えられた文字列が回文(前から読んでも後ろから読んでも同じ)かどうかを判定する関数を実装してください。
; 応用問題
: フィボナッチ数列の第n項を計算する関数を再帰的に実装してください。ただし、この関数の計算時間が指数時間になることを避けるために、適切な方法で最適化してください。
=== 回答例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
#include <cassert>
// 例題1の関数: 配列の合計を計算する関数
int sumArray(const int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
// 例題2の関数: 回文かどうかを判定する関数
bool isPalindrome(const std::string& str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
++left;
--right;
}
return true;
}
// 例題3の関数: フィボナッチ数列の第n項を計算する関数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
auto main() -> int {
// 例題1のテスト
int arr[] = {1, 2, 3, 4, 5};
assert(sumArray(arr, 5) == 15);
// 例題2のテスト
assert(isPalindrome("radar") == true);
assert(isPalindrome("hello") == false);
// 例題3のテスト
assert(fibonacci(6) == 8);
std::cout << "All tests passed!" << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、各関数をテストするために <syntaxhighlight lang=c++ inline>assert()</syntaxhighlight> マクロが使用されています。各関数が期待どおりに動作するかどうかを確認するために、適切な入力でテストを行います。
{{Nav}}
[[Category:C++]]
5jp332jwmdy90jt3m24iwgbukah9hza
263069
263068
2024-11-05T03:10:38Z
Ef3
694
/* 参照渡しとポインタ渡し */ 主な変更点: 1. セクション構成の整理 2. コード例の改善(nullptr使用、const修飾子追加) 3. モダンC++のベストプラクティス追加 4. 使い分けガイドラインの具体化 5. 技術的な正確性の向上
263069
wikitext
text/x-wiki
{{Nav}}
== 関数の基本 ==
=== 関数とは何か? ===
関数は、プログラム内で特定のタスクを実行するための独立したコードブロックです。関数を使用することで、コードの再利用や保守が容易になり、プログラムの構造を論理的に分割することで可読性が向上します。
=== 関数の定義と宣言 ===
関数の定義は、関数の具体的な動作を示す部分であり、宣言は関数の存在をコンパイラに知らせる部分です。C++11以降、トレイリングリターン型を使用した宣言は、特に複雑な型において可読性を高めます。
==== トレイリングリターン型による関数の宣言と定義 ====
<syntaxhighlight lang="cpp">
// 関数の宣言
auto add(int a, int b) -> int;
// 関数の定義
auto add(int a, int b) -> int {
return a + b;
}
</syntaxhighlight>
==== 旧式のC言語スタイル(非推奨) ====
古いC言語スタイルの宣言は、モダンC++では推奨されません。
<syntaxhighlight lang="cpp">
// 非推奨のスタイル
int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
=== 関数の呼び出しと戻り値 ===
関数は呼び出し元に制御を戻し、必要に応じて戻り値を返します。戻り値の型はトレイリングリターン型で明示すると分かりやすくなります。
<syntaxhighlight lang="cpp">
auto result = add(3, 4);
std::cout << "結果: " << result << std::endl; // 結果: 7
</syntaxhighlight>
=== パラメータと引数 ===
関数は入力としてパラメータを定義できます。呼び出し時に引数として渡されるデータを受け取り処理します。
<syntaxhighlight lang="cpp">
// 関数の定義
auto printSum(int a, int b) -> void {
auto sum = a + b;
std::cout << "合計: " << sum << std::endl;
}
// 呼び出し例
printSum(5, 7); // 出力: 合計: 12
</syntaxhighlight>
=== トレイリングリターン型の利点 ===
; 可読性向上 : 戻り値の型を関数名の後ろに記述することでコードの読みやすさが向上します。
; 一貫性 : [[C++/ラムダ式|ラムダ式]]や<code>auto</code>キーワードとスタイルを統一できます。
; 複雑な型の処理 : テンプレート関数や特殊な型を使う場合に役立ちます。
{{See also|C++/ラムダ式}}
; まとめ
トレイリングリターン型を利用することで、コードの保守性や可読性を向上させることができます。旧来のC言語スタイルは避け、モダンC++の規約を取り入れることが推奨されます。
== 関数の種類 ==
=== 戻り値のない関数 ===
戻り値のない関数は、結果を返さずに処理を実行する関数です。返り値の型として <syntaxhighlight lang=cpp inline>void</syntaxhighlight> を指定します。画面へのメッセージ表示やファイルへのデータ書き込みなどの副作用を目的とした処理によく使用されます。
:<syntaxhighlight lang=cpp>
auto printMessage() -> void {
std::cout << "Hello, World!" << std::endl;
}
</syntaxhighlight>
=== パラメータのない関数 ===
パラメータのない関数は、呼び出し時に引数を必要としない関数です。C++では空の引数リスト <syntaxhighlight lang=cpp inline>()</syntaxhighlight> で定義します(C23以前のCとは異なり、<syntaxhighlight lang=cpp inline>void</syntaxhighlight> の明示は不要です)。システムの状態取得など、外部入力に依存しない処理に適しています。
:<syntaxhighlight lang=cpp>
auto getCurrentTime() -> std::string {
const auto now = std::time(nullptr);
const auto local_time = *std::localtime(&now);
std::ostringstream oss;
oss << std::put_time(&local_time, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
</syntaxhighlight>
=== 戻り値とパラメータを持つ関数 ===
入力パラメータを受け取り、処理結果を戻り値として返す最も一般的な関数の形式です。入力データの変換や計算など、純粋な関数型プログラミングの基本となります。
:<syntaxhighlight lang=cpp>
auto add(const int a, const int b) -> int {
return a + b;
}
auto getStringLength(const std::string& str) -> std::size_t {
return str.length();
}
</syntaxhighlight>
=== 再帰関数 ===
関数内で自身を呼び出す関数です。問題を小さな部分問題に分割して解決する際に有効です。階乗計算やツリー構造の探索など、自己相似的な問題に適しています。ただし、深い再帰呼び出しはスタックオーバーフローのリスクがあるため、適切な終了条件の設定が重要です。
:<syntaxhighlight lang=cpp>
auto factorial(const int n) -> int {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
</syntaxhighlight>
これらの関数の種類を適切に使い分けることで、保守性と可読性の高いコードを設計できます。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特に複雑な戻り値の型を持つ関数や、テンプレート関数の定義が明確になります。
== 関数オーバーロード ==
{{See also|[[C++/関数オーバーロード]]}}
=== 関数オーバーロードの概要 ===
関数オーバーロードとは、同じ名前で異なるパラメータリストを持つ複数の関数を定義する機能です。C++では、関数名が同じでもパラメータの数や型が異なれば、それぞれ独立した関数として扱われます。これにより、同じような操作を異なる型のデータに対して、統一的な名前で提供できます。
=== オーバーロード解決のルール ===
コンパイラは以下の優先順位に従って最適な関数を選択します:
# 完全一致:パラメータの型と数が完全に一致する関数が最優先
# 昇格:整数の昇格(charからint)など、情報が失われない変換
# 標準変換:異なる数値型間の変換など
# ユーザー定義変換:変換コンストラクタやキャスト演算子による変換
複数の関数が同じ優先度で適合する場合は、曖昧性エラーとなります。
=== オーバーロードの例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// 整数値を表示
auto print(const int num) -> void {
std::cout << "Integer: " << num << std::endl;
}
// 浮動小数点数を表示
auto print(const double num) -> void {
std::cout << "Double: " << num << std::endl;
}
// 文字列を表示
auto print(const std::string& str) -> void {
std::cout << "String: " << str << std::endl;
}
auto main() -> int {
print(42); // Integer: 42
print(3.14159); // Double: 3.14159
print("Hello"); // String: Hello(文字列リテラルから std::string への暗黙変換)
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=cpp inline>print</syntaxhighlight>関数が3つの異なるバージョンでオーバーロードされています:
* 整数版(<syntaxhighlight lang=cpp inline>int</syntaxhighlight>)
* 浮動小数点版(<syntaxhighlight lang=cpp inline>double</syntaxhighlight>)
* 文字列版(<syntaxhighlight lang=cpp inline>const std::string&</syntaxhighlight>)
コンパイラは呼び出し時の引数の型に基づいて、最適な関数を自動的に選択します。
=== オーバーロード時の注意点 ===
* 戻り値の型の違いだけではオーバーロードできません
* 参照修飾子(const、volatile)の有無はオーバーロードの区別に有効です
* テンプレートと関数オーバーロードを併用する場合、特殊化の順序に注意が必要です
* 暗黙の型変換による予期しない関数呼び出しを避けるため、必要に応じて<syntaxhighlight lang=cpp inline>explicit</syntaxhighlight>キーワードを使用します
=== まとめ ===
関数オーバーロードは、型安全かつ直感的なインターフェースを設計するための重要な機能です。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特にテンプレートや複雑な戻り値型を持つ関数のオーバーロードがより明確になります。
== デフォルト引数 ==
=== デフォルト引数の概要 ===
デフォルト引数は、関数パラメータに初期値を設定する機能です。これにより、関数呼び出し時に一部の引数を省略でき、コードの簡潔性と柔軟性が向上します。
関数宣言でのデフォルト引数の基本構文:
:<syntaxhighlight lang=cpp>
auto function(int required, int optional = 10) -> void;
</syntaxhighlight>
=== デフォルト引数の規則 ===
# デフォルト引数は右端のパラメータから順に指定する必要があります
# デフォルト値は関数宣言時に一度だけ指定します(定義時には記述しません)
# デフォルト値には定数式またはグローバル変数を使用可能です
# クラスメンバ関数では、thisポインタを使用したデフォルト値も設定可能です
=== 基本的な使用例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// デフォルト引数を持つ関数の宣言
auto greet(const std::string& name = "Guest") -> void {
std::cout << "Hello, " << name << "!" << std::endl;
}
auto main() -> int {
greet(); // 出力: "Hello, Guest!"
greet("Alice"); // 出力: "Hello, Alice!"
return 0;
}
</syntaxhighlight>
=== 複数のデフォルト引数 ===
関数は複数のデフォルト引数を持つことができます:
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
auto displayInfo(
const std::string& name,
const int age = 0,
const std::string& city = "Unknown"
) -> void {
std::cout << "Name: " << name
<< ", Age: " << age
<< ", City: " << city << std::endl;
}
auto main() -> int {
displayInfo("Bob"); // Name: Bob, Age: 0, City: Unknown
displayInfo("Alice", 30); // Name: Alice, Age: 30, City: Unknown
displayInfo("Charlie", 25, "Tokyo"); // Name: Charlie, Age: 25, City: Tokyo
return 0;
}
</syntaxhighlight>
=== デフォルト引数とオーバーロード ===
デフォルト引数は関数オーバーロードと組み合わせて使用する際に注意が必要です:
:<syntaxhighlight lang=cpp>
// 良い例:明確な区別がある
auto process(const int x) -> void;
auto process(const int x, const std::string& s = "") -> void;
// 悪い例:曖昧な呼び出しの可能性
auto process(const int x, const int y = 0) -> void;
auto process(const int x, const std::string& s = "") -> void;
// process(42); // エラー:どちらの関数を呼び出すべきか曖昧
</syntaxhighlight>
=== ベストプラクティス ===
* デフォルト引数は関数宣言時にのみ指定し、定義では省略する
* 必須パラメータを左側に、オプショナルなパラメータを右側に配置する
* デフォルト値には意味のある値を使用する(例:数値の0、文字列の空文字列など)
* オーバーロードとの組み合わせ時は、曖昧性を避ける
* 変更される可能性のあるグローバル変数はデフォルト値として使用しない
=== まとめ ===
デフォルト引数は、関数インターフェースを柔軟にし、コードの可読性を向上させる強力な機能です。ただし、適切な使用には規則とベストプラクティスの理解が重要です。関数オーバーロードと組み合わせる際は、特に注意が必要です。
== 参照渡しとポインタ渡し ==
=== 値渡しと参照渡しの基本 ===
C++では、関数への引数渡しに以下の3つの方法があります:
# 値渡し:引数の値がコピーされる
# 参照渡し:引数への直接アクセスが可能
# ポインタ渡し:引数のアドレスを通じたアクセス
:<syntaxhighlight lang=cpp>
#include <iostream>
// 値渡し:引数のコピーが作成される
auto passByValue(const int value) -> void {
// valueはローカルコピー
std::cout << "Value: " << value << std::endl;
}
// 参照渡し:元の変数への直接アクセス
auto passByReference(int& ref) -> void {
ref = 100; // 元の変数が変更される
}
// const参照:効率的な読み取り専用アクセス
auto passByConstReference(const int& ref) -> void {
std::cout << "Read only: " << ref << std::endl;
}
auto main() -> int {
int number{42};
passByValue(number); // 値のコピーが渡される
passByReference(number); // 変数への参照が渡される
passByConstReference(number);// constな参照が渡される
return 0;
}
</syntaxhighlight>
=== 参照渡しの特徴 ===
* NULLを取り得ない(必ず有効なオブジェクトを参照)
* 宣言時に初期化が必須
* エイリアシング(別名)として機能
* 参照先の変更不可
* オーバーヘッドなし(通常、ポインタと同様に実装される)
=== ポインタ渡しの特徴 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
auto passByPointer(int* ptr) -> void {
if (ptr) { // nullptr チェックが必要
*ptr = 100;
}
}
auto passByConstPointer(const int* ptr) -> void {
if (ptr) {
std::cout << "Value through pointer: " << *ptr << std::endl;
}
}
auto main() -> int {
int value{42};
int* ptr{&value};
passByPointer(ptr); // ポインタを渡す
passByPointer(nullptr); // nullptr も渡せる
passByConstPointer(ptr); // const ポインタとして渡す
return 0;
}
</syntaxhighlight>
特徴:
* nullptrを取り得る
* ポインタ自体の再代入が可能
* アドレス演算が可能
* 明示的なアドレス操作が必要
* nullptrチェックが必要
=== 使い分けのガイドライン ===
==== 参照を使用する場合 ====
* オブジェクトが必ず存在する場合
* 単純な別名付けが目的の場合
* 関数パラメータでの大きなオブジェクトの受け渡し
* 演算子オーバーロード
* 範囲for文での要素アクセス
==== ポインタを使用する場合 ====
* nullptrが有効な値として必要な場合
* 動的メモリ管理が必要な場合
* ポインタ演算が必要な場合
* 複数のオブジェクトを指す可能性がある場合
* C言語との互換性が必要な場合
=== モダンC++でのベストプラクティス ===
* 基本的には参照を優先
* 大きなオブジェクトはconst参照で渡す
* スマートポインタ(<syntaxhighlight lang=cpp inline>std::unique_ptr</syntaxhighlight>、<syntaxhighlight lang=cpp inline>std::shared_ptr</syntaxhighlight>)の活用
* 生ポインタの使用は最小限に
* 所有権の移転には<syntaxhighlight lang=cpp inline>std::move</syntaxhighlight>を使用
=== まとめ ===
参照とポインタはそれぞれ異なる用途に適しており、状況に応じて適切な方法を選択することが重要です。モダンC++では、安全性の観点から参照の使用が推奨されますが、ポインタにも固有の利点があります。
== ラムダ式と無名関数 ==
{{See also|[[C++/ラムダ式]]}}
=== ラムダ式の概要 ===
ラムダ式は、匿名の関数を定義するための機能であり、関数オブジェクトとして扱われます。C++11から導入された機能であり、関数をインラインで定義し、その場で使用することができます。ラムダ式は、簡潔で直感的な記法を提供し、コードの可読性と書きやすさを向上させます。
=== ラムダ式の使用法と構文 ===
ラムダ式は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
[ キャプチャリスト ] ( パラメータリスト ) -> 戻り値型 { 本体 }
</syntaxhighlight>
; <syntaxhighlight lang=c++ inline>キャプチャリスト</syntaxhighlight> : ラムダ式が外部の変数を参照する場合に使用します。ラムダ式内で変数を使用する際に、その変数をラムダ式にキャプチャする必要があります。キャプチャリストは、ラムダ式がどの変数をキャプチャするかを指定します。
; <syntaxhighlight lang=c++ inline>パラメータリスト</syntaxhighlight> : ラムダ式の引数リストです。関数の引数と同様に、必要な引数を指定することができます。
; <syntaxhighlight lang=c++ inline>戻り値型</syntaxhighlight> : ラムダ式が返す値の型です。省略可能であり、省略するとコンパイラが自動的に返り値の型を推論します。
; <syntaxhighlight lang=c++ inline>本体</syntaxhighlight> : ラムダ式の本体です。関数の処理を記述します。
以下は、ラムダ式の簡単な例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
// ラムダ式を使った関数オブジェクトの定義と呼び出し
auto add = [](int x, int y) { return x + y; };
std::cout << add(3, 5) << std::endl; // 出力: 8
return 0;
}
</syntaxhighlight>
=== キャプチャリスト ===
キャプチャリストは、ラムダ式が外部の変数を参照する方法を指定します。キャプチャリストには、次のような種類があります。
; <syntaxhighlight lang=c++ inline>[]</syntaxhighlight> : キャプチャなし。ラムダ式内で外部の変数を使用できません。
; <syntaxhighlight lang=c++ inline>[&]</syntaxhighlight> : ラムダ式が参照する外部の変数を参照キャプチャします。参照キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することができます。
; <syntaxhighlight lang=c++ inline>[=]</syntaxhighlight> : ラムダ式が参照する外部の変数を値キャプチャします。値キャプチャを使用すると、ラムダ式内で外部の変数の値を変更することはできません。
以下は、キャプチャリストを使用した例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
auto func1 = [&]() { return x + 1; }; // xを参照キャプチャ
auto func2 = [=]() { return x + 1; }; // xを値キャプチャ
x = 10;
std::cout << func1() << std::endl; // 出力: 11
std::cout << func2() << std::endl; // 出力: 6
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>func1</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を参照キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映され、<syntaxhighlight lang=c++ inline>func2</syntaxhighlight>は<syntaxhighlight lang=c++ inline>x</syntaxhighlight>を値キャプチャしているため、<syntaxhighlight lang=c++ inline>x</syntaxhighlight>の変更が反映されません。
== 関数テンプレート ==
{{See also|[[C++/テンプレート#関数テンプレート]]}}
=== テンプレートの概要 ===
関数テンプレートは、異なるデータ型や値に対して汎用的な処理を行うための機能です。テンプレートを使用することで、同じコードを異なるデータ型や値に対して再利用することができます。C++において、関数テンプレートは、ジェネリックプログラミングの手法の一部として広く利用されています。
=== テンプレート関数の定義と使用法 ===
テンプレート関数は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
template <typename T>
T myFunction(T x, T y) {
return x + y;
}
</syntaxhighlight>
このように、<syntaxhighlight lang=c++ inline>template</syntaxhighlight>キーワードと<syntaxhighlight lang=c++ inline>typename</syntaxhighlight>または<syntaxhighlight lang=c++ inline>class</syntaxhighlight>キーワードを使用して、テンプレートパラメータを定義します。<syntaxhighlight lang=c++ inline>T</syntaxhighlight>はテンプレートパラメータであり、任意のデータ型を指定することができます。関数内では、<syntaxhighlight lang=c++ inline>T</syntaxhighlight>を通じてジェネリックな処理を行うことができます。
テンプレート関数を使用する際には、次のようにして呼び出します。
:<syntaxhighlight lang=c++>
int result1 = myFunction(3, 5); // int型の場合
double result2 = myFunction(3.5, 5.5); // double型の場合
</syntaxhighlight>
引数として与えるデータ型に応じて、適切なテンプレートインスタンスが生成されます。
=== テンプレートの特殊化 ===
テンプレートの特殊化は、特定のデータ型に対してカスタム処理を提供するための機能です。一般的なテンプレート関数に加えて、特定のデータ型に対する特殊なバージョンを提供することができます。これにより、特殊なデータ型に対して最適化された処理を行うことができます。
:<syntaxhighlight lang=c++>
// int型に特殊化されたテンプレート関数
template <>
int myFunction<int>(int x, int y) {
return x * y;
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型に特殊化された<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型の引数に対して掛け算を行います。特殊化されたテンプレート関数は、通常のテンプレート関数と同様に使用されますが、特定のデータ型に対して優先的に選択されます。
== 関数と型推論 ==
C++は複雑な型システムを持ち、コードの安全性と可読性を向上させるために型推論の機能を提供しています。特に、関数の引数や戻り値、ラムダ式において型推論を活用することができます。C++11以降の規格で導入されたこれらの機能を利用することで、より簡潔でメンテナンスしやすいコードを書くことが可能です。
=== 引数の型推論 ===
関数の引数に対する型推論は、C++20で導入されたコンセプトを使用することで実現できます。テンプレートを使用して、関数の引数の型を自動的に推論することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
// C++20以降での型推論を使用した関数テンプレート
template<typename T>
auto printValue(T value) -> void {
std::cout << value << std::endl;
}
auto main() -> int {
printValue(42); // int型を推論
printValue(3.14); // double型を推論
printValue("Hello"); // const char*型を推論
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>printValue</syntaxhighlight>関数はテンプレートを使用して引数の型を推論します。テンプレートの引数<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が、自動的に渡された引数の型に置き換えられます。
=== 戻り値の型推論 ===
戻り値の型推論は、C++14で導入された機能です。<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して、関数の戻り値の型をコンパイラに推論させることができます。これにより、関数の宣言が簡潔になり、コードの可読性が向上します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 戻り値の型推論を使用した関数
auto add(int a, int b) -> auto {
return a + b;
}
auto main() -> int {
std::cout << add(5, 3) << std::endl; // 8 と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数の戻り値の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>とし、コンパイラに型推論を任せています。
=== ラムダ式の型推論 ===
ラムダ式は、C++11で導入された匿名関数の一種です。ラムダ式では、引数や戻り値の型を省略することができ、コンパイラが自動的に推論してくれます。ラムダ式の型推論を利用することで、コードがより簡潔になります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// ラムダ式を使用してベクトルの各要素を2倍にする
std::for_each(numbers.begin(), numbers.end(), [](auto& n) {
n *= 2;
});
for (const auto& n : numbers) {
std::cout << n << " "; // 2 4 6 8 10 と表示される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ式の引数<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>としています。コンパイラは<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を自動的に推論し、適切な型として扱います。また、戻り値も型推論で暗黙に<code>int</code>が推論されます。
; まとめ
C++11以降の規格で導入された型推論の機能を活用することで、関数の引数や戻り値、ラムダ式の型を明示的に指定する必要がなくなり、コードがより簡潔で可読性の高いものになります。特に、C++14の<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>戻り値型推論やC++20のコンセプトを使用することで、複雑な型を扱う場合でもシンプルなコードを書くことができます。これらの機能を積極的に利用することで、よりメンテナブルで効率的なプログラムを作成することができます。
{{コラム|型推論を用いるとテンプレートを使わずジェネリックプログラミングができる|2=型推論を使用することで、テンプレートを使わずにジェネリックプログラミングを行うことができます。これは、C++11以降で導入された<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードや、C++14以降で導入された<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードなどを活用することで実現されます。
例えば、<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用することで、関数テンプレートを定義せずにジェネリックな関数を作成することができます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// ジェネリックな関数を定義
auto add(auto a, auto b) {
return a + b;
}
auto main() -> int {
auto result1 = add(5, 3); // int型として推論される
auto result2 = add(3.14, 2.5); // double型として推論される
std::cout << "Result 1: " << result1 << std::endl; // 8
std::cout << "Result 2: " << result2 << std::endl; // 5.64
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数は<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して引数と戻り値の型を推論しています。そのため、関数がジェネリックになり、さまざまな型の引数を受け取ることができます。
同様に、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用して変数の型を推論することもできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
decltype(x) y = 10; // 変数xと同じ型(int型)としてyの型が推論される
std::cout << "Value of y: " << y << std::endl; // 10
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>decltype(x)</syntaxhighlight>を使用して変数<syntaxhighlight lang=c++ inline>y</syntaxhighlight>の型を変数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>と同じ型として推論しています。このように、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用することで、変数の型を他の式や変数から推論することができます。
これらの型推論機能を組み合わせて使うことで、テンプレートを使わずにジェネリックなプログラミングを行うことができます。これにより、コードがより簡潔で読みやすくなり、プログラムの保守性が向上します。
}}
== 標準ライブラリの関数 ==
=== algorithm ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>algorithm</syntaxhighlight> ライブラリには、STL(Standard Template Library)の一部として、さまざまな便利な関数が含まれています。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::sort()</syntaxhighlight> : コンテナ内の要素をソートします。
; <syntaxhighlight lang=c++ inline>std::find()</syntaxhighlight> : コンテナ内で指定された値を検索します。
; <syntaxhighlight lang=c++ inline>std::count()</syntaxhighlight> : コンテナ内で指定された値の出現回数を数えます。
; <syntaxhighlight lang=c++ inline>std::accumulate()</syntaxhighlight> : コンテナ内の要素を合計します。
; <syntaxhighlight lang=c++ inline>std::transform()</syntaxhighlight> : コンテナ内の要素に対して変換を適用します。
=== functional ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>functional</syntaxhighlight> ライブラリは、関数オブジェクトを操作するためのユーティリティ関数を提供します。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::function</syntaxhighlight> : 任意の関数や関数オブジェクトをラップし、関数型として使用するためのクラスです。
; <syntaxhighlight lang=c++ inline>std::bind</syntaxhighlight> : 関数の一部の引数を固定し、新しい関数を作成します。
; <syntaxhighlight lang=c++ inline>std::plus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::minus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::multiplies</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::divides</syntaxhighlight> : 二項演算を行う関数オブジェクトです。
; <syntaxhighlight lang=c++ inline>std::greater</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::less</syntaxhighlight> : 比較を行う関数オブジェクトです。
=== その他の標準ライブラリ関数の利用法 ===
その他の標準ライブラリ関数を利用するには、適切なヘッダファイルをインクルードし、関数を呼び出すだけです。例えば、<syntaxhighlight lang=c++ inline>std::sort</syntaxhighlight>関数を使用する場合、<syntaxhighlight lang=c++ inline><algorithm></syntaxhighlight>ヘッダをインクルードします。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <algorithm>
#include <vector>
auto main() -> int {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// ソート
std::sort(vec.begin(), vec.end());
// 結果を表示
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
このように、標準ライブラリ関数を利用することで、効率的で信頼性の高いコードを書くことができます。
== C++11以降の関数関係の機能追加 ==
C++11以降では、関数に関する機能や新しいスタイルがいくつか導入されています。以下にいくつかの主な機能を紹介します。
; ラムダ式(Lambda Expressions) : C++11では、ラムダ式が導入されました。これは、簡潔な匿名関数を定義するための構文です。ラムダ式は、関数オブジェクトを簡単に定義し、スコープ内で即座に使用することができます。
:<syntaxhighlight lang=c++>
auto func = [](auto x, auto y) { return x + y; };
auto result = func(3, 4); // 7
</syntaxhighlight>
; <code>std::function</code>と<code>std::bind</code> : <code>std::function</code>は、任意の呼び出し可能なターゲット(関数、関数オブジェクト、ラムダ式など)を保持するための汎用的なクラステンプレートです。<code>std::bind</code>は、関数やメンバ関数の呼び出しを部分的に適用するためのツールです。
:<syntaxhighlight lang=c++>
#include <functional>
#include <iostream>
void foo(int x, int y) {
std::cout << "Sum: " << x + y << std::endl;
}
auto main() -> int {
auto f = std::bind(foo, 10, std::placeholders::_1);
f(20); // Sum: 30
return 0;
}
</syntaxhighlight>
; 右辺値参照と移動セマンティクス(Rvalue References and Move Semantics) : C++11では、右辺値参照と移動セマンティクスが導入されました。これにより、一時オブジェクトの所有権を効率的に移動できるようになり、効率的なメモリ管理やオブジェクトのパフォーマンスの向上が可能になりました。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1の所有権がv2に移動される
return 0;
}
</syntaxhighlight>
; constexpr関数 : <code>constexpr</code>修飾子を使って関数を宣言することで、コンパイル時に評価される定数式として使用できる関数を定義できます。これにより、コンパイル時の計算が可能になり、実行時のオーバーヘッドが軽減されます。
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
auto main() -> int {
constexpr int result = factorial(5); // コンパイル時に評価される
return 0;
}
</syntaxhighlight>
; デフォルト関数と削除関数 : <code>= default</code>および<code>= delete</code>キーワードを使用して、デフォルトのコンストラクタやデストラクタを明示的に指定することができます。また、<code>= delete</code>を使用して、意図的に特定の関数の定義を削除することもできます。
:<syntaxhighlight lang=c++>
class MyClass {
public:
// デフォルトのコンストラクタ
MyClass() = default;
// コピーコンストラクタを削除
MyClass(const MyClass&) = delete;
};
</syntaxhighlight>
; consteval関数 : <code>consteval</code>はC++20で導入されたキーワードで、constexpr関数の一種ですが、コンパイル時に実行されることが保証される点で異なります。<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義することができます。これにより、プログラムのパフォーマンスやセキュリティを向上させることができます。
:以下は、<code>consteval</code>を使用して素数を判定する関数を定義する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
// トレイリングリターン型を使った素数判定関数
consteval auto is_prime(int n) -> bool {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
auto main() -> int {
constexpr auto num{17};
if (constexpr bool result = is_prime(num); result) {
std::cout << num << " is a prime number." << std::endl;
} else {
std::cout << num << " is not a prime number." << std::endl;
}
return 0;
}
</syntaxhighlight>
: この例では、<code>is_prime</code>関数が<code>consteval</code>で修飾されています。そのため、この関数はコンパイル時に実行され、結果はコンパイル時に評価されます。<code>constexpr</code>修飾子を使用して変数<code>num</code>を定義し、この変数を<code>is_prime</code>関数の引数として使用しています。コンパイル時に<code>is_prime</code>関数が評価され、結果が定数式として求められます。その結果、変数<code>result</code>はコンパイル時に確定され、実行時には不変の値となります。
: このように、<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義し、実行時のオーバーヘッドを避けることができます。これにより、効率的なコードを記述し、パフォーマンスの向上やセキュリティの確保を実現することができます。
これらの機能やスタイルの導入により、C++の関数や関数に関連するコードの記述がより簡潔で効率的になり、より安全で柔軟なプログラミングが可能になりました。
== 例題と演習 ==
=== 簡単な問題から応用問題までの一連の演習 ===
; 簡単な問題
: 整数の配列が与えられたとき、その配列の要素の合計を計算する関数を作成してください。
; 中級レベルの問題
: 与えられた文字列が回文(前から読んでも後ろから読んでも同じ)かどうかを判定する関数を実装してください。
; 応用問題
: フィボナッチ数列の第n項を計算する関数を再帰的に実装してください。ただし、この関数の計算時間が指数時間になることを避けるために、適切な方法で最適化してください。
=== 回答例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
#include <cassert>
// 例題1の関数: 配列の合計を計算する関数
int sumArray(const int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
// 例題2の関数: 回文かどうかを判定する関数
bool isPalindrome(const std::string& str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
++left;
--right;
}
return true;
}
// 例題3の関数: フィボナッチ数列の第n項を計算する関数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
auto main() -> int {
// 例題1のテスト
int arr[] = {1, 2, 3, 4, 5};
assert(sumArray(arr, 5) == 15);
// 例題2のテスト
assert(isPalindrome("radar") == true);
assert(isPalindrome("hello") == false);
// 例題3のテスト
assert(fibonacci(6) == 8);
std::cout << "All tests passed!" << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、各関数をテストするために <syntaxhighlight lang=c++ inline>assert()</syntaxhighlight> マクロが使用されています。各関数が期待どおりに動作するかどうかを確認するために、適切な入力でテストを行います。
{{Nav}}
[[Category:C++]]
5kdo00wx69zjmnsns338tjfyq9xejw6
263070
263069
2024-11-05T03:17:19Z
Ef3
694
/* ラムダ式と無名関数 */ 主な改善点: 1. C++20の新機能(テンプレートパラメータなど)を追加 2. コードブロックを `<syntaxhighlight>` タグを使用して適切にフォーマット 3. specifierの説明を追加 4. thisキャプチャに関する説明を追加 5. より詳細な例と説明を追加 6. コードの出力結果をコメントとして明示
263070
wikitext
text/x-wiki
{{Nav}}
== 関数の基本 ==
=== 関数とは何か? ===
関数は、プログラム内で特定のタスクを実行するための独立したコードブロックです。関数を使用することで、コードの再利用や保守が容易になり、プログラムの構造を論理的に分割することで可読性が向上します。
=== 関数の定義と宣言 ===
関数の定義は、関数の具体的な動作を示す部分であり、宣言は関数の存在をコンパイラに知らせる部分です。C++11以降、トレイリングリターン型を使用した宣言は、特に複雑な型において可読性を高めます。
==== トレイリングリターン型による関数の宣言と定義 ====
<syntaxhighlight lang="cpp">
// 関数の宣言
auto add(int a, int b) -> int;
// 関数の定義
auto add(int a, int b) -> int {
return a + b;
}
</syntaxhighlight>
==== 旧式のC言語スタイル(非推奨) ====
古いC言語スタイルの宣言は、モダンC++では推奨されません。
<syntaxhighlight lang="cpp">
// 非推奨のスタイル
int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
=== 関数の呼び出しと戻り値 ===
関数は呼び出し元に制御を戻し、必要に応じて戻り値を返します。戻り値の型はトレイリングリターン型で明示すると分かりやすくなります。
<syntaxhighlight lang="cpp">
auto result = add(3, 4);
std::cout << "結果: " << result << std::endl; // 結果: 7
</syntaxhighlight>
=== パラメータと引数 ===
関数は入力としてパラメータを定義できます。呼び出し時に引数として渡されるデータを受け取り処理します。
<syntaxhighlight lang="cpp">
// 関数の定義
auto printSum(int a, int b) -> void {
auto sum = a + b;
std::cout << "合計: " << sum << std::endl;
}
// 呼び出し例
printSum(5, 7); // 出力: 合計: 12
</syntaxhighlight>
=== トレイリングリターン型の利点 ===
; 可読性向上 : 戻り値の型を関数名の後ろに記述することでコードの読みやすさが向上します。
; 一貫性 : [[C++/ラムダ式|ラムダ式]]や<code>auto</code>キーワードとスタイルを統一できます。
; 複雑な型の処理 : テンプレート関数や特殊な型を使う場合に役立ちます。
{{See also|C++/ラムダ式}}
; まとめ
トレイリングリターン型を利用することで、コードの保守性や可読性を向上させることができます。旧来のC言語スタイルは避け、モダンC++の規約を取り入れることが推奨されます。
== 関数の種類 ==
=== 戻り値のない関数 ===
戻り値のない関数は、結果を返さずに処理を実行する関数です。返り値の型として <syntaxhighlight lang=cpp inline>void</syntaxhighlight> を指定します。画面へのメッセージ表示やファイルへのデータ書き込みなどの副作用を目的とした処理によく使用されます。
:<syntaxhighlight lang=cpp>
auto printMessage() -> void {
std::cout << "Hello, World!" << std::endl;
}
</syntaxhighlight>
=== パラメータのない関数 ===
パラメータのない関数は、呼び出し時に引数を必要としない関数です。C++では空の引数リスト <syntaxhighlight lang=cpp inline>()</syntaxhighlight> で定義します(C23以前のCとは異なり、<syntaxhighlight lang=cpp inline>void</syntaxhighlight> の明示は不要です)。システムの状態取得など、外部入力に依存しない処理に適しています。
:<syntaxhighlight lang=cpp>
auto getCurrentTime() -> std::string {
const auto now = std::time(nullptr);
const auto local_time = *std::localtime(&now);
std::ostringstream oss;
oss << std::put_time(&local_time, "%Y-%m-%d %H:%M:%S");
return oss.str();
}
</syntaxhighlight>
=== 戻り値とパラメータを持つ関数 ===
入力パラメータを受け取り、処理結果を戻り値として返す最も一般的な関数の形式です。入力データの変換や計算など、純粋な関数型プログラミングの基本となります。
:<syntaxhighlight lang=cpp>
auto add(const int a, const int b) -> int {
return a + b;
}
auto getStringLength(const std::string& str) -> std::size_t {
return str.length();
}
</syntaxhighlight>
=== 再帰関数 ===
関数内で自身を呼び出す関数です。問題を小さな部分問題に分割して解決する際に有効です。階乗計算やツリー構造の探索など、自己相似的な問題に適しています。ただし、深い再帰呼び出しはスタックオーバーフローのリスクがあるため、適切な終了条件の設定が重要です。
:<syntaxhighlight lang=cpp>
auto factorial(const int n) -> int {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
</syntaxhighlight>
これらの関数の種類を適切に使い分けることで、保守性と可読性の高いコードを設計できます。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特に複雑な戻り値の型を持つ関数や、テンプレート関数の定義が明確になります。
== 関数オーバーロード ==
{{See also|[[C++/関数オーバーロード]]}}
=== 関数オーバーロードの概要 ===
関数オーバーロードとは、同じ名前で異なるパラメータリストを持つ複数の関数を定義する機能です。C++では、関数名が同じでもパラメータの数や型が異なれば、それぞれ独立した関数として扱われます。これにより、同じような操作を異なる型のデータに対して、統一的な名前で提供できます。
=== オーバーロード解決のルール ===
コンパイラは以下の優先順位に従って最適な関数を選択します:
# 完全一致:パラメータの型と数が完全に一致する関数が最優先
# 昇格:整数の昇格(charからint)など、情報が失われない変換
# 標準変換:異なる数値型間の変換など
# ユーザー定義変換:変換コンストラクタやキャスト演算子による変換
複数の関数が同じ優先度で適合する場合は、曖昧性エラーとなります。
=== オーバーロードの例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// 整数値を表示
auto print(const int num) -> void {
std::cout << "Integer: " << num << std::endl;
}
// 浮動小数点数を表示
auto print(const double num) -> void {
std::cout << "Double: " << num << std::endl;
}
// 文字列を表示
auto print(const std::string& str) -> void {
std::cout << "String: " << str << std::endl;
}
auto main() -> int {
print(42); // Integer: 42
print(3.14159); // Double: 3.14159
print("Hello"); // String: Hello(文字列リテラルから std::string への暗黙変換)
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=cpp inline>print</syntaxhighlight>関数が3つの異なるバージョンでオーバーロードされています:
* 整数版(<syntaxhighlight lang=cpp inline>int</syntaxhighlight>)
* 浮動小数点版(<syntaxhighlight lang=cpp inline>double</syntaxhighlight>)
* 文字列版(<syntaxhighlight lang=cpp inline>const std::string&</syntaxhighlight>)
コンパイラは呼び出し時の引数の型に基づいて、最適な関数を自動的に選択します。
=== オーバーロード時の注意点 ===
* 戻り値の型の違いだけではオーバーロードできません
* 参照修飾子(const、volatile)の有無はオーバーロードの区別に有効です
* テンプレートと関数オーバーロードを併用する場合、特殊化の順序に注意が必要です
* 暗黙の型変換による予期しない関数呼び出しを避けるため、必要に応じて<syntaxhighlight lang=cpp inline>explicit</syntaxhighlight>キーワードを使用します
=== まとめ ===
関数オーバーロードは、型安全かつ直感的なインターフェースを設計するための重要な機能です。現代のC++では、トレイリングリターン型構文(<syntaxhighlight lang=cpp inline>auto f() -> return_type</syntaxhighlight>)を使用することで、特にテンプレートや複雑な戻り値型を持つ関数のオーバーロードがより明確になります。
== デフォルト引数 ==
=== デフォルト引数の概要 ===
デフォルト引数は、関数パラメータに初期値を設定する機能です。これにより、関数呼び出し時に一部の引数を省略でき、コードの簡潔性と柔軟性が向上します。
関数宣言でのデフォルト引数の基本構文:
:<syntaxhighlight lang=cpp>
auto function(int required, int optional = 10) -> void;
</syntaxhighlight>
=== デフォルト引数の規則 ===
# デフォルト引数は右端のパラメータから順に指定する必要があります
# デフォルト値は関数宣言時に一度だけ指定します(定義時には記述しません)
# デフォルト値には定数式またはグローバル変数を使用可能です
# クラスメンバ関数では、thisポインタを使用したデフォルト値も設定可能です
=== 基本的な使用例 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
// デフォルト引数を持つ関数の宣言
auto greet(const std::string& name = "Guest") -> void {
std::cout << "Hello, " << name << "!" << std::endl;
}
auto main() -> int {
greet(); // 出力: "Hello, Guest!"
greet("Alice"); // 出力: "Hello, Alice!"
return 0;
}
</syntaxhighlight>
=== 複数のデフォルト引数 ===
関数は複数のデフォルト引数を持つことができます:
:<syntaxhighlight lang=cpp>
#include <iostream>
#include <string>
auto displayInfo(
const std::string& name,
const int age = 0,
const std::string& city = "Unknown"
) -> void {
std::cout << "Name: " << name
<< ", Age: " << age
<< ", City: " << city << std::endl;
}
auto main() -> int {
displayInfo("Bob"); // Name: Bob, Age: 0, City: Unknown
displayInfo("Alice", 30); // Name: Alice, Age: 30, City: Unknown
displayInfo("Charlie", 25, "Tokyo"); // Name: Charlie, Age: 25, City: Tokyo
return 0;
}
</syntaxhighlight>
=== デフォルト引数とオーバーロード ===
デフォルト引数は関数オーバーロードと組み合わせて使用する際に注意が必要です:
:<syntaxhighlight lang=cpp>
// 良い例:明確な区別がある
auto process(const int x) -> void;
auto process(const int x, const std::string& s = "") -> void;
// 悪い例:曖昧な呼び出しの可能性
auto process(const int x, const int y = 0) -> void;
auto process(const int x, const std::string& s = "") -> void;
// process(42); // エラー:どちらの関数を呼び出すべきか曖昧
</syntaxhighlight>
=== ベストプラクティス ===
* デフォルト引数は関数宣言時にのみ指定し、定義では省略する
* 必須パラメータを左側に、オプショナルなパラメータを右側に配置する
* デフォルト値には意味のある値を使用する(例:数値の0、文字列の空文字列など)
* オーバーロードとの組み合わせ時は、曖昧性を避ける
* 変更される可能性のあるグローバル変数はデフォルト値として使用しない
=== まとめ ===
デフォルト引数は、関数インターフェースを柔軟にし、コードの可読性を向上させる強力な機能です。ただし、適切な使用には規則とベストプラクティスの理解が重要です。関数オーバーロードと組み合わせる際は、特に注意が必要です。
== 参照渡しとポインタ渡し ==
=== 値渡しと参照渡しの基本 ===
C++では、関数への引数渡しに以下の3つの方法があります:
# 値渡し:引数の値がコピーされる
# 参照渡し:引数への直接アクセスが可能
# ポインタ渡し:引数のアドレスを通じたアクセス
:<syntaxhighlight lang=cpp>
#include <iostream>
// 値渡し:引数のコピーが作成される
auto passByValue(const int value) -> void {
// valueはローカルコピー
std::cout << "Value: " << value << std::endl;
}
// 参照渡し:元の変数への直接アクセス
auto passByReference(int& ref) -> void {
ref = 100; // 元の変数が変更される
}
// const参照:効率的な読み取り専用アクセス
auto passByConstReference(const int& ref) -> void {
std::cout << "Read only: " << ref << std::endl;
}
auto main() -> int {
int number{42};
passByValue(number); // 値のコピーが渡される
passByReference(number); // 変数への参照が渡される
passByConstReference(number);// constな参照が渡される
return 0;
}
</syntaxhighlight>
=== 参照渡しの特徴 ===
* NULLを取り得ない(必ず有効なオブジェクトを参照)
* 宣言時に初期化が必須
* エイリアシング(別名)として機能
* 参照先の変更不可
* オーバーヘッドなし(通常、ポインタと同様に実装される)
=== ポインタ渡しの特徴 ===
:<syntaxhighlight lang=cpp>
#include <iostream>
auto passByPointer(int* ptr) -> void {
if (ptr) { // nullptr チェックが必要
*ptr = 100;
}
}
auto passByConstPointer(const int* ptr) -> void {
if (ptr) {
std::cout << "Value through pointer: " << *ptr << std::endl;
}
}
auto main() -> int {
int value{42};
int* ptr{&value};
passByPointer(ptr); // ポインタを渡す
passByPointer(nullptr); // nullptr も渡せる
passByConstPointer(ptr); // const ポインタとして渡す
return 0;
}
</syntaxhighlight>
特徴:
* nullptrを取り得る
* ポインタ自体の再代入が可能
* アドレス演算が可能
* 明示的なアドレス操作が必要
* nullptrチェックが必要
=== 使い分けのガイドライン ===
==== 参照を使用する場合 ====
* オブジェクトが必ず存在する場合
* 単純な別名付けが目的の場合
* 関数パラメータでの大きなオブジェクトの受け渡し
* 演算子オーバーロード
* 範囲for文での要素アクセス
==== ポインタを使用する場合 ====
* nullptrが有効な値として必要な場合
* 動的メモリ管理が必要な場合
* ポインタ演算が必要な場合
* 複数のオブジェクトを指す可能性がある場合
* C言語との互換性が必要な場合
=== モダンC++でのベストプラクティス ===
* 基本的には参照を優先
* 大きなオブジェクトはconst参照で渡す
* スマートポインタ(<syntaxhighlight lang=cpp inline>std::unique_ptr</syntaxhighlight>、<syntaxhighlight lang=cpp inline>std::shared_ptr</syntaxhighlight>)の活用
* 生ポインタの使用は最小限に
* 所有権の移転には<syntaxhighlight lang=cpp inline>std::move</syntaxhighlight>を使用
=== まとめ ===
参照とポインタはそれぞれ異なる用途に適しており、状況に応じて適切な方法を選択することが重要です。モダンC++では、安全性の観点から参照の使用が推奨されますが、ポインタにも固有の利点があります。
== ラムダ式と無名関数 ==
{{See also|[[C++/ラムダ式]]}}
=== ラムダ式の概要 ===
ラムダ式は、匿名の関数(無名関数)を定義するための機能であり、関数オブジェクトとして扱われます。C++11で導入され、その後の標準で機能が拡張されています。関数をインラインで定義し、その場で使用できる特徴があり、簡潔で直感的な記法によってコードの可読性と保守性を向上させます。
=== ラムダ式の構文と基本的な使用法 ===
ラムダ式の基本構文は以下の通りです:
: [ キャプチャリスト ] ( パラメータリスト ) [[specifier]] -> 戻り値型 { 本体 }
各要素の説明:
; キャプチャリスト
: ラムダ式が外部のスコープの変数を参照する方法を指定します。空の場合は外部変数を使用しないことを示します。
; パラメータリスト
: 関数の引数リストを指定します。C++20からは自動的なテンプレートパラメータ推論もサポートされています。
; specifier(省略可能)
: constexpr、mutable、noexcept などの修飾子を指定できます。
; 戻り値型(省略可能)
: ラムダ式が返す値の型です。省略時はコンパイラが自動的に推論します。
; 本体
: 実行される処理を記述します。
;基本的な使用例:
:<syntaxhighlight lang="cpp">
#include <iostream>
auto main() -> int {
// 基本的なラムダ式
auto add = [](int x, int y) { return x + y; };
std::cout << add(3, 5) << std::endl; // 出力: 8
// C++20: テンプレートパラメータを使用したラムダ式
auto generic_add = []<typename T>(T x, T y) { return x + y; };
std::cout << generic_add(3.14, 2.86) << std::endl; // 出力: 6
return 0;
}
</syntaxhighlight>
=== キャプチャリスト ===
キャプチャリストには以下の主要な種類があります:
; []
: キャプチャなし。外部変数は使用できません。
; [=]
: デフォルトで値キャプチャ。外部変数をコピーして使用します。
; [&]
: デフォルトで参照キャプチャ。外部変数への参照を使用します。
; [x, &y]
: 特定の変数のみをキャプチャ。xは値キャプチャ、yは参照キャプチャします。
; [this]
: メンバ関数内でthisポインタをキャプチャします。
; [*this]
: C++17以降、thisオブジェクトを値キャプチャします。
;キャプチャの使用例:
:<syntaxhighlight lang="cpp">
#include <iostream>
auto main() -> int {
int x{5};
int y{10};
// 参照キャプチャの例
auto ref_lambda = [&x](){ x += 1; return x; };
// 値キャプチャの例
auto val_lambda = [=](){ return x + y; };
// 特定の変数のみをキャプチャ
auto mixed_lambda = [x, &y](){ y += x; return y; };
std::cout << ref_lambda() << std::endl; // 出力: 6
std::cout << val_lambda() << std::endl; // 出力: 15
std::cout << mixed_lambda() << std::endl; // 出力: 15
return 0;
}
</syntaxhighlight>
== 関数テンプレート ==
{{See also|[[C++/テンプレート#関数テンプレート]]}}
=== テンプレートの概要 ===
関数テンプレートは、異なるデータ型や値に対して汎用的な処理を行うための機能です。テンプレートを使用することで、同じコードを異なるデータ型や値に対して再利用することができます。C++において、関数テンプレートは、ジェネリックプログラミングの手法の一部として広く利用されています。
=== テンプレート関数の定義と使用法 ===
テンプレート関数は、次のような構文を持ちます。
:<syntaxhighlight lang=c++>
template <typename T>
T myFunction(T x, T y) {
return x + y;
}
</syntaxhighlight>
このように、<syntaxhighlight lang=c++ inline>template</syntaxhighlight>キーワードと<syntaxhighlight lang=c++ inline>typename</syntaxhighlight>または<syntaxhighlight lang=c++ inline>class</syntaxhighlight>キーワードを使用して、テンプレートパラメータを定義します。<syntaxhighlight lang=c++ inline>T</syntaxhighlight>はテンプレートパラメータであり、任意のデータ型を指定することができます。関数内では、<syntaxhighlight lang=c++ inline>T</syntaxhighlight>を通じてジェネリックな処理を行うことができます。
テンプレート関数を使用する際には、次のようにして呼び出します。
:<syntaxhighlight lang=c++>
int result1 = myFunction(3, 5); // int型の場合
double result2 = myFunction(3.5, 5.5); // double型の場合
</syntaxhighlight>
引数として与えるデータ型に応じて、適切なテンプレートインスタンスが生成されます。
=== テンプレートの特殊化 ===
テンプレートの特殊化は、特定のデータ型に対してカスタム処理を提供するための機能です。一般的なテンプレート関数に加えて、特定のデータ型に対する特殊なバージョンを提供することができます。これにより、特殊なデータ型に対して最適化された処理を行うことができます。
:<syntaxhighlight lang=c++>
// int型に特殊化されたテンプレート関数
template <>
int myFunction<int>(int x, int y) {
return x * y;
}
</syntaxhighlight>
上記の例では、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型に特殊化された<syntaxhighlight lang=c++ inline>myFunction</syntaxhighlight>関数が定義されています。この関数は、<syntaxhighlight lang=c++ inline>int</syntaxhighlight>型の引数に対して掛け算を行います。特殊化されたテンプレート関数は、通常のテンプレート関数と同様に使用されますが、特定のデータ型に対して優先的に選択されます。
== 関数と型推論 ==
C++は複雑な型システムを持ち、コードの安全性と可読性を向上させるために型推論の機能を提供しています。特に、関数の引数や戻り値、ラムダ式において型推論を活用することができます。C++11以降の規格で導入されたこれらの機能を利用することで、より簡潔でメンテナンスしやすいコードを書くことが可能です。
=== 引数の型推論 ===
関数の引数に対する型推論は、C++20で導入されたコンセプトを使用することで実現できます。テンプレートを使用して、関数の引数の型を自動的に推論することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
// C++20以降での型推論を使用した関数テンプレート
template<typename T>
auto printValue(T value) -> void {
std::cout << value << std::endl;
}
auto main() -> int {
printValue(42); // int型を推論
printValue(3.14); // double型を推論
printValue("Hello"); // const char*型を推論
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>printValue</syntaxhighlight>関数はテンプレートを使用して引数の型を推論します。テンプレートの引数<syntaxhighlight lang=c++ inline>T</syntaxhighlight>が、自動的に渡された引数の型に置き換えられます。
=== 戻り値の型推論 ===
戻り値の型推論は、C++14で導入された機能です。<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して、関数の戻り値の型をコンパイラに推論させることができます。これにより、関数の宣言が簡潔になり、コードの可読性が向上します。
:<syntaxhighlight lang=c++>
#include <iostream>
// 戻り値の型推論を使用した関数
auto add(int a, int b) -> auto {
return a + b;
}
auto main() -> int {
std::cout << add(5, 3) << std::endl; // 8 と表示される
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数の戻り値の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>とし、コンパイラに型推論を任せています。
=== ラムダ式の型推論 ===
ラムダ式は、C++11で導入された匿名関数の一種です。ラムダ式では、引数や戻り値の型を省略することができ、コンパイラが自動的に推論してくれます。ラムダ式の型推論を利用することで、コードがより簡潔になります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// ラムダ式を使用してベクトルの各要素を2倍にする
std::for_each(numbers.begin(), numbers.end(), [](auto& n) {
n *= 2;
});
for (const auto& n : numbers) {
std::cout << n << " "; // 2 4 6 8 10 と表示される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ式の引数<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>としています。コンパイラは<syntaxhighlight lang=c++ inline>n</syntaxhighlight>の型を自動的に推論し、適切な型として扱います。また、戻り値も型推論で暗黙に<code>int</code>が推論されます。
; まとめ
C++11以降の規格で導入された型推論の機能を活用することで、関数の引数や戻り値、ラムダ式の型を明示的に指定する必要がなくなり、コードがより簡潔で可読性の高いものになります。特に、C++14の<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>戻り値型推論やC++20のコンセプトを使用することで、複雑な型を扱う場合でもシンプルなコードを書くことができます。これらの機能を積極的に利用することで、よりメンテナブルで効率的なプログラムを作成することができます。
{{コラム|型推論を用いるとテンプレートを使わずジェネリックプログラミングができる|2=型推論を使用することで、テンプレートを使わずにジェネリックプログラミングを行うことができます。これは、C++11以降で導入された<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードや、C++14以降で導入された<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードなどを活用することで実現されます。
例えば、<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用することで、関数テンプレートを定義せずにジェネリックな関数を作成することができます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
// ジェネリックな関数を定義
auto add(auto a, auto b) {
return a + b;
}
auto main() -> int {
auto result1 = add(5, 3); // int型として推論される
auto result2 = add(3.14, 2.5); // double型として推論される
std::cout << "Result 1: " << result1 << std::endl; // 8
std::cout << "Result 2: " << result2 << std::endl; // 5.64
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>add</syntaxhighlight>関数は<syntaxhighlight lang=c++ inline>auto</syntaxhighlight>キーワードを使用して引数と戻り値の型を推論しています。そのため、関数がジェネリックになり、さまざまな型の引数を受け取ることができます。
同様に、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用して変数の型を推論することもできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int x{5};
decltype(x) y = 10; // 変数xと同じ型(int型)としてyの型が推論される
std::cout << "Value of y: " << y << std::endl; // 10
return 0;
}
</syntaxhighlight>
この例では、<syntaxhighlight lang=c++ inline>decltype(x)</syntaxhighlight>を使用して変数<syntaxhighlight lang=c++ inline>y</syntaxhighlight>の型を変数<syntaxhighlight lang=c++ inline>x</syntaxhighlight>と同じ型として推論しています。このように、<syntaxhighlight lang=c++ inline>decltype</syntaxhighlight>キーワードを使用することで、変数の型を他の式や変数から推論することができます。
これらの型推論機能を組み合わせて使うことで、テンプレートを使わずにジェネリックなプログラミングを行うことができます。これにより、コードがより簡潔で読みやすくなり、プログラムの保守性が向上します。
}}
== 標準ライブラリの関数 ==
=== algorithm ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>algorithm</syntaxhighlight> ライブラリには、STL(Standard Template Library)の一部として、さまざまな便利な関数が含まれています。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::sort()</syntaxhighlight> : コンテナ内の要素をソートします。
; <syntaxhighlight lang=c++ inline>std::find()</syntaxhighlight> : コンテナ内で指定された値を検索します。
; <syntaxhighlight lang=c++ inline>std::count()</syntaxhighlight> : コンテナ内で指定された値の出現回数を数えます。
; <syntaxhighlight lang=c++ inline>std::accumulate()</syntaxhighlight> : コンテナ内の要素を合計します。
; <syntaxhighlight lang=c++ inline>std::transform()</syntaxhighlight> : コンテナ内の要素に対して変換を適用します。
=== functional ライブラリの関数 ===
<syntaxhighlight lang=c++ inline>functional</syntaxhighlight> ライブラリは、関数オブジェクトを操作するためのユーティリティ関数を提供します。主な関数のいくつかを以下に示します。
; <syntaxhighlight lang=c++ inline>std::function</syntaxhighlight> : 任意の関数や関数オブジェクトをラップし、関数型として使用するためのクラスです。
; <syntaxhighlight lang=c++ inline>std::bind</syntaxhighlight> : 関数の一部の引数を固定し、新しい関数を作成します。
; <syntaxhighlight lang=c++ inline>std::plus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::minus</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::multiplies</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::divides</syntaxhighlight> : 二項演算を行う関数オブジェクトです。
; <syntaxhighlight lang=c++ inline>std::greater</syntaxhighlight>, <syntaxhighlight lang=c++ inline>std::less</syntaxhighlight> : 比較を行う関数オブジェクトです。
=== その他の標準ライブラリ関数の利用法 ===
その他の標準ライブラリ関数を利用するには、適切なヘッダファイルをインクルードし、関数を呼び出すだけです。例えば、<syntaxhighlight lang=c++ inline>std::sort</syntaxhighlight>関数を使用する場合、<syntaxhighlight lang=c++ inline><algorithm></syntaxhighlight>ヘッダをインクルードします。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <algorithm>
#include <vector>
auto main() -> int {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// ソート
std::sort(vec.begin(), vec.end());
// 結果を表示
for (const auto& elem : vec) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
このように、標準ライブラリ関数を利用することで、効率的で信頼性の高いコードを書くことができます。
== C++11以降の関数関係の機能追加 ==
C++11以降では、関数に関する機能や新しいスタイルがいくつか導入されています。以下にいくつかの主な機能を紹介します。
; ラムダ式(Lambda Expressions) : C++11では、ラムダ式が導入されました。これは、簡潔な匿名関数を定義するための構文です。ラムダ式は、関数オブジェクトを簡単に定義し、スコープ内で即座に使用することができます。
:<syntaxhighlight lang=c++>
auto func = [](auto x, auto y) { return x + y; };
auto result = func(3, 4); // 7
</syntaxhighlight>
; <code>std::function</code>と<code>std::bind</code> : <code>std::function</code>は、任意の呼び出し可能なターゲット(関数、関数オブジェクト、ラムダ式など)を保持するための汎用的なクラステンプレートです。<code>std::bind</code>は、関数やメンバ関数の呼び出しを部分的に適用するためのツールです。
:<syntaxhighlight lang=c++>
#include <functional>
#include <iostream>
void foo(int x, int y) {
std::cout << "Sum: " << x + y << std::endl;
}
auto main() -> int {
auto f = std::bind(foo, 10, std::placeholders::_1);
f(20); // Sum: 30
return 0;
}
</syntaxhighlight>
; 右辺値参照と移動セマンティクス(Rvalue References and Move Semantics) : C++11では、右辺値参照と移動セマンティクスが導入されました。これにより、一時オブジェクトの所有権を効率的に移動できるようになり、効率的なメモリ管理やオブジェクトのパフォーマンスの向上が可能になりました。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1の所有権がv2に移動される
return 0;
}
</syntaxhighlight>
; constexpr関数 : <code>constexpr</code>修飾子を使って関数を宣言することで、コンパイル時に評価される定数式として使用できる関数を定義できます。これにより、コンパイル時の計算が可能になり、実行時のオーバーヘッドが軽減されます。
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
auto main() -> int {
constexpr int result = factorial(5); // コンパイル時に評価される
return 0;
}
</syntaxhighlight>
; デフォルト関数と削除関数 : <code>= default</code>および<code>= delete</code>キーワードを使用して、デフォルトのコンストラクタやデストラクタを明示的に指定することができます。また、<code>= delete</code>を使用して、意図的に特定の関数の定義を削除することもできます。
:<syntaxhighlight lang=c++>
class MyClass {
public:
// デフォルトのコンストラクタ
MyClass() = default;
// コピーコンストラクタを削除
MyClass(const MyClass&) = delete;
};
</syntaxhighlight>
; consteval関数 : <code>consteval</code>はC++20で導入されたキーワードで、constexpr関数の一種ですが、コンパイル時に実行されることが保証される点で異なります。<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義することができます。これにより、プログラムのパフォーマンスやセキュリティを向上させることができます。
:以下は、<code>consteval</code>を使用して素数を判定する関数を定義する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
// トレイリングリターン型を使った素数判定関数
consteval auto is_prime(int n) -> bool {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
auto main() -> int {
constexpr auto num{17};
if (constexpr bool result = is_prime(num); result) {
std::cout << num << " is a prime number." << std::endl;
} else {
std::cout << num << " is not a prime number." << std::endl;
}
return 0;
}
</syntaxhighlight>
: この例では、<code>is_prime</code>関数が<code>consteval</code>で修飾されています。そのため、この関数はコンパイル時に実行され、結果はコンパイル時に評価されます。<code>constexpr</code>修飾子を使用して変数<code>num</code>を定義し、この変数を<code>is_prime</code>関数の引数として使用しています。コンパイル時に<code>is_prime</code>関数が評価され、結果が定数式として求められます。その結果、変数<code>result</code>はコンパイル時に確定され、実行時には不変の値となります。
: このように、<code>consteval</code>を使用することで、コンパイル時に実行される関数を定義し、実行時のオーバーヘッドを避けることができます。これにより、効率的なコードを記述し、パフォーマンスの向上やセキュリティの確保を実現することができます。
これらの機能やスタイルの導入により、C++の関数や関数に関連するコードの記述がより簡潔で効率的になり、より安全で柔軟なプログラミングが可能になりました。
== 例題と演習 ==
=== 簡単な問題から応用問題までの一連の演習 ===
; 簡単な問題
: 整数の配列が与えられたとき、その配列の要素の合計を計算する関数を作成してください。
; 中級レベルの問題
: 与えられた文字列が回文(前から読んでも後ろから読んでも同じ)かどうかを判定する関数を実装してください。
; 応用問題
: フィボナッチ数列の第n項を計算する関数を再帰的に実装してください。ただし、この関数の計算時間が指数時間になることを避けるために、適切な方法で最適化してください。
=== 回答例 ===
:<syntaxhighlight lang=c++>
#include <iostream>
#include <cassert>
// 例題1の関数: 配列の合計を計算する関数
int sumArray(const int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}
// 例題2の関数: 回文かどうかを判定する関数
bool isPalindrome(const std::string& str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
++left;
--right;
}
return true;
}
// 例題3の関数: フィボナッチ数列の第n項を計算する関数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
auto main() -> int {
// 例題1のテスト
int arr[] = {1, 2, 3, 4, 5};
assert(sumArray(arr, 5) == 15);
// 例題2のテスト
assert(isPalindrome("radar") == true);
assert(isPalindrome("hello") == false);
// 例題3のテスト
assert(fibonacci(6) == 8);
std::cout << "All tests passed!" << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、各関数をテストするために <syntaxhighlight lang=c++ inline>assert()</syntaxhighlight> マクロが使用されています。各関数が期待どおりに動作するかどうかを確認するために、適切な入力でテストを行います。
{{Nav}}
[[Category:C++]]
gtii5lxyqwyde42ertlkgc5k3vul9xm
C++/データ型と変数
0
39747
263055
250070
2024-11-05T01:19:42Z
Ef3
694
/* スマートポインタ (smart pointer) */ 校閲と推敲
263055
wikitext
text/x-wiki
{{Nav}}
== データ型の概念 ==
=== データ型とは ===
データ型(data type)とは、プログラミング言語においてデータを表現する方法を定義するものです。データ型は、データがどのようなフォーマットで格納され、どのような操作が可能かを決定します。例えば、整数型は整数値を表現するためのデータ型であり、浮動小数点数型は実数値を表現するためのデータ型です。
=== データ型の重要性 ===
データ型は、プログラミングにおいて非常に重要な概念です。適切なデータ型を選択することで、プログラムのメモリ使用量を最適化し、予期しない動作を防ぐことができます。また、データ型を適切に使用することで、コードの可読性と保守性が向上します。
データ型を適切に使用しないと、様々な問題が発生する可能性があります。たとえば、整数型に実数値を代入しようとすると、値が切り捨てられてしまいます。また、メモリ上の値を意図しない型で解釈すると、予期しないデータにアクセスしてしまう可能性があります。
=== C++におけるデータ型の分類 ===
C++には、さまざまなデータ型が用意されています。大まかに分類すると、以下のようになります。
# 基本データ型
#* 整数型 (int, short, long, longlong)
#* 浮動小数点数型 (float, double, longdouble)
#* 文字型 (char)
#* ブール型 (bool)
#* ビットフィールド型
# 複合データ型
#* 配列型
#* ポインタ型
#* ユーザー定義型 (構造体、共用体、列挙型、クラス)
# void型
#* 値を持たない型
# その他
#* 型修飾子 (signed, unsigned, const, volatile)
#* リテラル型
プログラマは、データの性質に応じて適切なデータ型を選択する必要があります。次の節から、各データ型の詳細について説明していきます。
== 基本データ型 ==
C++には、さまざまな基本データ型があり、それぞれに異なる用途と特性があります。以下では、基本データ型について詳しく説明します。
=== 整数型 ===
整数型には、符号あり整数型と符号なし整数型があります。整数型は、整数を扱うためのデータ型であり、メモリ使用量や数値範囲が異なる複数の種類が存在します。
==== 符号あり整数型 (int, short, long, long long) ====
符号あり整数型は、正の数値と負の数値の両方を表現できます。以下の型が存在します:
; <code>signed char</code> : 最小幅は8ビット
; <code>short int</code> : 最小幅は16ビット
; <code>int</code> : 最小幅は16ビット
; <code>long int</code> : 最小幅は32ビット
; <code>long long int</code> : 最小幅は64ビット
各型の幅は、少なくとも前の型と同じかそれ以上の記憶容量を持ちます。符号あり整数型の範囲は、-2^(N-1)から2^(N-1)-1までです。
==== 符号なし整数型 (unsigned int, unsigned short, unsigned long) ====
符号なし整数型は、正の数値のみを表現します。以下の型が存在します:
* <code>unsigned char</code>
* <code>unsigned short int</code>
* <code>unsigned int</code>
* <code>unsigned long int</code>
* <code>unsigned long long int</code>
符号なし整数型の範囲は、0から2^N-1までです。符号なし整数型は符号あり整数型と同じ幅を持ちますが、負の数値を表現しません。
=== 浮動小数点数型 ===
浮動小数点数型は、実数を表現するためのデータ型です。以下の型が存在します:
==== float型 ====
; <code>float</code> : 単精度浮動小数点数。通常32ビットで表現されます。
==== double型 ====
; <code>double</code> : 倍精度浮動小数点数。通常64ビットで表現されます。
=== 文字型 ===
文字型は、文字を表現するためのデータ型です。
==== char型 ====
; <code>char</code> : 一般的には1バイト(8ビット)で表現されます。<code>signed char</code>と<code>unsigned char</code>のどちらかとして実装されます。
=== ブール型 ===
ブール型は、真理値(真または偽)を表現するためのデータ型です。
==== bool型 ====
; <code>bool</code> : 真理値を表現するための型。<code>true</code>(真)または<code>false</code>(偽)の値を取ります。
=== データ型の範囲と精度 ===
各データ型の範囲と精度は、以下のようになります:
; 符号あり整数型 : 最小幅は8ビットから64ビット。範囲は-2^(N-1)から2^(N-1)-1。
; 符号なし整数型 : 最小幅は8ビットから64ビット。範囲は0から2^N-1。
; 浮動小数点数型 : <code>float</code>は単精度(32ビット)、<code>double</code>は倍精度(64ビット)。
=== ISO/IEC 60559準拠の拡張浮動小数点数型 ===
標準に加えて、C++はISO/IEC 60559(IEEE 754)準拠の拡張浮動小数点数型もサポートすることが推奨されています。以下の型が存在します:
* <code>std::float16_t</code>: 16ビット
* <code>std::float32_t</code>: 32ビット
* <code>std::float64_t</code>: 64ビット
* <code>std::float128_t</code>: 128ビット
これらの型は、それぞれのビット幅と精度に応じて、異なる数値範囲と精度を提供します。
C++の基本データ型は、効率的かつ正確にデータを扱うための重要な要素です。各データ型の特性と用途を理解することで、プログラムの効率性と信頼性を向上させることができます。
== 複合データ型 ==
複合データ型は、基本データ型を組み合わせて作成されるデータ型で、より複雑なデータ構造を表現するために使用されます。C++にはいくつかの複合データ型が存在し、それぞれ異なる用途と特性を持っています。以下では、主な複合データ型について解説します。
=== 配列 ===
{{Main|C++/配列とベクトル}}
配列は、同じデータ型の要素を連続的に格納するデータ構造です。配列は固定長であり、宣言時にその長さを指定する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int numbers[5] = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
return 0;
}
</syntaxhighlight>
=== 構造体 (struct) ===
{{Main|C++/構造体}}
構造体は、異なるデータ型の要素をまとめて一つの複合データ型として定義することができます。構造体を使用すると、関連するデータを一つの単位として扱うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person john = {"John Doe", 30, 175.5};
std::cout << "Name: " << john.name << "\n";
std::cout << "Age: " << john.age << "\n";
std::cout << "Height: " << john.height << "\n";
return 0;
}
</syntaxhighlight>
=== 共用体 (union) ===
{{Main|C++/共用体}}
共用体は、同じメモリ領域を複数のデータ型で共有するデータ構造です。共用体の各メンバは同じメモリを使用するため、同時に一つのメンバしか有効にできません。
:<syntaxhighlight lang=c++>
#include <iostream>
union Data {
int intValue;
float floatValue;
char charValue;
};
auto main() -> int {
Data data{ .intValue = 42 };
std::cout << "Int value: " << data.intValue << "\n";
data.floatValue = 3.14;
std::cout << "Float value: " << data.floatValue << "\n";
data.charValue = 'A';
std::cout << "Char value: " << data.charValue << "\n";
return 0;
}
</syntaxhighlight>
=== 列挙クラス (enum class) ===
{{Main|C++/列挙型と列挙クラス}}
列挙クラスは、名前付き定数の集合を定義するためのデータ型です。列挙クラスを使用すると、コードの可読性が向上し、特定の値のみを取る変数を簡単に定義できます。
またC言語風の古い列挙型は名前空間を持ちませんが、列挙クラスは <code>Color::GREEN</code> のように名前空間を持つので識別子の衝突が起こりません。
列挙クラス <code>switch</code> 文の組み合わせにおいてすべての <code>enum class</code> の値をカバーすることで、全称性が担保されます。このとき、<code>default</code> ケースを使わないようにすることで、すべての可能な値が明示的に処理されていることをコンパイラがチェックできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
enum class Color { RED, GREEN, BLUE };
auto main() -> int {
Color const favoriteColor = Color::GREEN;
switch (favoriteColor) {
case Color::RED:
std::cout << "赤がお好きなんですね!" << std::endl;
break;
case Color::GREEN:
std::cout << "緑がお好きなんですね!" << std::endl;
break;
case Color::BLUE:
std::cout << "青がお好きなんですね!" << std::endl;
break;
// default: は列挙型の全称性を担保することを確認するため書いてはならない
}
return 0;
}
</syntaxhighlight>
このコードでは、<code>default</code> ケを使用していません。これにより、すべての <code>Color</code> enum の値 (<code>RED</code>, <code>GREEN</code>, <code>BLUE</code>) が明示的にカバーされていることが保証されます。コンパイラがすべてのケースがカバーされていることをチェックし、もし将来 <code>Color</code> enum に新しい値が追加された場合、コンパイラが警告を出してくれるので、新しい値の処理を追加するのを忘れずに済みます。
=== タプル (tuple) ===
タプルは、異なるデータ型の要素をまとめて一つの単位として扱うデータ構造で、複数の値を関数から返すときなどに便利です。C++11以降で標準ライブラリに追加されました。
以下のコード例では、tupleのさまざまな機能を示しています。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <tuple>
auto main() -> int {
// タプルの作成
auto tuple1 =
std::tuple{42, 3.14, std::string{"hello"}}; // C++17から可能な構文
// タプルの要素へのアクセス
std::cout << "tuple1: " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルの要素の参照
int& a = std::get<0>(tuple1);
a = 100;
std::cout << "tuple1 (after modification): " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルのアンパック
auto [x, y, z] = tuple1;
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// タプルのサイズ
std::cout << "tuple1 size: " << std::tuple_size<decltype(tuple1)>::value
<< std::endl;
// タプルの連結
auto tuple2 = std::tuple_cat(std::tuple{1, 2.0}, std::tuple{'a', false});
std::cout << "tuple2: " << std::get<0>(tuple2) << ", "
<< std::get<1>(tuple2) << ", " << std::get<2>(tuple2) << ", "
<< std::get<3>(tuple2) << std::endl;
return 0;
}
</syntaxhighlight>
;出力:
:<syntaxhighlight lang=text>
tuple1: 42, 3.14, hello
tuple1 (after modification): 100, 3.14, hello
x: 100, y: 3.14, z: hello
tuple1 size: 3
tuple2: 1, 2, a, 0
</syntaxhighlight>
; 説明:
:# <code>std::tuple</code>を使ってタプルを作成できます。異なる型の値を要素として持つことができます。
:# <code>std::get<N>(tuple)</code>を使って、タプルの要素にアクセスできます。ここで、Nは0から始まるインデックスです。
:# タプルの要素は参照を取得して変更できます。
:# 構造化バインディングを使えば、タプルの要素を個別の変数にアンパックできます。
:# <code>std::tuple_size<T>::value</code>でタプルのサイズ(要素数)を取得できます。
:# <code>std::tuple_cat()</code>関数を使えば、2つのタプルを連結できます。
:# <code>std::make_tuple()</code>関数を使えば、値のリストからタプルを作成できます。
このように、C++のtupleは異なる型の値をまとめて扱えるため、関数から複数の値を返したり、複数の引数をまとめて渡したりするのに便利です。また、タプルのサイズは実行時に決定されるため、コンパイル時にはサイズを知る必要がありません。
{{Main|C++/標準ライブラリ/tuple}}
=== スマートポインタ (smart pointer) ===
{{Main|C++/ポインターと参照}}
スマートポインタは、動的メモリ管理を自動化するためのクラスであり、C++11以降に導入されました。これにより、メモリリークや未解放メモリの問題を防ぎ、メモリ管理をより安全かつ簡便に行えるようになります。代表的なスマートポインタには、<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code>があります。
=== std::unique_ptr ===
<code>std::unique_ptr</code> は、所有権が一意であることを保証するスマートポインタです。他のポインタに所有権を移すことができますが、コピーはできません。自動的にメモリを解放し、リソース管理が容易です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Value: " << *ptr << "\n";
// ptrのスコープを抜けると、自動的にメモリが解放される
return 0;
}
</syntaxhighlight>
=== std::shared_ptr ===
<code>std::shared_ptr</code> は、複数のポインタが同じオブジェクトの所有権を共有できるスマートポインタです。オブジェクトが最後の<code>shared_ptr</code>から解放されると、メモリが自動的に解放されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr1 = std::make_shared<int>(20);
{
auto sharedPtr2 = sharedPtr1; // 所有権を共有
std::cout << "Shared Value: " << *sharedPtr2 << "\n";
} // sharedPtr2のスコープを抜けるが、sharedPtr1はまだ生きている
std::cout << "Shared Value after block: " << *sharedPtr1 << "\n";
return 0;
}
</syntaxhighlight>
=== std::weak_ptr ===
<code>std::weak_ptr</code> は、<code>std::shared_ptr</code> によって所有されているオブジェクトへの弱い参照を提供します。これにより、循環参照を防ぎ、メモリリークを回避することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr = std::make_shared<int>(30);
std::weak_ptr<int> weakPtr = sharedPtr; // weak_ptrを作成
if (auto lockedPtr = weakPtr.lock()) { // 有効なshared_ptrを取得
std::cout << "Weak Value: " << *lockedPtr << "\n";
} else {
std::cout << "Weak pointer is expired.\n";
}
sharedPtr.reset(); // shared_ptrをリセットしてメモリを解放
if (weakPtr.expired()) {
std::cout << "Weak pointer is expired after reset.\n";
}
return 0;
}
</syntaxhighlight>
; まとめ
スマートポインタは、基本データ型を組み合わせてより複雑なデータ構造を作成するための強力なツールです。<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code> などのスマートポインタを適切に使用することで、メモリ管理が効率的で可読性の高いプログラムを作成できます。各データ型の特性と使用方法を理解し、状況に応じて適切な型を選択することが重要です。
== 変数の宣言 ==
C++プログラムにおいて、変数はデータを保存するための基本的な手段です。変数の宣言方法、名前の付け方、データ型の指定、および初期化方法について詳しく説明します。
=== 変数とは ===
変数とは、プログラムが実行されている間にデータを保存するための名前付きの記憶場所です。変数には特定のデータ型が割り当てられ、その型に応じた値を保持します。変数を使用することで、プログラムは動的にデータを操作したり、保存したりすることができます。
=== 変数名の規則 ===
C++では、変数名を付ける際にいくつかの規則があります。これらの規則を守ることで、プログラムが正しくコンパイルされ、予期しないエラーを防ぐことができます。
# '''文字と数字を使用:''' 変数名は英文字(大文字と小文字の区別あり)、数字、アンダースコア(_)を使用できます。ただし、最初の文字は数字であってはいけません。
#* 有効な例: <code>age</code>, <code>total_sum</code>, <code>_value</code>
#* 無効な例: <code>2ndValue</code>, <code>-height</code>
# '''キーワードの使用禁止:''' C++のキーワードは変数名として使用できません。
#* 無効な例: <code>int</code>, <code>return</code>, <code>class</code>
# '''大文字と小文字の区別:''' 変数名は大文字と小文字を区別します。例えば、<code>Value</code>と<code>value</code>は異なる変数とみなされます。
# '''読みやすさの確保:''' 変数名は、意味のある名前を付けることでコードの可読性を向上させることが推奨されます。
#* 良い例: <code>totalAmount</code>, <code>numberOfStudents</code>
#* 悪い例: <code>a</code>, <code>n</code>, <code>x1</code>
=== データ型の指定 ===
変数を宣言する際には、その変数が保持するデータの型を指定します。C++では、以下のような基本的なデータ型があります。
* '''整数型:''' <code>int</code>, <code>short</code>, <code>long</code>, <code>long long</code>
* '''符号なし整数型:''' <code>unsigned int</code>, <code>unsigned short</code>, <code>unsigned long</code>, <code>unsigned long long</code>
* '''浮動小数点数型:''' <code>float</code>, <code>double</code>, <code>long double</code>
* '''文字型:''' <code>char</code>
* '''ブール型:''' <code>bool</code>
;例:
:<syntaxhighlight lang=c++>
int age;
float height;
char initial;
bool isStudent;
</syntaxhighlight>
=== 変数の初期化 ===
変数を宣言する際には、その変数に初期値を割り当てることができます。初期化の方法は以下の通りです。
; コピー初期化
:<syntaxhighlight lang=c++>
int age = 30;
double pi = 3.14;
</syntaxhighlight>
; 直接初期化
:<syntaxhighlight lang=c++>
int age(30);
double pi(3.14);
</syntaxhighlight>
; 統一初期化
:<syntaxhighlight lang=c++>
int age{30};
double pi{3.14};
</syntaxhighlight>
統一初期化は、より安全な初期化方法とされています。これは、暗黙の型変換が行われないため、意図しない型変換によるエラーを防ぐことができます。
例:
:<syntaxhighlight lang=c++>
auto main() -> int {
int age = 25; // コピー初期化
double pi(3.14159); // 直接初期化
char initial{'D'}; // 統一初期化
bool isStudent = true;
// 変数の使用
std::cout << "Age: " << age << std::endl;
std::cout << "Pi: " << pi << std::endl;
std::cout << "Initial: " << initial << std::endl;
std::cout << "Is Student: " << std::boolalpha << isStudent << std::endl;
return 0;
}
</syntaxhighlight>
このように、変数の宣言と初期化は、プログラムの基本構造を理解し、正確にデータを操作するための重要なスキルです。変数の正しい使用は、プログラムの可読性と保守性を向上させます。
== 型付け規則 ==
C++における型付け規則は、プログラム内で使用されるデータの型の扱いを定義します。型変換は、あるデータ型の値を別のデータ型に変換するプロセスであり、これには暗黙の型変換と明示的な型変換があります。また、キャストを使用して明示的な型変換を行う方法についても説明します。
=== 暗黙の型変換 ===
暗黙の型変換(または自動型変換)は、コンパイラが自動的にある型から別の型へ値を変換するプロセスです。これは、互換性のある型同士で行われ、特に基本データ型間で頻繁に発生します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
{ // 初期化と自動型変換
int a = 10;
double b = a; // aは自動的にdoubleに変換される
double x = 9.99;
int y = x; // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 直接初期化と自動型変換
int a(10);
double b(a); // aは自動的にdoubleに変換される
double x(9.99);
int y(x); // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 統一初期化と狭小化の警告
int a{ 10 };
// double b{ a };
//=> error: non-constant-expression cannot be narrowed from type 'int' to 'double' in initializer list [-Wc++11-narrowing]
double x{ 9.99 };
// int y{ x };
//=> error: type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
}
return 0;
}
</syntaxhighlight>
このコードは、C++における統一初期化と型の自動変換を示したものです。主に以下の3つの側面を扱っています。
; 初期化と自動型変換
: 最初のブロックでは、<code>int</code>型の変数<var>a</var>を10で初期化し、<code>double</code>型の変数<var>b</var>を<var>a</var>で初期化しています。この際、<var>a</var>の値は自動的に<code>double</code>型に変換されます。同様に、<code>double</code>型の変数<var>x</var>を9.99で初期化し、<code>int</code>型の変数<var>y</var>で<var>x</var>で初期化すると、<var>x</var>の値は<code>int</code>型に変換され、小数部分が切り捨てられます。
; 直接初期化と自動型変換
: 2番目のブロックでは、直接初期化の構文を使用しています。<code>int a(10);</code>は<code>int a = 10;</code>と同じ意味です。<code>double b(a);</code>の場合も、<var>a</var>の値は自動的に<code>double</code>型に変換されます。<code>double x(9.99);</code>と<code>int y(x);</code>の振る舞いは、最初のブロックと同様です。
; 統一初期化と狭小化の警告
: 3番目のブロックでは、統一初期化の構文<code>{}</code>を使用しています。<code>int a{10};</code>と<code>double x{9.99};</code>は問題ありません。しかし、<code>double b{a};</code>と<code>int y{x};</code>はコメントアウトされています。これらの行をコメントアウトしない場合、コンパイラは狭小化の警告を出力します。統一初期化では、明示的な型キャストがない限り、異なる型への変換は許可されません。つまり、<code>int</code>から<code>double</code>への変換も、<code>double</code>から<code>int</code>への変換も許可されず、エラーが発生します。
このコードは、C++における初期化の構文と、自動型変換や狭小化の扱いについて説明しています。統一初期化なら、より厳格な規則が適用されることに注意が必要です。
=== 明示的な型変換 ===
明示的な型変換は、プログラマが意図的にある型を別の型に変換することを指します。C++では、明示的な型変換をキャストと呼びます。キャストを使用することで、型変換の意図を明確にし、安全性と可読性を向上させることができます。
=== キャストの使い方 ===
C++には複数のキャスト方法があり、それぞれ異なる用途と安全性を持っています。適切なキャストを選択することは、プログラムの安全性と可読性を確保する上で非常に重要です。以下に、主なキャスト方法とその特徴を説明します。
==== Cスタイルキャスト(非推奨) ====
C++では、Cスタイルキャストを使用して明示的な型変換を行うことができますが、これは推奨されません。なぜなら、Cスタイルキャストは非常に強力であり、意図しない変換を引き起こす可能性があるためです。Cスタイルキャストは、以下のように括弧を使用します。
:<syntaxhighlight lang=c++>
int a = 10;
double b = (double)a; // Cスタイルキャスト
</syntaxhighlight>
==== static_cast ====
<code>static_cast</code>は、最も一般的に使用されるキャストで、基本データ型間の変換や互換性のあるクラス型間の変換に使用されます。static_castは、コンパイル時に型チェックが行われるため、安全性が高くなります。
:<syntaxhighlight lang=c++>
int a = 10;
double b = static_cast<double>(a);
</syntaxhighlight>
==== dynamic_cast ====
<code>dynamic_cast</code>は、ポインタや参照を基底クラス型から派生クラス型へ安全に変換するために使用されます。これは、ランタイム型情報(RTTI)を使用して、変換が安全かどうかを確認します。dynamic_castは、主に多態性を扱う際に使用されます。
:<syntaxhighlight lang=c++>
class Base { virtual void func() {} };
class Derived : public Base { void func() override {} };
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 安全な変換
</syntaxhighlight>
==== const_cast ====
<code>const_cast</code>は、オブジェクトの定数性を除去するために使用されます。これは、定数メンバ関数内で非定数メンバにアクセスする必要がある場合などに使用されます。const_castは、慎重に使用する必要があります。
:<syntaxhighlight lang=c++>
const int a = 10;
int* b = const_cast<int*>(&a); // aの定数性を除去
*b = 20; // aの値を変更
</syntaxhighlight>
==== reinterpret_cast ====
<code>reinterpret_cast</code>は、ポインタ型やビットパターンを変更するために使用されます。これは、非常に低レベルな操作であり、慎重に使用する必要があります。reinterpret_castは、型の互換性がない場合にも使用できますが、プログラムの動作が未定義になる可能性があります。
:<syntaxhighlight lang=c++>
int a = 65;
char* b = reinterpret_cast<char*>(&a);
std::cout << *b; // 'A'が出力される(ASCIIコード65に対応)
</syntaxhighlight>
; まとめ
C++における型変換は、プログラムの柔軟性を高めるために不可欠です。暗黙の型変換は自動的に行われる一方で、明示的な型変換はプログラマが意図的に行うものであり、適切なキャストを使用して安全かつ明確に実施されます。正しいキャストの選択とその慎重な使用により、プログラムの安全性と可読性を向上させることができます。
キャストを使用する際は、常に目的と意図を明確にし、適切なキャストを選択することが重要です。特に、Cスタイルキャストは避けるべきで、代わりにstatic_castやdynamic_castを使用することをお勧めします。また、const_castやreinterpret_castは、より慎重に使用する必要があります。
== リテラル ==
リテラルとは、プログラム中に直接記述された値そのものを指します。C++では、さまざまな型のリテラルが用意されており、それぞれ異なる形式で表現されます。以下に、主要なリテラルについて説明します。
=== 整数リテラル ===
整数リテラルは、整数型の値を表すリテラルです。整数リテラルには、10進数、8進数、16進数、2進数の形式があります。
; 例:
; 10進数リテラル
:<syntaxhighlight lang=c++>
int decimal{42};
</syntaxhighlight>
; 8進数リテラル
: 先頭に<code>0</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int octal{052}; // 10進数の42と同じ
</syntaxhighlight>
; 16進数リテラル
: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int hex{0x2A}; // 10進数の42と同じ
</syntaxhighlight>
; 2進数リテラル
: 先頭に<code>0b</code>または<code>0B</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int binary{0b101010}; // 10進数の42と同じ
</syntaxhighlight>
整数リテラルには、データ型を指定するためのサフィックスもあります。
* <code>u</code>または<code>U</code>: unsigned
* <code>l</code>または<code>L</code>: long
* <code>ll</code>または<code>LL</code>: long long
; 例:
:<syntaxhighlight lang=c++>
unsigned int unsignedDecimal{42u};
long longDecimal{42L};
long long longLongDecimal{42LL};
</syntaxhighlight>
=== 浮動小数点リテラル ===
浮動小数点リテラルは、小数点を含む数値を表します。通常の10進形式のほかに、指数形式でも表現できます。
; 例:
# 通常の10進形式
#:<syntaxhighlight lang=c++>
double decimal = 3.14;
</syntaxhighlight>
# 指数形式
#: <code>e</code>または<code>E</code>を使用して指数部を表現します。
:<syntaxhighlight lang=c++>
double scientific = 3.14e2; // 3.14 × 10^2 = 314
</syntaxhighlight>
浮動小数点リテラルには、データ型を指定するためのサフィックスもあります。
* <code>f</code>または<code>F</code>: float
* <code>l</code>または<code>L</code>: long double
; 例:
:<syntaxhighlight lang=c++>
float floatLiteral = 3.14f;
long double longDoubleLiteral = 3.14L;
</syntaxhighlight>
=== 文字リテラル ===
文字リテラルは、単一の文字を表します。文字リテラルは、シングルクォート(<code>'</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
char charLiteral = 'A';
</syntaxhighlight>
文字リテラルには、エスケープシーケンスを使用して特殊文字を表現することもできます。
; 例:
:<syntaxhighlight lang=c++>
char newLine = '\n'; // 改行文字
char tab = '\t'; // タブ文字
char singleQuote = '\''; // シングルクォート
char backslash = '\\'; // バックスラッシュ
</syntaxhighlight>
=== 文字列リテラル ===
文字列リテラルは、複数の文字を連続して表現するリテラルです。文字列リテラルは、ダブルクォート(<code>"</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello, World!";
</syntaxhighlight>
文字列リテラル内でも、エスケープシーケンスを使用することができます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello,\nWorld!"; // 改行を含む文字列
</syntaxhighlight>
C++11以降では、生文字列リテラルを使用することができ、エスケープシーケンスや改行をそのまま表現することができます。生文字列リテラルは、<code>R"delimiter(文字列)delimiter"</code>の形式で記述します。
; 例:
:<syntaxhighlight lang=c++>
const char* rawStr = R"(Hello,\nWorld!)"; // エスケープシーケンスが無視される
</syntaxhighlight>
; まとめ
リテラルは、プログラム中で直接使用される具体的な値を表現するための基本的な要素です。整数リテラル、浮動小数点リテラル、文字リテラル、および文字列リテラルの各形式を理解することで、C++プログラムの可読性と正確性を向上させることができます。
^
== 定数の宣言 ==
C++では、プログラム内で値を変更しない変数を「定数」として宣言することができます。定数の宣言には主に<code>const</code>修飾子を使用します。定数を使用することで、コードの可読性が向上し、バグの発生を防ぐことができます。
=== const修飾子 ===
<code>const</code>修飾子を使用すると、その変数は初期化後に変更できなくなります。これは、意図しない変更を防ぐために役立ちます。
; 例:
:<syntaxhighlight lang=c++>
const int MAX_USERS{100};
const double PI{3.14159};
const char NEWLINE{'\n'};
</syntaxhighlight>
上記の例では、<code>MAX_USERS</code>、<code>PI</code>、<code>NEWLINE</code>という3つの定数が宣言されています。これらの値は、プログラムの実行中に変更することはできません。
=== 定数の使用例 ===
<code>const</code>定数はさまざまな場面で使用されます。以下に、いくつかの典型的な使用例を示します。
==== 配列のサイズを定数として宣言 ====
配列のサイズを定数として宣言すると、配列のサイズが変更される可能性を排除できます。
:<syntaxhighlight lang=c++>
const int ARRAY_SIZE{10};
int numbers[ARRAY_SIZE];
</syntaxhighlight>
==== 定数を使用した計算 ====
定数を使用することで、計算式が分かりやすくなり、間違いを減らすことができます。
:<syntaxhighlight lang=c++>
const double TAX_RATE{0.10};
double price{100.0};
double tax = {price * TAX_RATE};
double totalPrice{price + tax};
</syntaxhighlight>
==== 関数の引数に定数を使用 ====
関数の引数に<code>const</code>を使用することで、その引数が関数内で変更されないことを保証できます。
:<syntaxhighlight lang=c++>
void printArray(const int arr[], const size_t size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
</syntaxhighlight>
==== ポインタとconst ====
ポインタと<code>const</code>を組み合わせることで、指し示す値が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
const int value{42};
const int* ptr{&value}; // ptrを通じてvalueを変更することはできない
</syntaxhighlight>
さらに、ポインタ自体を<code>const</code>にすることもできます。
:<syntaxhighlight lang=c++>
int value1{42};
int value2{100};
int* const ptr{&value1}; // ptr自体は変更できないが、指し示す値は変更できる
*ptr = 50; // OK
ptr = &value2; // エラー
</syntaxhighlight>
==== 定数メンバ関数 ====
クラスのメンバ関数に<code>const</code>を指定することで、その関数内でメンバ変数が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
#include <iostream>
class MyClass {
private:
const int value;
public:
MyClass(int val) : value{val} {}
void display() const {
std::cout << "Value: " << value << std::endl;
}
// void f(int x) { value = x; }
//=> error: cannot assign to non-static data member 'value' with const-qualified type 'const int'
};
</syntaxhighlight>
=== constexpr修飾子 ===
<code>constexpr</code>修飾子は、コンパイル時に評価される定数式を定義するために使用されます。<code>constexpr</code>で宣言された変数や関数は、コンパイル時に値が確定し、実行時のオーバーヘッドが削減されます。
; 例:
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue(); // resultはコンパイル時に42と評価される
</syntaxhighlight>
<code>constexpr</code>を使用することで、コンパイル時に計算できる定数や関数を定義し、プログラムのパフォーマンスを向上させることができます。
=== consteval修飾子 ===
<code>consteval</code>修飾子は、関数が必ずコンパイル時に評価されることを保証します。<code>consteval</code>関数は実行時に呼び出すことができず、常にコンパイル時に評価される必要があります。
; 例:
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue(); // OK: コンパイル時に評価される
</syntaxhighlight>
<code>consteval</code>は、確実にコンパイル時に評価される定数を得たい場合に有用です。
; まとめ
; <code>const</code> : 変数の値が不変であることを示します。初期化後に変更不可。
:<syntaxhighlight lang=c++>
const int maxValue{100};
</syntaxhighlight>
; <code>constexpr</code> : コンパイル時に評価される定数式を定義します。コンパイル時に値が確定するため、実行時のパフォーマンスが向上します。
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue();
</syntaxhighlight>
; <code>consteval</code> : 必ずコンパイル時に評価される関数を定義します。
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue();
</syntaxhighlight>
これらのキーワードを適切に使い分けることで、C++プログラムの安全性、効率性、およびパフォーマンスを向上させることができます。
== スコープと有効範囲 ==
C++におけるスコープと有効範囲の理解は、プログラムが意図した通りに動作するために重要です。スコープは変数や関数が有効な範囲を指し、有効範囲はそのスコープ内でそれらがアクセス可能な範囲を意味します。
=== スコープの概念 ===
スコープ(scope)は、プログラム内で識別子(変数名、関数名など)が認識され、使用できる領域を指します。スコープは大きく分けて以下の4種類に分類されます:
; ブロックスコープ(Block Scope) :ブロック内(<code>{}</code>で囲まれた範囲)で有効。
; 関数スコープ(Function Scope) :関数内で有効。
; ファイルスコープ(File Scope) :ファイル内で有効。
; グローバルスコープ(Global Scope) :プログラム全体で有効。
=== ローカル変数とグローバル変数 ===
ローカル変数とグローバル変数は、スコープの観点から見て重要な役割を果たします。
==== ローカル変数 ====
ローカル変数は、その変数が宣言されたブロック内でのみ有効です。関数やループ内で宣言されることが多く、ブロックを抜けると自動的に破棄されます。
:<syntaxhighlight lang=c++>
void myFunction() {
int localVar = 10; // ローカル変数
// このブロック内でのみ有効
}
</syntaxhighlight>
==== グローバル変数 ====
グローバル変数は、ブロック外で宣言され、プログラム全体からアクセス可能です。通常、ファイルの先頭で宣言され、全ての関数やブロックから参照できます。
:<syntaxhighlight lang=c++>
int globalVar = 20; // グローバル変数
void myFunction() {
globalVar = 30; // グローバル変数を変更
}
</syntaxhighlight>
=== 名前空間 ===
{{Main|[[C++/名前空間}}
名前空間(namespace)は、識別子の衝突を避けるために使用されます。特に大規模なプロジェクトやライブラリでは、同じ名前の変数や関数が存在することがあります。名前空間を使用することで、これらの識別子をグループ化し、他のグループと区別することができます。
==== 名前空間の宣言と使用 ====
名前空間を宣言するには<code>namespace</code>キーワードを使用します。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int myVariable = 50;
void myFunction() {
// 名前空間内の関数
}
}
</syntaxhighlight>
名前空間内の要素にアクセスするには、名前空間の名前を指定します。
:<syntaxhighlight lang=c++>
auto main() -> int {
MyNamespace::myVariable = 60; // 名前空間を指定してアクセス
MyNamespace::myFunction(); // 名前空間を指定して関数を呼び出し
return 0;
}
</syntaxhighlight>
==== <code>using</code>キーワードの使用 ====
<code>using</code>キーワードを使うことで、名前空間を明示的に指定せずに、その名前空間内の要素を使用することができます。
:<syntaxhighlight lang=c++>
using namespace MyNamespace;
auto main() -> int {
myVariable = 60; // 名前空間を指定せずにアクセス
myFunction(); // 名前空間を指定せずに関数を呼び出し
return 0;
}
</syntaxhighlight>
ただし、大規模なプロジェクトでは、<code>using namespace</code>を多用することは避けた方が良いです。理由は、名前の衝突を招きやすくなるためです。
; まとめ
スコープと有効範囲は、プログラムの動作を理解し、バグを防ぐために重要な概念です。ローカル変数とグローバル変数の使い分けや、名前空間を使用して識別子の衝突を避けることが、C++プログラミングにおいて重要なスキルとなります。適切にこれらの概念を活用することで、より読みやすく、保守しやすいコードを書くことができます。
== 構造化バインディング (C++17以降) ==
=== 構造化バインディングとは ===
構造化バインディング(structured binding)は、C++17で導入された機能で、複数の変数を一度に初期化するための新しい方法です。これにより、タプルやペア、構造体のメンバ変数など、複数の値を簡潔に扱うことができます。従来の方法と比べて、コードの可読性や保守性が向上します。
構造化バインディングは、以下のようなデータ構造に対して使用できます:
* タプル (<code>std::tuple</code>)
* ペア (<code>std::pair</code>)
* 配列
* 構造体
=== 構造化バインディングの使用例 ===
以下に、構造化バインディングの具体的な使用例を示します。
==== タプルを使用する例 ====
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getValues() {
return std::make_tuple(42, 3.14, "Hello");
}
auto main() -> int {
auto [i, d, s] = getValues();
std::cout << "Integer: " << i << "\n";
std::cout << "Double: " << d << "\n";
std::cout << "String: " << s << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getValues</code>関数がタプルを返し、構造化バインディングを使ってタプルの各要素を変数<code>i</code>、<code>d</code>、<code>s</code>に分解しています。
==== ペアを使用する例 ====
:<syntaxhighlight lang=c++>
#include <utility>
#include <iostream>
std::pair<int, std::string> getPair() {
return std::make_pair(1, "example");
}
auto main() -> int {
auto [number, text] = getPair();
std::cout << "Number: " << number << "\n";
std::cout << "Text: " << text << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getPair</code>関数がペアを返し、構造化バインディングを使ってペアの各要素を変数<code>number</code>と<code>text</code>に分解しています。
==== 配列を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[3] = {1, 2, 3};
auto [a, b, c] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>を構造化バインディングを使って分解し、各要素を変数<code>a</code>、<code>b</code>、<code>c</code>に割り当てています。
==== 構造体を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p = {10, 20};
auto [x, y] = p;
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
この例では、構造体<code>Point</code>を構造化バインディングを使って分解し、メンバ変数<code>x</code>と<code>y</code>をそれぞれの変数に割り当てています。
; まとめ
構造化バインディングは、C++17で導入された非常に強力な機能です。これにより、タプル、ペア、配列、構造体などの複数の値を簡潔かつ直感的に扱うことが可能になります。コードの可読性や保守性が向上し、より効率的なプログラミングが実現できます。C++17以降のプロジェクトで、構造化バインディングを積極的に活用することをお勧めします。
== 応用例と演習問題 ==
=== 応用例 ===
ここでは、構造化バインディングを活用したいくつかの応用例を紹介します。
# ファイル入出力における構造化バインディング
#:<syntaxhighlight lang=c++>
#include <fstream>
#include <string>
#include <tuple>
#include <iostream>
std::tuple<bool, std::string> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
return std::make_tuple(false, "");
}
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
return std::make_tuple(true, content);
}
auto main() -> int {
auto [success, content] = readFile("example.txt");
if (success) {
std::cout << "File content:\n" << content << "\n";
} else {
std::cout << "Failed to read the file.\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、<code>readFile</code>関数がタプルを返し、構造化バインディングを使ってファイル読み込みの成功可否と内容を受け取ります。
# データベースクエリ結果の処理
#:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
#include <vector>
using Record = std::tuple<int, std::string, double>;
std::vector<Record> queryDatabase() {
return {
{1, "Alice", 95.5},
{2, "Bob", 85.0},
{3, "Charlie", 78.2}
};
}
auto main() -> int {
for (const auto& record : queryDatabase()) {
auto [id, name, score] = record;
std::cout << "ID: " << id << ", Name: " << name << ", Score: " << score << "\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、データベースから取得したレコードをタプルのベクタとして受け取り、構造化バインディングを使って各フィールドにアクセスしています。
=== 演習問題 ===
<!-- 問題と解凍に分解する仕組みを検討中 -->
以下の演習問題に取り組んで、構造化バインディングの理解を深めましょう。
; 問題 1:配列の要素の分解
: 次のコードを完成させて、配列の要素を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[4] = {10, 20, 30, 40};
// 構造化バインディングを使って配列の要素を分解し、それぞれの要素を変数に代入してください。
auto [a, b, c, d] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
std::cout << "d: " << d << "\n";
return 0;
}
</syntaxhighlight>
; 問題 2:構造体のメンバ変数の分解
: 次の構造体<code>Person</code>のインスタンスを構造化バインディングを使って分解し、各メンバ変数を出力するプログラムを書いてください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person person = {"John Doe", 30, 175.5};
// 構造化バインディングを使って構造体のメンバ変数を分解し、それぞれのメンバ変数を変数に代入してください。
auto [name, age, height] = person;
std::cout << "Name: " << name << "\n";
std::cout << "Age: " << age << "\n";
std::cout << "Height: " << height << "\n";
return 0;
}
</syntaxhighlight>
; 問題 3:関数の戻り値の分解
: 次のコードを完成させて、関数<code>getPoint</code>の戻り値を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
std::tuple<int, int> getPoint() {
return std::make_tuple(5, 10);
}
auto main() -> int {
// 構造化バインディングを使って関数の戻り値を分解し、それぞれの要素を変数に代入してください。
auto [x, y] = getPoint();
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
これらの演習問題を通じて、構造化バインディングの基本的な使い方をマスターしましょう。
{{Nav}}
[[Category:C++]]
pnychwymk1i75zo4kskx4hcwerr6yrs
263056
263055
2024-11-05T01:26:06Z
Ef3
694
/* 変数の宣言 */ 校閲と推敲
263056
wikitext
text/x-wiki
{{Nav}}
== データ型の概念 ==
=== データ型とは ===
データ型(data type)とは、プログラミング言語においてデータを表現する方法を定義するものです。データ型は、データがどのようなフォーマットで格納され、どのような操作が可能かを決定します。例えば、整数型は整数値を表現するためのデータ型であり、浮動小数点数型は実数値を表現するためのデータ型です。
=== データ型の重要性 ===
データ型は、プログラミングにおいて非常に重要な概念です。適切なデータ型を選択することで、プログラムのメモリ使用量を最適化し、予期しない動作を防ぐことができます。また、データ型を適切に使用することで、コードの可読性と保守性が向上します。
データ型を適切に使用しないと、様々な問題が発生する可能性があります。たとえば、整数型に実数値を代入しようとすると、値が切り捨てられてしまいます。また、メモリ上の値を意図しない型で解釈すると、予期しないデータにアクセスしてしまう可能性があります。
=== C++におけるデータ型の分類 ===
C++には、さまざまなデータ型が用意されています。大まかに分類すると、以下のようになります。
# 基本データ型
#* 整数型 (int, short, long, longlong)
#* 浮動小数点数型 (float, double, longdouble)
#* 文字型 (char)
#* ブール型 (bool)
#* ビットフィールド型
# 複合データ型
#* 配列型
#* ポインタ型
#* ユーザー定義型 (構造体、共用体、列挙型、クラス)
# void型
#* 値を持たない型
# その他
#* 型修飾子 (signed, unsigned, const, volatile)
#* リテラル型
プログラマは、データの性質に応じて適切なデータ型を選択する必要があります。次の節から、各データ型の詳細について説明していきます。
== 基本データ型 ==
C++には、さまざまな基本データ型があり、それぞれに異なる用途と特性があります。以下では、基本データ型について詳しく説明します。
=== 整数型 ===
整数型には、符号あり整数型と符号なし整数型があります。整数型は、整数を扱うためのデータ型であり、メモリ使用量や数値範囲が異なる複数の種類が存在します。
==== 符号あり整数型 (int, short, long, long long) ====
符号あり整数型は、正の数値と負の数値の両方を表現できます。以下の型が存在します:
; <code>signed char</code> : 最小幅は8ビット
; <code>short int</code> : 最小幅は16ビット
; <code>int</code> : 最小幅は16ビット
; <code>long int</code> : 最小幅は32ビット
; <code>long long int</code> : 最小幅は64ビット
各型の幅は、少なくとも前の型と同じかそれ以上の記憶容量を持ちます。符号あり整数型の範囲は、-2^(N-1)から2^(N-1)-1までです。
==== 符号なし整数型 (unsigned int, unsigned short, unsigned long) ====
符号なし整数型は、正の数値のみを表現します。以下の型が存在します:
* <code>unsigned char</code>
* <code>unsigned short int</code>
* <code>unsigned int</code>
* <code>unsigned long int</code>
* <code>unsigned long long int</code>
符号なし整数型の範囲は、0から2^N-1までです。符号なし整数型は符号あり整数型と同じ幅を持ちますが、負の数値を表現しません。
=== 浮動小数点数型 ===
浮動小数点数型は、実数を表現するためのデータ型です。以下の型が存在します:
==== float型 ====
; <code>float</code> : 単精度浮動小数点数。通常32ビットで表現されます。
==== double型 ====
; <code>double</code> : 倍精度浮動小数点数。通常64ビットで表現されます。
=== 文字型 ===
文字型は、文字を表現するためのデータ型です。
==== char型 ====
; <code>char</code> : 一般的には1バイト(8ビット)で表現されます。<code>signed char</code>と<code>unsigned char</code>のどちらかとして実装されます。
=== ブール型 ===
ブール型は、真理値(真または偽)を表現するためのデータ型です。
==== bool型 ====
; <code>bool</code> : 真理値を表現するための型。<code>true</code>(真)または<code>false</code>(偽)の値を取ります。
=== データ型の範囲と精度 ===
各データ型の範囲と精度は、以下のようになります:
; 符号あり整数型 : 最小幅は8ビットから64ビット。範囲は-2^(N-1)から2^(N-1)-1。
; 符号なし整数型 : 最小幅は8ビットから64ビット。範囲は0から2^N-1。
; 浮動小数点数型 : <code>float</code>は単精度(32ビット)、<code>double</code>は倍精度(64ビット)。
=== ISO/IEC 60559準拠の拡張浮動小数点数型 ===
標準に加えて、C++はISO/IEC 60559(IEEE 754)準拠の拡張浮動小数点数型もサポートすることが推奨されています。以下の型が存在します:
* <code>std::float16_t</code>: 16ビット
* <code>std::float32_t</code>: 32ビット
* <code>std::float64_t</code>: 64ビット
* <code>std::float128_t</code>: 128ビット
これらの型は、それぞれのビット幅と精度に応じて、異なる数値範囲と精度を提供します。
C++の基本データ型は、効率的かつ正確にデータを扱うための重要な要素です。各データ型の特性と用途を理解することで、プログラムの効率性と信頼性を向上させることができます。
== 複合データ型 ==
複合データ型は、基本データ型を組み合わせて作成されるデータ型で、より複雑なデータ構造を表現するために使用されます。C++にはいくつかの複合データ型が存在し、それぞれ異なる用途と特性を持っています。以下では、主な複合データ型について解説します。
=== 配列 ===
{{Main|C++/配列とベクトル}}
配列は、同じデータ型の要素を連続的に格納するデータ構造です。配列は固定長であり、宣言時にその長さを指定する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int numbers[5] = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
return 0;
}
</syntaxhighlight>
=== 構造体 (struct) ===
{{Main|C++/構造体}}
構造体は、異なるデータ型の要素をまとめて一つの複合データ型として定義することができます。構造体を使用すると、関連するデータを一つの単位として扱うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person john = {"John Doe", 30, 175.5};
std::cout << "Name: " << john.name << "\n";
std::cout << "Age: " << john.age << "\n";
std::cout << "Height: " << john.height << "\n";
return 0;
}
</syntaxhighlight>
=== 共用体 (union) ===
{{Main|C++/共用体}}
共用体は、同じメモリ領域を複数のデータ型で共有するデータ構造です。共用体の各メンバは同じメモリを使用するため、同時に一つのメンバしか有効にできません。
:<syntaxhighlight lang=c++>
#include <iostream>
union Data {
int intValue;
float floatValue;
char charValue;
};
auto main() -> int {
Data data{ .intValue = 42 };
std::cout << "Int value: " << data.intValue << "\n";
data.floatValue = 3.14;
std::cout << "Float value: " << data.floatValue << "\n";
data.charValue = 'A';
std::cout << "Char value: " << data.charValue << "\n";
return 0;
}
</syntaxhighlight>
=== 列挙クラス (enum class) ===
{{Main|C++/列挙型と列挙クラス}}
列挙クラスは、名前付き定数の集合を定義するためのデータ型です。列挙クラスを使用すると、コードの可読性が向上し、特定の値のみを取る変数を簡単に定義できます。
またC言語風の古い列挙型は名前空間を持ちませんが、列挙クラスは <code>Color::GREEN</code> のように名前空間を持つので識別子の衝突が起こりません。
列挙クラス <code>switch</code> 文の組み合わせにおいてすべての <code>enum class</code> の値をカバーすることで、全称性が担保されます。このとき、<code>default</code> ケースを使わないようにすることで、すべての可能な値が明示的に処理されていることをコンパイラがチェックできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
enum class Color { RED, GREEN, BLUE };
auto main() -> int {
Color const favoriteColor = Color::GREEN;
switch (favoriteColor) {
case Color::RED:
std::cout << "赤がお好きなんですね!" << std::endl;
break;
case Color::GREEN:
std::cout << "緑がお好きなんですね!" << std::endl;
break;
case Color::BLUE:
std::cout << "青がお好きなんですね!" << std::endl;
break;
// default: は列挙型の全称性を担保することを確認するため書いてはならない
}
return 0;
}
</syntaxhighlight>
このコードでは、<code>default</code> ケを使用していません。これにより、すべての <code>Color</code> enum の値 (<code>RED</code>, <code>GREEN</code>, <code>BLUE</code>) が明示的にカバーされていることが保証されます。コンパイラがすべてのケースがカバーされていることをチェックし、もし将来 <code>Color</code> enum に新しい値が追加された場合、コンパイラが警告を出してくれるので、新しい値の処理を追加するのを忘れずに済みます。
=== タプル (tuple) ===
タプルは、異なるデータ型の要素をまとめて一つの単位として扱うデータ構造で、複数の値を関数から返すときなどに便利です。C++11以降で標準ライブラリに追加されました。
以下のコード例では、tupleのさまざまな機能を示しています。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <tuple>
auto main() -> int {
// タプルの作成
auto tuple1 =
std::tuple{42, 3.14, std::string{"hello"}}; // C++17から可能な構文
// タプルの要素へのアクセス
std::cout << "tuple1: " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルの要素の参照
int& a = std::get<0>(tuple1);
a = 100;
std::cout << "tuple1 (after modification): " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルのアンパック
auto [x, y, z] = tuple1;
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// タプルのサイズ
std::cout << "tuple1 size: " << std::tuple_size<decltype(tuple1)>::value
<< std::endl;
// タプルの連結
auto tuple2 = std::tuple_cat(std::tuple{1, 2.0}, std::tuple{'a', false});
std::cout << "tuple2: " << std::get<0>(tuple2) << ", "
<< std::get<1>(tuple2) << ", " << std::get<2>(tuple2) << ", "
<< std::get<3>(tuple2) << std::endl;
return 0;
}
</syntaxhighlight>
;出力:
:<syntaxhighlight lang=text>
tuple1: 42, 3.14, hello
tuple1 (after modification): 100, 3.14, hello
x: 100, y: 3.14, z: hello
tuple1 size: 3
tuple2: 1, 2, a, 0
</syntaxhighlight>
; 説明:
:# <code>std::tuple</code>を使ってタプルを作成できます。異なる型の値を要素として持つことができます。
:# <code>std::get<N>(tuple)</code>を使って、タプルの要素にアクセスできます。ここで、Nは0から始まるインデックスです。
:# タプルの要素は参照を取得して変更できます。
:# 構造化バインディングを使えば、タプルの要素を個別の変数にアンパックできます。
:# <code>std::tuple_size<T>::value</code>でタプルのサイズ(要素数)を取得できます。
:# <code>std::tuple_cat()</code>関数を使えば、2つのタプルを連結できます。
:# <code>std::make_tuple()</code>関数を使えば、値のリストからタプルを作成できます。
このように、C++のtupleは異なる型の値をまとめて扱えるため、関数から複数の値を返したり、複数の引数をまとめて渡したりするのに便利です。また、タプルのサイズは実行時に決定されるため、コンパイル時にはサイズを知る必要がありません。
{{Main|C++/標準ライブラリ/tuple}}
=== スマートポインタ (smart pointer) ===
{{Main|C++/ポインターと参照}}
スマートポインタは、動的メモリ管理を自動化するためのクラスであり、C++11以降に導入されました。これにより、メモリリークや未解放メモリの問題を防ぎ、メモリ管理をより安全かつ簡便に行えるようになります。代表的なスマートポインタには、<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code>があります。
=== std::unique_ptr ===
<code>std::unique_ptr</code> は、所有権が一意であることを保証するスマートポインタです。他のポインタに所有権を移すことができますが、コピーはできません。自動的にメモリを解放し、リソース管理が容易です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Value: " << *ptr << "\n";
// ptrのスコープを抜けると、自動的にメモリが解放される
return 0;
}
</syntaxhighlight>
=== std::shared_ptr ===
<code>std::shared_ptr</code> は、複数のポインタが同じオブジェクトの所有権を共有できるスマートポインタです。オブジェクトが最後の<code>shared_ptr</code>から解放されると、メモリが自動的に解放されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr1 = std::make_shared<int>(20);
{
auto sharedPtr2 = sharedPtr1; // 所有権を共有
std::cout << "Shared Value: " << *sharedPtr2 << "\n";
} // sharedPtr2のスコープを抜けるが、sharedPtr1はまだ生きている
std::cout << "Shared Value after block: " << *sharedPtr1 << "\n";
return 0;
}
</syntaxhighlight>
=== std::weak_ptr ===
<code>std::weak_ptr</code> は、<code>std::shared_ptr</code> によって所有されているオブジェクトへの弱い参照を提供します。これにより、循環参照を防ぎ、メモリリークを回避することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr = std::make_shared<int>(30);
std::weak_ptr<int> weakPtr = sharedPtr; // weak_ptrを作成
if (auto lockedPtr = weakPtr.lock()) { // 有効なshared_ptrを取得
std::cout << "Weak Value: " << *lockedPtr << "\n";
} else {
std::cout << "Weak pointer is expired.\n";
}
sharedPtr.reset(); // shared_ptrをリセットしてメモリを解放
if (weakPtr.expired()) {
std::cout << "Weak pointer is expired after reset.\n";
}
return 0;
}
</syntaxhighlight>
; まとめ
スマートポインタは、基本データ型を組み合わせてより複雑なデータ構造を作成するための強力なツールです。<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code> などのスマートポインタを適切に使用することで、メモリ管理が効率的で可読性の高いプログラムを作成できます。各データ型の特性と使用方法を理解し、状況に応じて適切な型を選択することが重要です。
== 変数の宣言 ==
C++プログラムにおいて、変数はデータを保存するための基本的な手段です。変数の宣言方法、名前の付け方、データ型の指定、および初期化方法について詳しく説明します。
=== 変数とは ===
変数とは、プログラムが実行されている間にデータを保存するための名前付きの記憶場所です。変数には特定のデータ型が割り当てられ、その型に応じた値を保持します。変数を使用することで、プログラムは動的にデータを操作したり、保存したりすることができます。
=== 変数名の規則 ===
C++では、変数名を付ける際にいくつかの規則があります。これらの規則を守ることで、プログラムが正しくコンパイルされ、予期しないエラーを防ぐことができます。
# '''文字と数字を使用:''' 変数名は英文字(大文字と小文字の区別あり)、数字、アンダースコア(_)を使用できます。ただし、最初の文字は数字であってはいけません。
#* 有効な例: <code>age</code>, <code>total_sum</code>, <code>_value</code>
#* 無効な例: <code>2ndValue</code>, <code>-height</code>
# '''キーワードの使用禁止:''' C++のキーワードは変数名として使用できません。
#* 無効な例: <code>int</code>, <code>return</code>, <code>class</code>
# '''大文字と小文字の区別:''' 変数名は大文字と小文字を区別します。例えば、<code>Value</code>と<code>value</code>は異なる変数とみなされます。
# '''読みやすさの確保:''' 変数名は、意味のある名前を付けることでコードの可読性を向上させることが推奨されます。
#* 良い例: <code>totalAmount</code>, <code>numberOfStudents</code>
#* 悪い例: <code>a</code>, <code>n</code>, <code>x1</code>
=== データ型の指定 ===
変数を宣言する際には、その変数が保持するデータの型を指定します。C++では、以下のような基本的なデータ型があります。
* '''整数型:''' <code>int</code>, <code>short</code>, <code>long</code>, <code>long long</code>
* '''符号なし整数型:''' <code>unsigned int</code>, <code>unsigned short</code>, <code>unsigned long</code>, <code>unsigned long long</code>
* '''浮動小数点数型:''' <code>float</code>, <code>double</code>, <code>long double</code>
* '''文字型:''' <code>char</code>
* '''ブール型:''' <code>bool</code>
;例:
:<syntaxhighlight lang=c++>
int age;
float height;
char initial;
bool isStudent;
</syntaxhighlight>
=== 変数の初期化 ===
変数を宣言する際には、その変数に初期値を割り当てることができます。初期化の方法は以下の通りです。
; コピー初期化
:<syntaxhighlight lang=c++>
int age = 30;
double pi = 3.14;
</syntaxhighlight>
; 直接初期化
:<syntaxhighlight lang=c++>
int age(30);
double pi(3.14);
</syntaxhighlight>
; 統一初期化
:<syntaxhighlight lang=c++>
int age{30};
double pi{3.14};
</syntaxhighlight>
統一初期化は、より安全な初期化方法とされています。これは、暗黙の型変換が行われないため、意図しない型変換によるエラーを防ぐことができます。
例:
:<syntaxhighlight lang=c++>
auto main() -> int {
int age = 25; // コピー初期化
double pi(3.14159); // 直接初期化
char initial{'D'}; // 統一初期化
bool isStudent = true;
// 変数の使用
std::cout << "Age: " << age << std::endl;
std::cout << "Pi: " << pi << std::endl;
std::cout << "Initial: " << initial << std::endl;
std::cout << "Is Student: " << std::boolalpha << isStudent << std::endl;
return 0;
}
</syntaxhighlight>
=== 束縛について ===
C++における「束縛」は、変数が特定の値を保持することを指します。変数が宣言された際、その変数は特定のデータを保持する「束縛」を持ちます。この束縛によって、変数はメモリ上の特定のアドレスに関連付けられ、そのアドレスに格納された値にアクセスすることができます。束縛は変数のライフサイクルに密接に関わっており、変数がスコープを抜けるとその束縛は解除され、関連付けられたメモリは解放されます。
このように、変数の宣言と初期化は、プログラムの基本構造を理解し、正確にデータを操作するための重要なスキルです。変数の正しい使用は、プログラムの可読性と保守性を向上させます。
== 型付け規則 ==
C++における型付け規則は、プログラム内で使用されるデータの型の扱いを定義します。型変換は、あるデータ型の値を別のデータ型に変換するプロセスであり、これには暗黙の型変換と明示的な型変換があります。また、キャストを使用して明示的な型変換を行う方法についても説明します。
=== 暗黙の型変換 ===
暗黙の型変換(または自動型変換)は、コンパイラが自動的にある型から別の型へ値を変換するプロセスです。これは、互換性のある型同士で行われ、特に基本データ型間で頻繁に発生します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
{ // 初期化と自動型変換
int a = 10;
double b = a; // aは自動的にdoubleに変換される
double x = 9.99;
int y = x; // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 直接初期化と自動型変換
int a(10);
double b(a); // aは自動的にdoubleに変換される
double x(9.99);
int y(x); // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 統一初期化と狭小化の警告
int a{ 10 };
// double b{ a };
//=> error: non-constant-expression cannot be narrowed from type 'int' to 'double' in initializer list [-Wc++11-narrowing]
double x{ 9.99 };
// int y{ x };
//=> error: type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
}
return 0;
}
</syntaxhighlight>
このコードは、C++における統一初期化と型の自動変換を示したものです。主に以下の3つの側面を扱っています。
; 初期化と自動型変換
: 最初のブロックでは、<code>int</code>型の変数<var>a</var>を10で初期化し、<code>double</code>型の変数<var>b</var>を<var>a</var>で初期化しています。この際、<var>a</var>の値は自動的に<code>double</code>型に変換されます。同様に、<code>double</code>型の変数<var>x</var>を9.99で初期化し、<code>int</code>型の変数<var>y</var>で<var>x</var>で初期化すると、<var>x</var>の値は<code>int</code>型に変換され、小数部分が切り捨てられます。
; 直接初期化と自動型変換
: 2番目のブロックでは、直接初期化の構文を使用しています。<code>int a(10);</code>は<code>int a = 10;</code>と同じ意味です。<code>double b(a);</code>の場合も、<var>a</var>の値は自動的に<code>double</code>型に変換されます。<code>double x(9.99);</code>と<code>int y(x);</code>の振る舞いは、最初のブロックと同様です。
; 統一初期化と狭小化の警告
: 3番目のブロックでは、統一初期化の構文<code>{}</code>を使用しています。<code>int a{10};</code>と<code>double x{9.99};</code>は問題ありません。しかし、<code>double b{a};</code>と<code>int y{x};</code>はコメントアウトされています。これらの行をコメントアウトしない場合、コンパイラは狭小化の警告を出力します。統一初期化では、明示的な型キャストがない限り、異なる型への変換は許可されません。つまり、<code>int</code>から<code>double</code>への変換も、<code>double</code>から<code>int</code>への変換も許可されず、エラーが発生します。
このコードは、C++における初期化の構文と、自動型変換や狭小化の扱いについて説明しています。統一初期化なら、より厳格な規則が適用されることに注意が必要です。
=== 明示的な型変換 ===
明示的な型変換は、プログラマが意図的にある型を別の型に変換することを指します。C++では、明示的な型変換をキャストと呼びます。キャストを使用することで、型変換の意図を明確にし、安全性と可読性を向上させることができます。
=== キャストの使い方 ===
C++には複数のキャスト方法があり、それぞれ異なる用途と安全性を持っています。適切なキャストを選択することは、プログラムの安全性と可読性を確保する上で非常に重要です。以下に、主なキャスト方法とその特徴を説明します。
==== Cスタイルキャスト(非推奨) ====
C++では、Cスタイルキャストを使用して明示的な型変換を行うことができますが、これは推奨されません。なぜなら、Cスタイルキャストは非常に強力であり、意図しない変換を引き起こす可能性があるためです。Cスタイルキャストは、以下のように括弧を使用します。
:<syntaxhighlight lang=c++>
int a = 10;
double b = (double)a; // Cスタイルキャスト
</syntaxhighlight>
==== static_cast ====
<code>static_cast</code>は、最も一般的に使用されるキャストで、基本データ型間の変換や互換性のあるクラス型間の変換に使用されます。static_castは、コンパイル時に型チェックが行われるため、安全性が高くなります。
:<syntaxhighlight lang=c++>
int a = 10;
double b = static_cast<double>(a);
</syntaxhighlight>
==== dynamic_cast ====
<code>dynamic_cast</code>は、ポインタや参照を基底クラス型から派生クラス型へ安全に変換するために使用されます。これは、ランタイム型情報(RTTI)を使用して、変換が安全かどうかを確認します。dynamic_castは、主に多態性を扱う際に使用されます。
:<syntaxhighlight lang=c++>
class Base { virtual void func() {} };
class Derived : public Base { void func() override {} };
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 安全な変換
</syntaxhighlight>
==== const_cast ====
<code>const_cast</code>は、オブジェクトの定数性を除去するために使用されます。これは、定数メンバ関数内で非定数メンバにアクセスする必要がある場合などに使用されます。const_castは、慎重に使用する必要があります。
:<syntaxhighlight lang=c++>
const int a = 10;
int* b = const_cast<int*>(&a); // aの定数性を除去
*b = 20; // aの値を変更
</syntaxhighlight>
==== reinterpret_cast ====
<code>reinterpret_cast</code>は、ポインタ型やビットパターンを変更するために使用されます。これは、非常に低レベルな操作であり、慎重に使用する必要があります。reinterpret_castは、型の互換性がない場合にも使用できますが、プログラムの動作が未定義になる可能性があります。
:<syntaxhighlight lang=c++>
int a = 65;
char* b = reinterpret_cast<char*>(&a);
std::cout << *b; // 'A'が出力される(ASCIIコード65に対応)
</syntaxhighlight>
; まとめ
C++における型変換は、プログラムの柔軟性を高めるために不可欠です。暗黙の型変換は自動的に行われる一方で、明示的な型変換はプログラマが意図的に行うものであり、適切なキャストを使用して安全かつ明確に実施されます。正しいキャストの選択とその慎重な使用により、プログラムの安全性と可読性を向上させることができます。
キャストを使用する際は、常に目的と意図を明確にし、適切なキャストを選択することが重要です。特に、Cスタイルキャストは避けるべきで、代わりにstatic_castやdynamic_castを使用することをお勧めします。また、const_castやreinterpret_castは、より慎重に使用する必要があります。
== リテラル ==
リテラルとは、プログラム中に直接記述された値そのものを指します。C++では、さまざまな型のリテラルが用意されており、それぞれ異なる形式で表現されます。以下に、主要なリテラルについて説明します。
=== 整数リテラル ===
整数リテラルは、整数型の値を表すリテラルです。整数リテラルには、10進数、8進数、16進数、2進数の形式があります。
; 例:
; 10進数リテラル
:<syntaxhighlight lang=c++>
int decimal{42};
</syntaxhighlight>
; 8進数リテラル
: 先頭に<code>0</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int octal{052}; // 10進数の42と同じ
</syntaxhighlight>
; 16進数リテラル
: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int hex{0x2A}; // 10進数の42と同じ
</syntaxhighlight>
; 2進数リテラル
: 先頭に<code>0b</code>または<code>0B</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int binary{0b101010}; // 10進数の42と同じ
</syntaxhighlight>
整数リテラルには、データ型を指定するためのサフィックスもあります。
* <code>u</code>または<code>U</code>: unsigned
* <code>l</code>または<code>L</code>: long
* <code>ll</code>または<code>LL</code>: long long
; 例:
:<syntaxhighlight lang=c++>
unsigned int unsignedDecimal{42u};
long longDecimal{42L};
long long longLongDecimal{42LL};
</syntaxhighlight>
=== 浮動小数点リテラル ===
浮動小数点リテラルは、小数点を含む数値を表します。通常の10進形式のほかに、指数形式でも表現できます。
; 例:
# 通常の10進形式
#:<syntaxhighlight lang=c++>
double decimal = 3.14;
</syntaxhighlight>
# 指数形式
#: <code>e</code>または<code>E</code>を使用して指数部を表現します。
:<syntaxhighlight lang=c++>
double scientific = 3.14e2; // 3.14 × 10^2 = 314
</syntaxhighlight>
浮動小数点リテラルには、データ型を指定するためのサフィックスもあります。
* <code>f</code>または<code>F</code>: float
* <code>l</code>または<code>L</code>: long double
; 例:
:<syntaxhighlight lang=c++>
float floatLiteral = 3.14f;
long double longDoubleLiteral = 3.14L;
</syntaxhighlight>
=== 文字リテラル ===
文字リテラルは、単一の文字を表します。文字リテラルは、シングルクォート(<code>'</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
char charLiteral = 'A';
</syntaxhighlight>
文字リテラルには、エスケープシーケンスを使用して特殊文字を表現することもできます。
; 例:
:<syntaxhighlight lang=c++>
char newLine = '\n'; // 改行文字
char tab = '\t'; // タブ文字
char singleQuote = '\''; // シングルクォート
char backslash = '\\'; // バックスラッシュ
</syntaxhighlight>
=== 文字列リテラル ===
文字列リテラルは、複数の文字を連続して表現するリテラルです。文字列リテラルは、ダブルクォート(<code>"</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello, World!";
</syntaxhighlight>
文字列リテラル内でも、エスケープシーケンスを使用することができます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello,\nWorld!"; // 改行を含む文字列
</syntaxhighlight>
C++11以降では、生文字列リテラルを使用することができ、エスケープシーケンスや改行をそのまま表現することができます。生文字列リテラルは、<code>R"delimiter(文字列)delimiter"</code>の形式で記述します。
; 例:
:<syntaxhighlight lang=c++>
const char* rawStr = R"(Hello,\nWorld!)"; // エスケープシーケンスが無視される
</syntaxhighlight>
; まとめ
リテラルは、プログラム中で直接使用される具体的な値を表現するための基本的な要素です。整数リテラル、浮動小数点リテラル、文字リテラル、および文字列リテラルの各形式を理解することで、C++プログラムの可読性と正確性を向上させることができます。
^
== 定数の宣言 ==
C++では、プログラム内で値を変更しない変数を「定数」として宣言することができます。定数の宣言には主に<code>const</code>修飾子を使用します。定数を使用することで、コードの可読性が向上し、バグの発生を防ぐことができます。
=== const修飾子 ===
<code>const</code>修飾子を使用すると、その変数は初期化後に変更できなくなります。これは、意図しない変更を防ぐために役立ちます。
; 例:
:<syntaxhighlight lang=c++>
const int MAX_USERS{100};
const double PI{3.14159};
const char NEWLINE{'\n'};
</syntaxhighlight>
上記の例では、<code>MAX_USERS</code>、<code>PI</code>、<code>NEWLINE</code>という3つの定数が宣言されています。これらの値は、プログラムの実行中に変更することはできません。
=== 定数の使用例 ===
<code>const</code>定数はさまざまな場面で使用されます。以下に、いくつかの典型的な使用例を示します。
==== 配列のサイズを定数として宣言 ====
配列のサイズを定数として宣言すると、配列のサイズが変更される可能性を排除できます。
:<syntaxhighlight lang=c++>
const int ARRAY_SIZE{10};
int numbers[ARRAY_SIZE];
</syntaxhighlight>
==== 定数を使用した計算 ====
定数を使用することで、計算式が分かりやすくなり、間違いを減らすことができます。
:<syntaxhighlight lang=c++>
const double TAX_RATE{0.10};
double price{100.0};
double tax = {price * TAX_RATE};
double totalPrice{price + tax};
</syntaxhighlight>
==== 関数の引数に定数を使用 ====
関数の引数に<code>const</code>を使用することで、その引数が関数内で変更されないことを保証できます。
:<syntaxhighlight lang=c++>
void printArray(const int arr[], const size_t size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
</syntaxhighlight>
==== ポインタとconst ====
ポインタと<code>const</code>を組み合わせることで、指し示す値が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
const int value{42};
const int* ptr{&value}; // ptrを通じてvalueを変更することはできない
</syntaxhighlight>
さらに、ポインタ自体を<code>const</code>にすることもできます。
:<syntaxhighlight lang=c++>
int value1{42};
int value2{100};
int* const ptr{&value1}; // ptr自体は変更できないが、指し示す値は変更できる
*ptr = 50; // OK
ptr = &value2; // エラー
</syntaxhighlight>
==== 定数メンバ関数 ====
クラスのメンバ関数に<code>const</code>を指定することで、その関数内でメンバ変数が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
#include <iostream>
class MyClass {
private:
const int value;
public:
MyClass(int val) : value{val} {}
void display() const {
std::cout << "Value: " << value << std::endl;
}
// void f(int x) { value = x; }
//=> error: cannot assign to non-static data member 'value' with const-qualified type 'const int'
};
</syntaxhighlight>
=== constexpr修飾子 ===
<code>constexpr</code>修飾子は、コンパイル時に評価される定数式を定義するために使用されます。<code>constexpr</code>で宣言された変数や関数は、コンパイル時に値が確定し、実行時のオーバーヘッドが削減されます。
; 例:
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue(); // resultはコンパイル時に42と評価される
</syntaxhighlight>
<code>constexpr</code>を使用することで、コンパイル時に計算できる定数や関数を定義し、プログラムのパフォーマンスを向上させることができます。
=== consteval修飾子 ===
<code>consteval</code>修飾子は、関数が必ずコンパイル時に評価されることを保証します。<code>consteval</code>関数は実行時に呼び出すことができず、常にコンパイル時に評価される必要があります。
; 例:
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue(); // OK: コンパイル時に評価される
</syntaxhighlight>
<code>consteval</code>は、確実にコンパイル時に評価される定数を得たい場合に有用です。
; まとめ
; <code>const</code> : 変数の値が不変であることを示します。初期化後に変更不可。
:<syntaxhighlight lang=c++>
const int maxValue{100};
</syntaxhighlight>
; <code>constexpr</code> : コンパイル時に評価される定数式を定義します。コンパイル時に値が確定するため、実行時のパフォーマンスが向上します。
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue();
</syntaxhighlight>
; <code>consteval</code> : 必ずコンパイル時に評価される関数を定義します。
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue();
</syntaxhighlight>
これらのキーワードを適切に使い分けることで、C++プログラムの安全性、効率性、およびパフォーマンスを向上させることができます。
== スコープと有効範囲 ==
C++におけるスコープと有効範囲の理解は、プログラムが意図した通りに動作するために重要です。スコープは変数や関数が有効な範囲を指し、有効範囲はそのスコープ内でそれらがアクセス可能な範囲を意味します。
=== スコープの概念 ===
スコープ(scope)は、プログラム内で識別子(変数名、関数名など)が認識され、使用できる領域を指します。スコープは大きく分けて以下の4種類に分類されます:
; ブロックスコープ(Block Scope) :ブロック内(<code>{}</code>で囲まれた範囲)で有効。
; 関数スコープ(Function Scope) :関数内で有効。
; ファイルスコープ(File Scope) :ファイル内で有効。
; グローバルスコープ(Global Scope) :プログラム全体で有効。
=== ローカル変数とグローバル変数 ===
ローカル変数とグローバル変数は、スコープの観点から見て重要な役割を果たします。
==== ローカル変数 ====
ローカル変数は、その変数が宣言されたブロック内でのみ有効です。関数やループ内で宣言されることが多く、ブロックを抜けると自動的に破棄されます。
:<syntaxhighlight lang=c++>
void myFunction() {
int localVar = 10; // ローカル変数
// このブロック内でのみ有効
}
</syntaxhighlight>
==== グローバル変数 ====
グローバル変数は、ブロック外で宣言され、プログラム全体からアクセス可能です。通常、ファイルの先頭で宣言され、全ての関数やブロックから参照できます。
:<syntaxhighlight lang=c++>
int globalVar = 20; // グローバル変数
void myFunction() {
globalVar = 30; // グローバル変数を変更
}
</syntaxhighlight>
=== 名前空間 ===
{{Main|[[C++/名前空間}}
名前空間(namespace)は、識別子の衝突を避けるために使用されます。特に大規模なプロジェクトやライブラリでは、同じ名前の変数や関数が存在することがあります。名前空間を使用することで、これらの識別子をグループ化し、他のグループと区別することができます。
==== 名前空間の宣言と使用 ====
名前空間を宣言するには<code>namespace</code>キーワードを使用します。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int myVariable = 50;
void myFunction() {
// 名前空間内の関数
}
}
</syntaxhighlight>
名前空間内の要素にアクセスするには、名前空間の名前を指定します。
:<syntaxhighlight lang=c++>
auto main() -> int {
MyNamespace::myVariable = 60; // 名前空間を指定してアクセス
MyNamespace::myFunction(); // 名前空間を指定して関数を呼び出し
return 0;
}
</syntaxhighlight>
==== <code>using</code>キーワードの使用 ====
<code>using</code>キーワードを使うことで、名前空間を明示的に指定せずに、その名前空間内の要素を使用することができます。
:<syntaxhighlight lang=c++>
using namespace MyNamespace;
auto main() -> int {
myVariable = 60; // 名前空間を指定せずにアクセス
myFunction(); // 名前空間を指定せずに関数を呼び出し
return 0;
}
</syntaxhighlight>
ただし、大規模なプロジェクトでは、<code>using namespace</code>を多用することは避けた方が良いです。理由は、名前の衝突を招きやすくなるためです。
; まとめ
スコープと有効範囲は、プログラムの動作を理解し、バグを防ぐために重要な概念です。ローカル変数とグローバル変数の使い分けや、名前空間を使用して識別子の衝突を避けることが、C++プログラミングにおいて重要なスキルとなります。適切にこれらの概念を活用することで、より読みやすく、保守しやすいコードを書くことができます。
== 構造化バインディング (C++17以降) ==
=== 構造化バインディングとは ===
構造化バインディング(structured binding)は、C++17で導入された機能で、複数の変数を一度に初期化するための新しい方法です。これにより、タプルやペア、構造体のメンバ変数など、複数の値を簡潔に扱うことができます。従来の方法と比べて、コードの可読性や保守性が向上します。
構造化バインディングは、以下のようなデータ構造に対して使用できます:
* タプル (<code>std::tuple</code>)
* ペア (<code>std::pair</code>)
* 配列
* 構造体
=== 構造化バインディングの使用例 ===
以下に、構造化バインディングの具体的な使用例を示します。
==== タプルを使用する例 ====
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getValues() {
return std::make_tuple(42, 3.14, "Hello");
}
auto main() -> int {
auto [i, d, s] = getValues();
std::cout << "Integer: " << i << "\n";
std::cout << "Double: " << d << "\n";
std::cout << "String: " << s << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getValues</code>関数がタプルを返し、構造化バインディングを使ってタプルの各要素を変数<code>i</code>、<code>d</code>、<code>s</code>に分解しています。
==== ペアを使用する例 ====
:<syntaxhighlight lang=c++>
#include <utility>
#include <iostream>
std::pair<int, std::string> getPair() {
return std::make_pair(1, "example");
}
auto main() -> int {
auto [number, text] = getPair();
std::cout << "Number: " << number << "\n";
std::cout << "Text: " << text << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getPair</code>関数がペアを返し、構造化バインディングを使ってペアの各要素を変数<code>number</code>と<code>text</code>に分解しています。
==== 配列を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[3] = {1, 2, 3};
auto [a, b, c] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>を構造化バインディングを使って分解し、各要素を変数<code>a</code>、<code>b</code>、<code>c</code>に割り当てています。
==== 構造体を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p = {10, 20};
auto [x, y] = p;
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
この例では、構造体<code>Point</code>を構造化バインディングを使って分解し、メンバ変数<code>x</code>と<code>y</code>をそれぞれの変数に割り当てています。
; まとめ
構造化バインディングは、C++17で導入された非常に強力な機能です。これにより、タプル、ペア、配列、構造体などの複数の値を簡潔かつ直感的に扱うことが可能になります。コードの可読性や保守性が向上し、より効率的なプログラミングが実現できます。C++17以降のプロジェクトで、構造化バインディングを積極的に活用することをお勧めします。
== 応用例と演習問題 ==
=== 応用例 ===
ここでは、構造化バインディングを活用したいくつかの応用例を紹介します。
# ファイル入出力における構造化バインディング
#:<syntaxhighlight lang=c++>
#include <fstream>
#include <string>
#include <tuple>
#include <iostream>
std::tuple<bool, std::string> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
return std::make_tuple(false, "");
}
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
return std::make_tuple(true, content);
}
auto main() -> int {
auto [success, content] = readFile("example.txt");
if (success) {
std::cout << "File content:\n" << content << "\n";
} else {
std::cout << "Failed to read the file.\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、<code>readFile</code>関数がタプルを返し、構造化バインディングを使ってファイル読み込みの成功可否と内容を受け取ります。
# データベースクエリ結果の処理
#:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
#include <vector>
using Record = std::tuple<int, std::string, double>;
std::vector<Record> queryDatabase() {
return {
{1, "Alice", 95.5},
{2, "Bob", 85.0},
{3, "Charlie", 78.2}
};
}
auto main() -> int {
for (const auto& record : queryDatabase()) {
auto [id, name, score] = record;
std::cout << "ID: " << id << ", Name: " << name << ", Score: " << score << "\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、データベースから取得したレコードをタプルのベクタとして受け取り、構造化バインディングを使って各フィールドにアクセスしています。
=== 演習問題 ===
<!-- 問題と解凍に分解する仕組みを検討中 -->
以下の演習問題に取り組んで、構造化バインディングの理解を深めましょう。
; 問題 1:配列の要素の分解
: 次のコードを完成させて、配列の要素を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[4] = {10, 20, 30, 40};
// 構造化バインディングを使って配列の要素を分解し、それぞれの要素を変数に代入してください。
auto [a, b, c, d] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
std::cout << "d: " << d << "\n";
return 0;
}
</syntaxhighlight>
; 問題 2:構造体のメンバ変数の分解
: 次の構造体<code>Person</code>のインスタンスを構造化バインディングを使って分解し、各メンバ変数を出力するプログラムを書いてください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person person = {"John Doe", 30, 175.5};
// 構造化バインディングを使って構造体のメンバ変数を分解し、それぞれのメンバ変数を変数に代入してください。
auto [name, age, height] = person;
std::cout << "Name: " << name << "\n";
std::cout << "Age: " << age << "\n";
std::cout << "Height: " << height << "\n";
return 0;
}
</syntaxhighlight>
; 問題 3:関数の戻り値の分解
: 次のコードを完成させて、関数<code>getPoint</code>の戻り値を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
std::tuple<int, int> getPoint() {
return std::make_tuple(5, 10);
}
auto main() -> int {
// 構造化バインディングを使って関数の戻り値を分解し、それぞれの要素を変数に代入してください。
auto [x, y] = getPoint();
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
これらの演習問題を通じて、構造化バインディングの基本的な使い方をマスターしましょう。
{{Nav}}
[[Category:C++]]
hojle64f084nfeh0js62kv7r5qiwje1
263057
263056
2024-11-05T01:37:10Z
Ef3
694
/* キャストの使い方 */ 校閲と推敲
263057
wikitext
text/x-wiki
{{Nav}}
== データ型の概念 ==
=== データ型とは ===
データ型(data type)とは、プログラミング言語においてデータを表現する方法を定義するものです。データ型は、データがどのようなフォーマットで格納され、どのような操作が可能かを決定します。例えば、整数型は整数値を表現するためのデータ型であり、浮動小数点数型は実数値を表現するためのデータ型です。
=== データ型の重要性 ===
データ型は、プログラミングにおいて非常に重要な概念です。適切なデータ型を選択することで、プログラムのメモリ使用量を最適化し、予期しない動作を防ぐことができます。また、データ型を適切に使用することで、コードの可読性と保守性が向上します。
データ型を適切に使用しないと、様々な問題が発生する可能性があります。たとえば、整数型に実数値を代入しようとすると、値が切り捨てられてしまいます。また、メモリ上の値を意図しない型で解釈すると、予期しないデータにアクセスしてしまう可能性があります。
=== C++におけるデータ型の分類 ===
C++には、さまざまなデータ型が用意されています。大まかに分類すると、以下のようになります。
# 基本データ型
#* 整数型 (int, short, long, longlong)
#* 浮動小数点数型 (float, double, longdouble)
#* 文字型 (char)
#* ブール型 (bool)
#* ビットフィールド型
# 複合データ型
#* 配列型
#* ポインタ型
#* ユーザー定義型 (構造体、共用体、列挙型、クラス)
# void型
#* 値を持たない型
# その他
#* 型修飾子 (signed, unsigned, const, volatile)
#* リテラル型
プログラマは、データの性質に応じて適切なデータ型を選択する必要があります。次の節から、各データ型の詳細について説明していきます。
== 基本データ型 ==
C++には、さまざまな基本データ型があり、それぞれに異なる用途と特性があります。以下では、基本データ型について詳しく説明します。
=== 整数型 ===
整数型には、符号あり整数型と符号なし整数型があります。整数型は、整数を扱うためのデータ型であり、メモリ使用量や数値範囲が異なる複数の種類が存在します。
==== 符号あり整数型 (int, short, long, long long) ====
符号あり整数型は、正の数値と負の数値の両方を表現できます。以下の型が存在します:
; <code>signed char</code> : 最小幅は8ビット
; <code>short int</code> : 最小幅は16ビット
; <code>int</code> : 最小幅は16ビット
; <code>long int</code> : 最小幅は32ビット
; <code>long long int</code> : 最小幅は64ビット
各型の幅は、少なくとも前の型と同じかそれ以上の記憶容量を持ちます。符号あり整数型の範囲は、-2^(N-1)から2^(N-1)-1までです。
==== 符号なし整数型 (unsigned int, unsigned short, unsigned long) ====
符号なし整数型は、正の数値のみを表現します。以下の型が存在します:
* <code>unsigned char</code>
* <code>unsigned short int</code>
* <code>unsigned int</code>
* <code>unsigned long int</code>
* <code>unsigned long long int</code>
符号なし整数型の範囲は、0から2^N-1までです。符号なし整数型は符号あり整数型と同じ幅を持ちますが、負の数値を表現しません。
=== 浮動小数点数型 ===
浮動小数点数型は、実数を表現するためのデータ型です。以下の型が存在します:
==== float型 ====
; <code>float</code> : 単精度浮動小数点数。通常32ビットで表現されます。
==== double型 ====
; <code>double</code> : 倍精度浮動小数点数。通常64ビットで表現されます。
=== 文字型 ===
文字型は、文字を表現するためのデータ型です。
==== char型 ====
; <code>char</code> : 一般的には1バイト(8ビット)で表現されます。<code>signed char</code>と<code>unsigned char</code>のどちらかとして実装されます。
=== ブール型 ===
ブール型は、真理値(真または偽)を表現するためのデータ型です。
==== bool型 ====
; <code>bool</code> : 真理値を表現するための型。<code>true</code>(真)または<code>false</code>(偽)の値を取ります。
=== データ型の範囲と精度 ===
各データ型の範囲と精度は、以下のようになります:
; 符号あり整数型 : 最小幅は8ビットから64ビット。範囲は-2^(N-1)から2^(N-1)-1。
; 符号なし整数型 : 最小幅は8ビットから64ビット。範囲は0から2^N-1。
; 浮動小数点数型 : <code>float</code>は単精度(32ビット)、<code>double</code>は倍精度(64ビット)。
=== ISO/IEC 60559準拠の拡張浮動小数点数型 ===
標準に加えて、C++はISO/IEC 60559(IEEE 754)準拠の拡張浮動小数点数型もサポートすることが推奨されています。以下の型が存在します:
* <code>std::float16_t</code>: 16ビット
* <code>std::float32_t</code>: 32ビット
* <code>std::float64_t</code>: 64ビット
* <code>std::float128_t</code>: 128ビット
これらの型は、それぞれのビット幅と精度に応じて、異なる数値範囲と精度を提供します。
C++の基本データ型は、効率的かつ正確にデータを扱うための重要な要素です。各データ型の特性と用途を理解することで、プログラムの効率性と信頼性を向上させることができます。
== 複合データ型 ==
複合データ型は、基本データ型を組み合わせて作成されるデータ型で、より複雑なデータ構造を表現するために使用されます。C++にはいくつかの複合データ型が存在し、それぞれ異なる用途と特性を持っています。以下では、主な複合データ型について解説します。
=== 配列 ===
{{Main|C++/配列とベクトル}}
配列は、同じデータ型の要素を連続的に格納するデータ構造です。配列は固定長であり、宣言時にその長さを指定する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int numbers[5] = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
return 0;
}
</syntaxhighlight>
=== 構造体 (struct) ===
{{Main|C++/構造体}}
構造体は、異なるデータ型の要素をまとめて一つの複合データ型として定義することができます。構造体を使用すると、関連するデータを一つの単位として扱うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person john = {"John Doe", 30, 175.5};
std::cout << "Name: " << john.name << "\n";
std::cout << "Age: " << john.age << "\n";
std::cout << "Height: " << john.height << "\n";
return 0;
}
</syntaxhighlight>
=== 共用体 (union) ===
{{Main|C++/共用体}}
共用体は、同じメモリ領域を複数のデータ型で共有するデータ構造です。共用体の各メンバは同じメモリを使用するため、同時に一つのメンバしか有効にできません。
:<syntaxhighlight lang=c++>
#include <iostream>
union Data {
int intValue;
float floatValue;
char charValue;
};
auto main() -> int {
Data data{ .intValue = 42 };
std::cout << "Int value: " << data.intValue << "\n";
data.floatValue = 3.14;
std::cout << "Float value: " << data.floatValue << "\n";
data.charValue = 'A';
std::cout << "Char value: " << data.charValue << "\n";
return 0;
}
</syntaxhighlight>
=== 列挙クラス (enum class) ===
{{Main|C++/列挙型と列挙クラス}}
列挙クラスは、名前付き定数の集合を定義するためのデータ型です。列挙クラスを使用すると、コードの可読性が向上し、特定の値のみを取る変数を簡単に定義できます。
またC言語風の古い列挙型は名前空間を持ちませんが、列挙クラスは <code>Color::GREEN</code> のように名前空間を持つので識別子の衝突が起こりません。
列挙クラス <code>switch</code> 文の組み合わせにおいてすべての <code>enum class</code> の値をカバーすることで、全称性が担保されます。このとき、<code>default</code> ケースを使わないようにすることで、すべての可能な値が明示的に処理されていることをコンパイラがチェックできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
enum class Color { RED, GREEN, BLUE };
auto main() -> int {
Color const favoriteColor = Color::GREEN;
switch (favoriteColor) {
case Color::RED:
std::cout << "赤がお好きなんですね!" << std::endl;
break;
case Color::GREEN:
std::cout << "緑がお好きなんですね!" << std::endl;
break;
case Color::BLUE:
std::cout << "青がお好きなんですね!" << std::endl;
break;
// default: は列挙型の全称性を担保することを確認するため書いてはならない
}
return 0;
}
</syntaxhighlight>
このコードでは、<code>default</code> ケを使用していません。これにより、すべての <code>Color</code> enum の値 (<code>RED</code>, <code>GREEN</code>, <code>BLUE</code>) が明示的にカバーされていることが保証されます。コンパイラがすべてのケースがカバーされていることをチェックし、もし将来 <code>Color</code> enum に新しい値が追加された場合、コンパイラが警告を出してくれるので、新しい値の処理を追加するのを忘れずに済みます。
=== タプル (tuple) ===
タプルは、異なるデータ型の要素をまとめて一つの単位として扱うデータ構造で、複数の値を関数から返すときなどに便利です。C++11以降で標準ライブラリに追加されました。
以下のコード例では、tupleのさまざまな機能を示しています。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <tuple>
auto main() -> int {
// タプルの作成
auto tuple1 =
std::tuple{42, 3.14, std::string{"hello"}}; // C++17から可能な構文
// タプルの要素へのアクセス
std::cout << "tuple1: " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルの要素の参照
int& a = std::get<0>(tuple1);
a = 100;
std::cout << "tuple1 (after modification): " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルのアンパック
auto [x, y, z] = tuple1;
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// タプルのサイズ
std::cout << "tuple1 size: " << std::tuple_size<decltype(tuple1)>::value
<< std::endl;
// タプルの連結
auto tuple2 = std::tuple_cat(std::tuple{1, 2.0}, std::tuple{'a', false});
std::cout << "tuple2: " << std::get<0>(tuple2) << ", "
<< std::get<1>(tuple2) << ", " << std::get<2>(tuple2) << ", "
<< std::get<3>(tuple2) << std::endl;
return 0;
}
</syntaxhighlight>
;出力:
:<syntaxhighlight lang=text>
tuple1: 42, 3.14, hello
tuple1 (after modification): 100, 3.14, hello
x: 100, y: 3.14, z: hello
tuple1 size: 3
tuple2: 1, 2, a, 0
</syntaxhighlight>
; 説明:
:# <code>std::tuple</code>を使ってタプルを作成できます。異なる型の値を要素として持つことができます。
:# <code>std::get<N>(tuple)</code>を使って、タプルの要素にアクセスできます。ここで、Nは0から始まるインデックスです。
:# タプルの要素は参照を取得して変更できます。
:# 構造化バインディングを使えば、タプルの要素を個別の変数にアンパックできます。
:# <code>std::tuple_size<T>::value</code>でタプルのサイズ(要素数)を取得できます。
:# <code>std::tuple_cat()</code>関数を使えば、2つのタプルを連結できます。
:# <code>std::make_tuple()</code>関数を使えば、値のリストからタプルを作成できます。
このように、C++のtupleは異なる型の値をまとめて扱えるため、関数から複数の値を返したり、複数の引数をまとめて渡したりするのに便利です。また、タプルのサイズは実行時に決定されるため、コンパイル時にはサイズを知る必要がありません。
{{Main|C++/標準ライブラリ/tuple}}
=== スマートポインタ (smart pointer) ===
{{Main|C++/ポインターと参照}}
スマートポインタは、動的メモリ管理を自動化するためのクラスであり、C++11以降に導入されました。これにより、メモリリークや未解放メモリの問題を防ぎ、メモリ管理をより安全かつ簡便に行えるようになります。代表的なスマートポインタには、<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code>があります。
=== std::unique_ptr ===
<code>std::unique_ptr</code> は、所有権が一意であることを保証するスマートポインタです。他のポインタに所有権を移すことができますが、コピーはできません。自動的にメモリを解放し、リソース管理が容易です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Value: " << *ptr << "\n";
// ptrのスコープを抜けると、自動的にメモリが解放される
return 0;
}
</syntaxhighlight>
=== std::shared_ptr ===
<code>std::shared_ptr</code> は、複数のポインタが同じオブジェクトの所有権を共有できるスマートポインタです。オブジェクトが最後の<code>shared_ptr</code>から解放されると、メモリが自動的に解放されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr1 = std::make_shared<int>(20);
{
auto sharedPtr2 = sharedPtr1; // 所有権を共有
std::cout << "Shared Value: " << *sharedPtr2 << "\n";
} // sharedPtr2のスコープを抜けるが、sharedPtr1はまだ生きている
std::cout << "Shared Value after block: " << *sharedPtr1 << "\n";
return 0;
}
</syntaxhighlight>
=== std::weak_ptr ===
<code>std::weak_ptr</code> は、<code>std::shared_ptr</code> によって所有されているオブジェクトへの弱い参照を提供します。これにより、循環参照を防ぎ、メモリリークを回避することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr = std::make_shared<int>(30);
std::weak_ptr<int> weakPtr = sharedPtr; // weak_ptrを作成
if (auto lockedPtr = weakPtr.lock()) { // 有効なshared_ptrを取得
std::cout << "Weak Value: " << *lockedPtr << "\n";
} else {
std::cout << "Weak pointer is expired.\n";
}
sharedPtr.reset(); // shared_ptrをリセットしてメモリを解放
if (weakPtr.expired()) {
std::cout << "Weak pointer is expired after reset.\n";
}
return 0;
}
</syntaxhighlight>
; まとめ
スマートポインタは、基本データ型を組み合わせてより複雑なデータ構造を作成するための強力なツールです。<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code> などのスマートポインタを適切に使用することで、メモリ管理が効率的で可読性の高いプログラムを作成できます。各データ型の特性と使用方法を理解し、状況に応じて適切な型を選択することが重要です。
== 変数の宣言 ==
C++プログラムにおいて、変数はデータを保存するための基本的な手段です。変数の宣言方法、名前の付け方、データ型の指定、および初期化方法について詳しく説明します。
=== 変数とは ===
変数とは、プログラムが実行されている間にデータを保存するための名前付きの記憶場所です。変数には特定のデータ型が割り当てられ、その型に応じた値を保持します。変数を使用することで、プログラムは動的にデータを操作したり、保存したりすることができます。
=== 変数名の規則 ===
C++では、変数名を付ける際にいくつかの規則があります。これらの規則を守ることで、プログラムが正しくコンパイルされ、予期しないエラーを防ぐことができます。
# '''文字と数字を使用:''' 変数名は英文字(大文字と小文字の区別あり)、数字、アンダースコア(_)を使用できます。ただし、最初の文字は数字であってはいけません。
#* 有効な例: <code>age</code>, <code>total_sum</code>, <code>_value</code>
#* 無効な例: <code>2ndValue</code>, <code>-height</code>
# '''キーワードの使用禁止:''' C++のキーワードは変数名として使用できません。
#* 無効な例: <code>int</code>, <code>return</code>, <code>class</code>
# '''大文字と小文字の区別:''' 変数名は大文字と小文字を区別します。例えば、<code>Value</code>と<code>value</code>は異なる変数とみなされます。
# '''読みやすさの確保:''' 変数名は、意味のある名前を付けることでコードの可読性を向上させることが推奨されます。
#* 良い例: <code>totalAmount</code>, <code>numberOfStudents</code>
#* 悪い例: <code>a</code>, <code>n</code>, <code>x1</code>
=== データ型の指定 ===
変数を宣言する際には、その変数が保持するデータの型を指定します。C++では、以下のような基本的なデータ型があります。
* '''整数型:''' <code>int</code>, <code>short</code>, <code>long</code>, <code>long long</code>
* '''符号なし整数型:''' <code>unsigned int</code>, <code>unsigned short</code>, <code>unsigned long</code>, <code>unsigned long long</code>
* '''浮動小数点数型:''' <code>float</code>, <code>double</code>, <code>long double</code>
* '''文字型:''' <code>char</code>
* '''ブール型:''' <code>bool</code>
;例:
:<syntaxhighlight lang=c++>
int age;
float height;
char initial;
bool isStudent;
</syntaxhighlight>
=== 変数の初期化 ===
変数を宣言する際には、その変数に初期値を割り当てることができます。初期化の方法は以下の通りです。
; コピー初期化
:<syntaxhighlight lang=c++>
int age = 30;
double pi = 3.14;
</syntaxhighlight>
; 直接初期化
:<syntaxhighlight lang=c++>
int age(30);
double pi(3.14);
</syntaxhighlight>
; 統一初期化
:<syntaxhighlight lang=c++>
int age{30};
double pi{3.14};
</syntaxhighlight>
統一初期化は、より安全な初期化方法とされています。これは、暗黙の型変換が行われないため、意図しない型変換によるエラーを防ぐことができます。
例:
:<syntaxhighlight lang=c++>
auto main() -> int {
int age = 25; // コピー初期化
double pi(3.14159); // 直接初期化
char initial{'D'}; // 統一初期化
bool isStudent = true;
// 変数の使用
std::cout << "Age: " << age << std::endl;
std::cout << "Pi: " << pi << std::endl;
std::cout << "Initial: " << initial << std::endl;
std::cout << "Is Student: " << std::boolalpha << isStudent << std::endl;
return 0;
}
</syntaxhighlight>
=== 束縛について ===
C++における「束縛」は、変数が特定の値を保持することを指します。変数が宣言された際、その変数は特定のデータを保持する「束縛」を持ちます。この束縛によって、変数はメモリ上の特定のアドレスに関連付けられ、そのアドレスに格納された値にアクセスすることができます。束縛は変数のライフサイクルに密接に関わっており、変数がスコープを抜けるとその束縛は解除され、関連付けられたメモリは解放されます。
このように、変数の宣言と初期化は、プログラムの基本構造を理解し、正確にデータを操作するための重要なスキルです。変数の正しい使用は、プログラムの可読性と保守性を向上させます。
== 型付け規則 ==
C++における型付け規則は、プログラム内で使用されるデータの型の扱いを定義します。型変換は、あるデータ型の値を別のデータ型に変換するプロセスであり、これには暗黙の型変換と明示的な型変換があります。また、キャストを使用して明示的な型変換を行う方法についても説明します。
=== 暗黙の型変換 ===
暗黙の型変換(または自動型変換)は、コンパイラが自動的にある型から別の型へ値を変換するプロセスです。これは、互換性のある型同士で行われ、特に基本データ型間で頻繁に発生します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
{ // 初期化と自動型変換
int a = 10;
double b = a; // aは自動的にdoubleに変換される
double x = 9.99;
int y = x; // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 直接初期化と自動型変換
int a(10);
double b(a); // aは自動的にdoubleに変換される
double x(9.99);
int y(x); // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 統一初期化と狭小化の警告
int a{ 10 };
// double b{ a };
//=> error: non-constant-expression cannot be narrowed from type 'int' to 'double' in initializer list [-Wc++11-narrowing]
double x{ 9.99 };
// int y{ x };
//=> error: type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
}
return 0;
}
</syntaxhighlight>
このコードは、C++における統一初期化と型の自動変換を示したものです。主に以下の3つの側面を扱っています。
; 初期化と自動型変換
: 最初のブロックでは、<code>int</code>型の変数<var>a</var>を10で初期化し、<code>double</code>型の変数<var>b</var>を<var>a</var>で初期化しています。この際、<var>a</var>の値は自動的に<code>double</code>型に変換されます。同様に、<code>double</code>型の変数<var>x</var>を9.99で初期化し、<code>int</code>型の変数<var>y</var>で<var>x</var>で初期化すると、<var>x</var>の値は<code>int</code>型に変換され、小数部分が切り捨てられます。
; 直接初期化と自動型変換
: 2番目のブロックでは、直接初期化の構文を使用しています。<code>int a(10);</code>は<code>int a = 10;</code>と同じ意味です。<code>double b(a);</code>の場合も、<var>a</var>の値は自動的に<code>double</code>型に変換されます。<code>double x(9.99);</code>と<code>int y(x);</code>の振る舞いは、最初のブロックと同様です。
; 統一初期化と狭小化の警告
: 3番目のブロックでは、統一初期化の構文<code>{}</code>を使用しています。<code>int a{10};</code>と<code>double x{9.99};</code>は問題ありません。しかし、<code>double b{a};</code>と<code>int y{x};</code>はコメントアウトされています。これらの行をコメントアウトしない場合、コンパイラは狭小化の警告を出力します。統一初期化では、明示的な型キャストがない限り、異なる型への変換は許可されません。つまり、<code>int</code>から<code>double</code>への変換も、<code>double</code>から<code>int</code>への変換も許可されず、エラーが発生します。
このコードは、C++における初期化の構文と、自動型変換や狭小化の扱いについて説明しています。統一初期化なら、より厳格な規則が適用されることに注意が必要です。
=== 明示的な型変換 ===
明示的な型変換は、プログラマが意図的にある型を別の型に変換することを指します。C++では、明示的な型変換をキャストと呼びます。キャストを使用することで、型変換の意図を明確にし、安全性と可読性を向上させることができます。
=== キャストの使い方 ===
C++には複数のキャスト方法があり、それぞれ異なる用途と安全性を持っています。適切なキャストを選択することは、プログラムの安全性と可読性を確保する上で非常に重要です。以下に、主なキャスト方法とその特徴を説明します。
==== Cスタイルキャスト(非推奨) ====
C++では、Cスタイルキャストを使用して明示的な型変換を行うことができますが、これは推奨されません。なぜなら、Cスタイルキャストは非常に強力であり、意図しない変換を引き起こす可能性があるためです。Cスタイルキャストは、以下のように括弧を使用します。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = (double)a; // Cスタイルキャスト
</syntaxhighlight>
==== static_cast ====
<code>static_cast</code>は、最も一般的に使用されるキャストで、基本データ型間の変換や互換性のあるクラス型間の変換に使用されます。<code>static_cast</code>は、コンパイル時に型チェックが行われるため、安全性が高くなります。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = static_cast<double>(a);
</syntaxhighlight>
==== dynamic_cast ====
<code>dynamic_cast</code>は、ポインタや参照を基底クラス型から派生クラス型へ安全に変換するために使用されます。これは、ランタイム型情報(RTTI)を使用して、変換が安全かどうかを確認します。<code>dynamic_cast</code>は、主に多態性を扱う際に使用されます。
:<syntaxhighlight lang=cpp>
class Base { virtual void func() {} };
class Derived : public Base { void func() override {} };
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 安全な変換
</syntaxhighlight>
==== const_cast ====
<code>const_cast</code>は、オブジェクトの定数性を除去するために使用されます。これは、定数メンバ関数内で非定数メンバにアクセスする必要がある場合などに使用されます。<code>const_cast</code>は、慎重に使用する必要があります。
:<syntaxhighlight lang=cpp>
const int a = 10;
int* b = const_cast<int*>(&a); // aの定数性を除去
*b = 20; // aの値を変更
</syntaxhighlight>
==== reinterpret_cast ====
<code>reinterpret_cast</code>は、ポインタ型やビットパターンを変更するために使用されます。これは、非常に低レベルな操作であり、慎重に使用する必要があります。<code>reinterpret_cast</code>は、型の互換性がない場合にも使用できますが、プログラムの動作が未定義になる可能性があります。
:<syntaxhighlight lang=cpp>
int a = 65;
char* b = reinterpret_cast<char*>(&a);
std::cout << *b; // 'A'が出力される(ASCIIコード65に対応)
</syntaxhighlight>
==== 束縛の概念 ====
C++における「束縛」は、変数やオブジェクトが特定の型または値に関連付けられることを指します。例えば、ある変数が特定のデータ型で宣言されると、その変数はその型に属する値のみを保持することができます。この束縛は、プログラムの型安全性を向上させるために重要であり、間違った型の値を変数に代入しようとするとコンパイルエラーが発生します。
束縛の概念は、型変換を行う際にも関連しています。たとえば、<code>static_cast</code>を使用することで、型の束縛を尊重しつつ安全な変換を行うことができます。このように、束縛はC++の型システムの中心的な要素であり、プログラムの正確性を維持するために不可欠です。
; まとめ
C++における型変換は、プログラムの柔軟性を高めるために不可欠です。暗黙の型変換は自動的に行われる一方で、明示的な型変換はプログラマが意図的に行うものであり、適切なキャストを使用して安全かつ明確に実施されます。正しいキャストの選択とその慎重な使用により、プログラムの安全性と可読性を向上させることができます。
キャストを使用する際は、常に目的と意図を明確にし、適切なキャストを選択することが重要です。特に、Cスタイルキャストは避けるべきで、代わりに<code>static_cast</code>や<code>dynamic_cast</code>を使用することをお勧めします。また、<code>const_cast</code>や<code>reinterpret_cast</code>は、より慎重に使用する必要があります。
== リテラル ==
リテラルとは、プログラム中に直接記述された値そのものを指します。C++では、さまざまな型のリテラルが用意されており、それぞれ異なる形式で表現されます。以下に、主要なリテラルについて説明します。
=== 整数リテラル ===
整数リテラルは、整数型の値を表すリテラルです。整数リテラルには、10進数、8進数、16進数、2進数の形式があります。
; 例:
; 10進数リテラル
:<syntaxhighlight lang=c++>
int decimal{42};
</syntaxhighlight>
; 8進数リテラル
: 先頭に<code>0</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int octal{052}; // 10進数の42と同じ
</syntaxhighlight>
; 16進数リテラル
: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int hex{0x2A}; // 10進数の42と同じ
</syntaxhighlight>
; 2進数リテラル
: 先頭に<code>0b</code>または<code>0B</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int binary{0b101010}; // 10進数の42と同じ
</syntaxhighlight>
整数リテラルには、データ型を指定するためのサフィックスもあります。
* <code>u</code>または<code>U</code>: unsigned
* <code>l</code>または<code>L</code>: long
* <code>ll</code>または<code>LL</code>: long long
; 例:
:<syntaxhighlight lang=c++>
unsigned int unsignedDecimal{42u};
long longDecimal{42L};
long long longLongDecimal{42LL};
</syntaxhighlight>
=== 浮動小数点リテラル ===
浮動小数点リテラルは、小数点を含む数値を表します。通常の10進形式のほかに、指数形式でも表現できます。
; 例:
# 通常の10進形式
#:<syntaxhighlight lang=c++>
double decimal = 3.14;
</syntaxhighlight>
# 指数形式
#: <code>e</code>または<code>E</code>を使用して指数部を表現します。
:<syntaxhighlight lang=c++>
double scientific = 3.14e2; // 3.14 × 10^2 = 314
</syntaxhighlight>
浮動小数点リテラルには、データ型を指定するためのサフィックスもあります。
* <code>f</code>または<code>F</code>: float
* <code>l</code>または<code>L</code>: long double
; 例:
:<syntaxhighlight lang=c++>
float floatLiteral = 3.14f;
long double longDoubleLiteral = 3.14L;
</syntaxhighlight>
=== 文字リテラル ===
文字リテラルは、単一の文字を表します。文字リテラルは、シングルクォート(<code>'</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
char charLiteral = 'A';
</syntaxhighlight>
文字リテラルには、エスケープシーケンスを使用して特殊文字を表現することもできます。
; 例:
:<syntaxhighlight lang=c++>
char newLine = '\n'; // 改行文字
char tab = '\t'; // タブ文字
char singleQuote = '\''; // シングルクォート
char backslash = '\\'; // バックスラッシュ
</syntaxhighlight>
=== 文字列リテラル ===
文字列リテラルは、複数の文字を連続して表現するリテラルです。文字列リテラルは、ダブルクォート(<code>"</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello, World!";
</syntaxhighlight>
文字列リテラル内でも、エスケープシーケンスを使用することができます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello,\nWorld!"; // 改行を含む文字列
</syntaxhighlight>
C++11以降では、生文字列リテラルを使用することができ、エスケープシーケンスや改行をそのまま表現することができます。生文字列リテラルは、<code>R"delimiter(文字列)delimiter"</code>の形式で記述します。
; 例:
:<syntaxhighlight lang=c++>
const char* rawStr = R"(Hello,\nWorld!)"; // エスケープシーケンスが無視される
</syntaxhighlight>
; まとめ
リテラルは、プログラム中で直接使用される具体的な値を表現するための基本的な要素です。整数リテラル、浮動小数点リテラル、文字リテラル、および文字列リテラルの各形式を理解することで、C++プログラムの可読性と正確性を向上させることができます。
^
== 定数の宣言 ==
C++では、プログラム内で値を変更しない変数を「定数」として宣言することができます。定数の宣言には主に<code>const</code>修飾子を使用します。定数を使用することで、コードの可読性が向上し、バグの発生を防ぐことができます。
=== const修飾子 ===
<code>const</code>修飾子を使用すると、その変数は初期化後に変更できなくなります。これは、意図しない変更を防ぐために役立ちます。
; 例:
:<syntaxhighlight lang=c++>
const int MAX_USERS{100};
const double PI{3.14159};
const char NEWLINE{'\n'};
</syntaxhighlight>
上記の例では、<code>MAX_USERS</code>、<code>PI</code>、<code>NEWLINE</code>という3つの定数が宣言されています。これらの値は、プログラムの実行中に変更することはできません。
=== 定数の使用例 ===
<code>const</code>定数はさまざまな場面で使用されます。以下に、いくつかの典型的な使用例を示します。
==== 配列のサイズを定数として宣言 ====
配列のサイズを定数として宣言すると、配列のサイズが変更される可能性を排除できます。
:<syntaxhighlight lang=c++>
const int ARRAY_SIZE{10};
int numbers[ARRAY_SIZE];
</syntaxhighlight>
==== 定数を使用した計算 ====
定数を使用することで、計算式が分かりやすくなり、間違いを減らすことができます。
:<syntaxhighlight lang=c++>
const double TAX_RATE{0.10};
double price{100.0};
double tax = {price * TAX_RATE};
double totalPrice{price + tax};
</syntaxhighlight>
==== 関数の引数に定数を使用 ====
関数の引数に<code>const</code>を使用することで、その引数が関数内で変更されないことを保証できます。
:<syntaxhighlight lang=c++>
void printArray(const int arr[], const size_t size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
</syntaxhighlight>
==== ポインタとconst ====
ポインタと<code>const</code>を組み合わせることで、指し示す値が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
const int value{42};
const int* ptr{&value}; // ptrを通じてvalueを変更することはできない
</syntaxhighlight>
さらに、ポインタ自体を<code>const</code>にすることもできます。
:<syntaxhighlight lang=c++>
int value1{42};
int value2{100};
int* const ptr{&value1}; // ptr自体は変更できないが、指し示す値は変更できる
*ptr = 50; // OK
ptr = &value2; // エラー
</syntaxhighlight>
==== 定数メンバ関数 ====
クラスのメンバ関数に<code>const</code>を指定することで、その関数内でメンバ変数が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
#include <iostream>
class MyClass {
private:
const int value;
public:
MyClass(int val) : value{val} {}
void display() const {
std::cout << "Value: " << value << std::endl;
}
// void f(int x) { value = x; }
//=> error: cannot assign to non-static data member 'value' with const-qualified type 'const int'
};
</syntaxhighlight>
=== constexpr修飾子 ===
<code>constexpr</code>修飾子は、コンパイル時に評価される定数式を定義するために使用されます。<code>constexpr</code>で宣言された変数や関数は、コンパイル時に値が確定し、実行時のオーバーヘッドが削減されます。
; 例:
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue(); // resultはコンパイル時に42と評価される
</syntaxhighlight>
<code>constexpr</code>を使用することで、コンパイル時に計算できる定数や関数を定義し、プログラムのパフォーマンスを向上させることができます。
=== consteval修飾子 ===
<code>consteval</code>修飾子は、関数が必ずコンパイル時に評価されることを保証します。<code>consteval</code>関数は実行時に呼び出すことができず、常にコンパイル時に評価される必要があります。
; 例:
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue(); // OK: コンパイル時に評価される
</syntaxhighlight>
<code>consteval</code>は、確実にコンパイル時に評価される定数を得たい場合に有用です。
; まとめ
; <code>const</code> : 変数の値が不変であることを示します。初期化後に変更不可。
:<syntaxhighlight lang=c++>
const int maxValue{100};
</syntaxhighlight>
; <code>constexpr</code> : コンパイル時に評価される定数式を定義します。コンパイル時に値が確定するため、実行時のパフォーマンスが向上します。
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue();
</syntaxhighlight>
; <code>consteval</code> : 必ずコンパイル時に評価される関数を定義します。
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue();
</syntaxhighlight>
これらのキーワードを適切に使い分けることで、C++プログラムの安全性、効率性、およびパフォーマンスを向上させることができます。
== スコープと有効範囲 ==
C++におけるスコープと有効範囲の理解は、プログラムが意図した通りに動作するために重要です。スコープは変数や関数が有効な範囲を指し、有効範囲はそのスコープ内でそれらがアクセス可能な範囲を意味します。
=== スコープの概念 ===
スコープ(scope)は、プログラム内で識別子(変数名、関数名など)が認識され、使用できる領域を指します。スコープは大きく分けて以下の4種類に分類されます:
; ブロックスコープ(Block Scope) :ブロック内(<code>{}</code>で囲まれた範囲)で有効。
; 関数スコープ(Function Scope) :関数内で有効。
; ファイルスコープ(File Scope) :ファイル内で有効。
; グローバルスコープ(Global Scope) :プログラム全体で有効。
=== ローカル変数とグローバル変数 ===
ローカル変数とグローバル変数は、スコープの観点から見て重要な役割を果たします。
==== ローカル変数 ====
ローカル変数は、その変数が宣言されたブロック内でのみ有効です。関数やループ内で宣言されることが多く、ブロックを抜けると自動的に破棄されます。
:<syntaxhighlight lang=c++>
void myFunction() {
int localVar = 10; // ローカル変数
// このブロック内でのみ有効
}
</syntaxhighlight>
==== グローバル変数 ====
グローバル変数は、ブロック外で宣言され、プログラム全体からアクセス可能です。通常、ファイルの先頭で宣言され、全ての関数やブロックから参照できます。
:<syntaxhighlight lang=c++>
int globalVar = 20; // グローバル変数
void myFunction() {
globalVar = 30; // グローバル変数を変更
}
</syntaxhighlight>
=== 名前空間 ===
{{Main|[[C++/名前空間}}
名前空間(namespace)は、識別子の衝突を避けるために使用されます。特に大規模なプロジェクトやライブラリでは、同じ名前の変数や関数が存在することがあります。名前空間を使用することで、これらの識別子をグループ化し、他のグループと区別することができます。
==== 名前空間の宣言と使用 ====
名前空間を宣言するには<code>namespace</code>キーワードを使用します。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int myVariable = 50;
void myFunction() {
// 名前空間内の関数
}
}
</syntaxhighlight>
名前空間内の要素にアクセスするには、名前空間の名前を指定します。
:<syntaxhighlight lang=c++>
auto main() -> int {
MyNamespace::myVariable = 60; // 名前空間を指定してアクセス
MyNamespace::myFunction(); // 名前空間を指定して関数を呼び出し
return 0;
}
</syntaxhighlight>
==== <code>using</code>キーワードの使用 ====
<code>using</code>キーワードを使うことで、名前空間を明示的に指定せずに、その名前空間内の要素を使用することができます。
:<syntaxhighlight lang=c++>
using namespace MyNamespace;
auto main() -> int {
myVariable = 60; // 名前空間を指定せずにアクセス
myFunction(); // 名前空間を指定せずに関数を呼び出し
return 0;
}
</syntaxhighlight>
ただし、大規模なプロジェクトでは、<code>using namespace</code>を多用することは避けた方が良いです。理由は、名前の衝突を招きやすくなるためです。
; まとめ
スコープと有効範囲は、プログラムの動作を理解し、バグを防ぐために重要な概念です。ローカル変数とグローバル変数の使い分けや、名前空間を使用して識別子の衝突を避けることが、C++プログラミングにおいて重要なスキルとなります。適切にこれらの概念を活用することで、より読みやすく、保守しやすいコードを書くことができます。
== 構造化バインディング (C++17以降) ==
=== 構造化バインディングとは ===
構造化バインディング(structured binding)は、C++17で導入された機能で、複数の変数を一度に初期化するための新しい方法です。これにより、タプルやペア、構造体のメンバ変数など、複数の値を簡潔に扱うことができます。従来の方法と比べて、コードの可読性や保守性が向上します。
構造化バインディングは、以下のようなデータ構造に対して使用できます:
* タプル (<code>std::tuple</code>)
* ペア (<code>std::pair</code>)
* 配列
* 構造体
=== 構造化バインディングの使用例 ===
以下に、構造化バインディングの具体的な使用例を示します。
==== タプルを使用する例 ====
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getValues() {
return std::make_tuple(42, 3.14, "Hello");
}
auto main() -> int {
auto [i, d, s] = getValues();
std::cout << "Integer: " << i << "\n";
std::cout << "Double: " << d << "\n";
std::cout << "String: " << s << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getValues</code>関数がタプルを返し、構造化バインディングを使ってタプルの各要素を変数<code>i</code>、<code>d</code>、<code>s</code>に分解しています。
==== ペアを使用する例 ====
:<syntaxhighlight lang=c++>
#include <utility>
#include <iostream>
std::pair<int, std::string> getPair() {
return std::make_pair(1, "example");
}
auto main() -> int {
auto [number, text] = getPair();
std::cout << "Number: " << number << "\n";
std::cout << "Text: " << text << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getPair</code>関数がペアを返し、構造化バインディングを使ってペアの各要素を変数<code>number</code>と<code>text</code>に分解しています。
==== 配列を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[3] = {1, 2, 3};
auto [a, b, c] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>を構造化バインディングを使って分解し、各要素を変数<code>a</code>、<code>b</code>、<code>c</code>に割り当てています。
==== 構造体を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p = {10, 20};
auto [x, y] = p;
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
この例では、構造体<code>Point</code>を構造化バインディングを使って分解し、メンバ変数<code>x</code>と<code>y</code>をそれぞれの変数に割り当てています。
; まとめ
構造化バインディングは、C++17で導入された非常に強力な機能です。これにより、タプル、ペア、配列、構造体などの複数の値を簡潔かつ直感的に扱うことが可能になります。コードの可読性や保守性が向上し、より効率的なプログラミングが実現できます。C++17以降のプロジェクトで、構造化バインディングを積極的に活用することをお勧めします。
== 応用例と演習問題 ==
=== 応用例 ===
ここでは、構造化バインディングを活用したいくつかの応用例を紹介します。
# ファイル入出力における構造化バインディング
#:<syntaxhighlight lang=c++>
#include <fstream>
#include <string>
#include <tuple>
#include <iostream>
std::tuple<bool, std::string> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
return std::make_tuple(false, "");
}
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
return std::make_tuple(true, content);
}
auto main() -> int {
auto [success, content] = readFile("example.txt");
if (success) {
std::cout << "File content:\n" << content << "\n";
} else {
std::cout << "Failed to read the file.\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、<code>readFile</code>関数がタプルを返し、構造化バインディングを使ってファイル読み込みの成功可否と内容を受け取ります。
# データベースクエリ結果の処理
#:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
#include <vector>
using Record = std::tuple<int, std::string, double>;
std::vector<Record> queryDatabase() {
return {
{1, "Alice", 95.5},
{2, "Bob", 85.0},
{3, "Charlie", 78.2}
};
}
auto main() -> int {
for (const auto& record : queryDatabase()) {
auto [id, name, score] = record;
std::cout << "ID: " << id << ", Name: " << name << ", Score: " << score << "\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、データベースから取得したレコードをタプルのベクタとして受け取り、構造化バインディングを使って各フィールドにアクセスしています。
=== 演習問題 ===
<!-- 問題と解凍に分解する仕組みを検討中 -->
以下の演習問題に取り組んで、構造化バインディングの理解を深めましょう。
; 問題 1:配列の要素の分解
: 次のコードを完成させて、配列の要素を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[4] = {10, 20, 30, 40};
// 構造化バインディングを使って配列の要素を分解し、それぞれの要素を変数に代入してください。
auto [a, b, c, d] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
std::cout << "d: " << d << "\n";
return 0;
}
</syntaxhighlight>
; 問題 2:構造体のメンバ変数の分解
: 次の構造体<code>Person</code>のインスタンスを構造化バインディングを使って分解し、各メンバ変数を出力するプログラムを書いてください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person person = {"John Doe", 30, 175.5};
// 構造化バインディングを使って構造体のメンバ変数を分解し、それぞれのメンバ変数を変数に代入してください。
auto [name, age, height] = person;
std::cout << "Name: " << name << "\n";
std::cout << "Age: " << age << "\n";
std::cout << "Height: " << height << "\n";
return 0;
}
</syntaxhighlight>
; 問題 3:関数の戻り値の分解
: 次のコードを完成させて、関数<code>getPoint</code>の戻り値を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
std::tuple<int, int> getPoint() {
return std::make_tuple(5, 10);
}
auto main() -> int {
// 構造化バインディングを使って関数の戻り値を分解し、それぞれの要素を変数に代入してください。
auto [x, y] = getPoint();
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
これらの演習問題を通じて、構造化バインディングの基本的な使い方をマスターしましょう。
{{Nav}}
[[Category:C++]]
al0cgq0c7hqgep3yu1jtttdg40r52c4
263058
263057
2024-11-05T01:40:05Z
Ef3
694
/* スコープと有効範囲 */ {{Main|C++/名前空間}}
263058
wikitext
text/x-wiki
{{Nav}}
== データ型の概念 ==
=== データ型とは ===
データ型(data type)とは、プログラミング言語においてデータを表現する方法を定義するものです。データ型は、データがどのようなフォーマットで格納され、どのような操作が可能かを決定します。例えば、整数型は整数値を表現するためのデータ型であり、浮動小数点数型は実数値を表現するためのデータ型です。
=== データ型の重要性 ===
データ型は、プログラミングにおいて非常に重要な概念です。適切なデータ型を選択することで、プログラムのメモリ使用量を最適化し、予期しない動作を防ぐことができます。また、データ型を適切に使用することで、コードの可読性と保守性が向上します。
データ型を適切に使用しないと、様々な問題が発生する可能性があります。たとえば、整数型に実数値を代入しようとすると、値が切り捨てられてしまいます。また、メモリ上の値を意図しない型で解釈すると、予期しないデータにアクセスしてしまう可能性があります。
=== C++におけるデータ型の分類 ===
C++には、さまざまなデータ型が用意されています。大まかに分類すると、以下のようになります。
# 基本データ型
#* 整数型 (int, short, long, longlong)
#* 浮動小数点数型 (float, double, longdouble)
#* 文字型 (char)
#* ブール型 (bool)
#* ビットフィールド型
# 複合データ型
#* 配列型
#* ポインタ型
#* ユーザー定義型 (構造体、共用体、列挙型、クラス)
# void型
#* 値を持たない型
# その他
#* 型修飾子 (signed, unsigned, const, volatile)
#* リテラル型
プログラマは、データの性質に応じて適切なデータ型を選択する必要があります。次の節から、各データ型の詳細について説明していきます。
== 基本データ型 ==
C++には、さまざまな基本データ型があり、それぞれに異なる用途と特性があります。以下では、基本データ型について詳しく説明します。
=== 整数型 ===
整数型には、符号あり整数型と符号なし整数型があります。整数型は、整数を扱うためのデータ型であり、メモリ使用量や数値範囲が異なる複数の種類が存在します。
==== 符号あり整数型 (int, short, long, long long) ====
符号あり整数型は、正の数値と負の数値の両方を表現できます。以下の型が存在します:
; <code>signed char</code> : 最小幅は8ビット
; <code>short int</code> : 最小幅は16ビット
; <code>int</code> : 最小幅は16ビット
; <code>long int</code> : 最小幅は32ビット
; <code>long long int</code> : 最小幅は64ビット
各型の幅は、少なくとも前の型と同じかそれ以上の記憶容量を持ちます。符号あり整数型の範囲は、-2^(N-1)から2^(N-1)-1までです。
==== 符号なし整数型 (unsigned int, unsigned short, unsigned long) ====
符号なし整数型は、正の数値のみを表現します。以下の型が存在します:
* <code>unsigned char</code>
* <code>unsigned short int</code>
* <code>unsigned int</code>
* <code>unsigned long int</code>
* <code>unsigned long long int</code>
符号なし整数型の範囲は、0から2^N-1までです。符号なし整数型は符号あり整数型と同じ幅を持ちますが、負の数値を表現しません。
=== 浮動小数点数型 ===
浮動小数点数型は、実数を表現するためのデータ型です。以下の型が存在します:
==== float型 ====
; <code>float</code> : 単精度浮動小数点数。通常32ビットで表現されます。
==== double型 ====
; <code>double</code> : 倍精度浮動小数点数。通常64ビットで表現されます。
=== 文字型 ===
文字型は、文字を表現するためのデータ型です。
==== char型 ====
; <code>char</code> : 一般的には1バイト(8ビット)で表現されます。<code>signed char</code>と<code>unsigned char</code>のどちらかとして実装されます。
=== ブール型 ===
ブール型は、真理値(真または偽)を表現するためのデータ型です。
==== bool型 ====
; <code>bool</code> : 真理値を表現するための型。<code>true</code>(真)または<code>false</code>(偽)の値を取ります。
=== データ型の範囲と精度 ===
各データ型の範囲と精度は、以下のようになります:
; 符号あり整数型 : 最小幅は8ビットから64ビット。範囲は-2^(N-1)から2^(N-1)-1。
; 符号なし整数型 : 最小幅は8ビットから64ビット。範囲は0から2^N-1。
; 浮動小数点数型 : <code>float</code>は単精度(32ビット)、<code>double</code>は倍精度(64ビット)。
=== ISO/IEC 60559準拠の拡張浮動小数点数型 ===
標準に加えて、C++はISO/IEC 60559(IEEE 754)準拠の拡張浮動小数点数型もサポートすることが推奨されています。以下の型が存在します:
* <code>std::float16_t</code>: 16ビット
* <code>std::float32_t</code>: 32ビット
* <code>std::float64_t</code>: 64ビット
* <code>std::float128_t</code>: 128ビット
これらの型は、それぞれのビット幅と精度に応じて、異なる数値範囲と精度を提供します。
C++の基本データ型は、効率的かつ正確にデータを扱うための重要な要素です。各データ型の特性と用途を理解することで、プログラムの効率性と信頼性を向上させることができます。
== 複合データ型 ==
複合データ型は、基本データ型を組み合わせて作成されるデータ型で、より複雑なデータ構造を表現するために使用されます。C++にはいくつかの複合データ型が存在し、それぞれ異なる用途と特性を持っています。以下では、主な複合データ型について解説します。
=== 配列 ===
{{Main|C++/配列とベクトル}}
配列は、同じデータ型の要素を連続的に格納するデータ構造です。配列は固定長であり、宣言時にその長さを指定する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int numbers[5] = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
return 0;
}
</syntaxhighlight>
=== 構造体 (struct) ===
{{Main|C++/構造体}}
構造体は、異なるデータ型の要素をまとめて一つの複合データ型として定義することができます。構造体を使用すると、関連するデータを一つの単位として扱うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person john = {"John Doe", 30, 175.5};
std::cout << "Name: " << john.name << "\n";
std::cout << "Age: " << john.age << "\n";
std::cout << "Height: " << john.height << "\n";
return 0;
}
</syntaxhighlight>
=== 共用体 (union) ===
{{Main|C++/共用体}}
共用体は、同じメモリ領域を複数のデータ型で共有するデータ構造です。共用体の各メンバは同じメモリを使用するため、同時に一つのメンバしか有効にできません。
:<syntaxhighlight lang=c++>
#include <iostream>
union Data {
int intValue;
float floatValue;
char charValue;
};
auto main() -> int {
Data data{ .intValue = 42 };
std::cout << "Int value: " << data.intValue << "\n";
data.floatValue = 3.14;
std::cout << "Float value: " << data.floatValue << "\n";
data.charValue = 'A';
std::cout << "Char value: " << data.charValue << "\n";
return 0;
}
</syntaxhighlight>
=== 列挙クラス (enum class) ===
{{Main|C++/列挙型と列挙クラス}}
列挙クラスは、名前付き定数の集合を定義するためのデータ型です。列挙クラスを使用すると、コードの可読性が向上し、特定の値のみを取る変数を簡単に定義できます。
またC言語風の古い列挙型は名前空間を持ちませんが、列挙クラスは <code>Color::GREEN</code> のように名前空間を持つので識別子の衝突が起こりません。
列挙クラス <code>switch</code> 文の組み合わせにおいてすべての <code>enum class</code> の値をカバーすることで、全称性が担保されます。このとき、<code>default</code> ケースを使わないようにすることで、すべての可能な値が明示的に処理されていることをコンパイラがチェックできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
enum class Color { RED, GREEN, BLUE };
auto main() -> int {
Color const favoriteColor = Color::GREEN;
switch (favoriteColor) {
case Color::RED:
std::cout << "赤がお好きなんですね!" << std::endl;
break;
case Color::GREEN:
std::cout << "緑がお好きなんですね!" << std::endl;
break;
case Color::BLUE:
std::cout << "青がお好きなんですね!" << std::endl;
break;
// default: は列挙型の全称性を担保することを確認するため書いてはならない
}
return 0;
}
</syntaxhighlight>
このコードでは、<code>default</code> ケを使用していません。これにより、すべての <code>Color</code> enum の値 (<code>RED</code>, <code>GREEN</code>, <code>BLUE</code>) が明示的にカバーされていることが保証されます。コンパイラがすべてのケースがカバーされていることをチェックし、もし将来 <code>Color</code> enum に新しい値が追加された場合、コンパイラが警告を出してくれるので、新しい値の処理を追加するのを忘れずに済みます。
=== タプル (tuple) ===
タプルは、異なるデータ型の要素をまとめて一つの単位として扱うデータ構造で、複数の値を関数から返すときなどに便利です。C++11以降で標準ライブラリに追加されました。
以下のコード例では、tupleのさまざまな機能を示しています。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <tuple>
auto main() -> int {
// タプルの作成
auto tuple1 =
std::tuple{42, 3.14, std::string{"hello"}}; // C++17から可能な構文
// タプルの要素へのアクセス
std::cout << "tuple1: " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルの要素の参照
int& a = std::get<0>(tuple1);
a = 100;
std::cout << "tuple1 (after modification): " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルのアンパック
auto [x, y, z] = tuple1;
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// タプルのサイズ
std::cout << "tuple1 size: " << std::tuple_size<decltype(tuple1)>::value
<< std::endl;
// タプルの連結
auto tuple2 = std::tuple_cat(std::tuple{1, 2.0}, std::tuple{'a', false});
std::cout << "tuple2: " << std::get<0>(tuple2) << ", "
<< std::get<1>(tuple2) << ", " << std::get<2>(tuple2) << ", "
<< std::get<3>(tuple2) << std::endl;
return 0;
}
</syntaxhighlight>
;出力:
:<syntaxhighlight lang=text>
tuple1: 42, 3.14, hello
tuple1 (after modification): 100, 3.14, hello
x: 100, y: 3.14, z: hello
tuple1 size: 3
tuple2: 1, 2, a, 0
</syntaxhighlight>
; 説明:
:# <code>std::tuple</code>を使ってタプルを作成できます。異なる型の値を要素として持つことができます。
:# <code>std::get<N>(tuple)</code>を使って、タプルの要素にアクセスできます。ここで、Nは0から始まるインデックスです。
:# タプルの要素は参照を取得して変更できます。
:# 構造化バインディングを使えば、タプルの要素を個別の変数にアンパックできます。
:# <code>std::tuple_size<T>::value</code>でタプルのサイズ(要素数)を取得できます。
:# <code>std::tuple_cat()</code>関数を使えば、2つのタプルを連結できます。
:# <code>std::make_tuple()</code>関数を使えば、値のリストからタプルを作成できます。
このように、C++のtupleは異なる型の値をまとめて扱えるため、関数から複数の値を返したり、複数の引数をまとめて渡したりするのに便利です。また、タプルのサイズは実行時に決定されるため、コンパイル時にはサイズを知る必要がありません。
{{Main|C++/標準ライブラリ/tuple}}
=== スマートポインタ (smart pointer) ===
{{Main|C++/ポインターと参照}}
スマートポインタは、動的メモリ管理を自動化するためのクラスであり、C++11以降に導入されました。これにより、メモリリークや未解放メモリの問題を防ぎ、メモリ管理をより安全かつ簡便に行えるようになります。代表的なスマートポインタには、<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code>があります。
=== std::unique_ptr ===
<code>std::unique_ptr</code> は、所有権が一意であることを保証するスマートポインタです。他のポインタに所有権を移すことができますが、コピーはできません。自動的にメモリを解放し、リソース管理が容易です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Value: " << *ptr << "\n";
// ptrのスコープを抜けると、自動的にメモリが解放される
return 0;
}
</syntaxhighlight>
=== std::shared_ptr ===
<code>std::shared_ptr</code> は、複数のポインタが同じオブジェクトの所有権を共有できるスマートポインタです。オブジェクトが最後の<code>shared_ptr</code>から解放されると、メモリが自動的に解放されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr1 = std::make_shared<int>(20);
{
auto sharedPtr2 = sharedPtr1; // 所有権を共有
std::cout << "Shared Value: " << *sharedPtr2 << "\n";
} // sharedPtr2のスコープを抜けるが、sharedPtr1はまだ生きている
std::cout << "Shared Value after block: " << *sharedPtr1 << "\n";
return 0;
}
</syntaxhighlight>
=== std::weak_ptr ===
<code>std::weak_ptr</code> は、<code>std::shared_ptr</code> によって所有されているオブジェクトへの弱い参照を提供します。これにより、循環参照を防ぎ、メモリリークを回避することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr = std::make_shared<int>(30);
std::weak_ptr<int> weakPtr = sharedPtr; // weak_ptrを作成
if (auto lockedPtr = weakPtr.lock()) { // 有効なshared_ptrを取得
std::cout << "Weak Value: " << *lockedPtr << "\n";
} else {
std::cout << "Weak pointer is expired.\n";
}
sharedPtr.reset(); // shared_ptrをリセットしてメモリを解放
if (weakPtr.expired()) {
std::cout << "Weak pointer is expired after reset.\n";
}
return 0;
}
</syntaxhighlight>
; まとめ
スマートポインタは、基本データ型を組み合わせてより複雑なデータ構造を作成するための強力なツールです。<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code> などのスマートポインタを適切に使用することで、メモリ管理が効率的で可読性の高いプログラムを作成できます。各データ型の特性と使用方法を理解し、状況に応じて適切な型を選択することが重要です。
== 変数の宣言 ==
C++プログラムにおいて、変数はデータを保存するための基本的な手段です。変数の宣言方法、名前の付け方、データ型の指定、および初期化方法について詳しく説明します。
=== 変数とは ===
変数とは、プログラムが実行されている間にデータを保存するための名前付きの記憶場所です。変数には特定のデータ型が割り当てられ、その型に応じた値を保持します。変数を使用することで、プログラムは動的にデータを操作したり、保存したりすることができます。
=== 変数名の規則 ===
C++では、変数名を付ける際にいくつかの規則があります。これらの規則を守ることで、プログラムが正しくコンパイルされ、予期しないエラーを防ぐことができます。
# '''文字と数字を使用:''' 変数名は英文字(大文字と小文字の区別あり)、数字、アンダースコア(_)を使用できます。ただし、最初の文字は数字であってはいけません。
#* 有効な例: <code>age</code>, <code>total_sum</code>, <code>_value</code>
#* 無効な例: <code>2ndValue</code>, <code>-height</code>
# '''キーワードの使用禁止:''' C++のキーワードは変数名として使用できません。
#* 無効な例: <code>int</code>, <code>return</code>, <code>class</code>
# '''大文字と小文字の区別:''' 変数名は大文字と小文字を区別します。例えば、<code>Value</code>と<code>value</code>は異なる変数とみなされます。
# '''読みやすさの確保:''' 変数名は、意味のある名前を付けることでコードの可読性を向上させることが推奨されます。
#* 良い例: <code>totalAmount</code>, <code>numberOfStudents</code>
#* 悪い例: <code>a</code>, <code>n</code>, <code>x1</code>
=== データ型の指定 ===
変数を宣言する際には、その変数が保持するデータの型を指定します。C++では、以下のような基本的なデータ型があります。
* '''整数型:''' <code>int</code>, <code>short</code>, <code>long</code>, <code>long long</code>
* '''符号なし整数型:''' <code>unsigned int</code>, <code>unsigned short</code>, <code>unsigned long</code>, <code>unsigned long long</code>
* '''浮動小数点数型:''' <code>float</code>, <code>double</code>, <code>long double</code>
* '''文字型:''' <code>char</code>
* '''ブール型:''' <code>bool</code>
;例:
:<syntaxhighlight lang=c++>
int age;
float height;
char initial;
bool isStudent;
</syntaxhighlight>
=== 変数の初期化 ===
変数を宣言する際には、その変数に初期値を割り当てることができます。初期化の方法は以下の通りです。
; コピー初期化
:<syntaxhighlight lang=c++>
int age = 30;
double pi = 3.14;
</syntaxhighlight>
; 直接初期化
:<syntaxhighlight lang=c++>
int age(30);
double pi(3.14);
</syntaxhighlight>
; 統一初期化
:<syntaxhighlight lang=c++>
int age{30};
double pi{3.14};
</syntaxhighlight>
統一初期化は、より安全な初期化方法とされています。これは、暗黙の型変換が行われないため、意図しない型変換によるエラーを防ぐことができます。
例:
:<syntaxhighlight lang=c++>
auto main() -> int {
int age = 25; // コピー初期化
double pi(3.14159); // 直接初期化
char initial{'D'}; // 統一初期化
bool isStudent = true;
// 変数の使用
std::cout << "Age: " << age << std::endl;
std::cout << "Pi: " << pi << std::endl;
std::cout << "Initial: " << initial << std::endl;
std::cout << "Is Student: " << std::boolalpha << isStudent << std::endl;
return 0;
}
</syntaxhighlight>
=== 束縛について ===
C++における「束縛」は、変数が特定の値を保持することを指します。変数が宣言された際、その変数は特定のデータを保持する「束縛」を持ちます。この束縛によって、変数はメモリ上の特定のアドレスに関連付けられ、そのアドレスに格納された値にアクセスすることができます。束縛は変数のライフサイクルに密接に関わっており、変数がスコープを抜けるとその束縛は解除され、関連付けられたメモリは解放されます。
このように、変数の宣言と初期化は、プログラムの基本構造を理解し、正確にデータを操作するための重要なスキルです。変数の正しい使用は、プログラムの可読性と保守性を向上させます。
== 型付け規則 ==
C++における型付け規則は、プログラム内で使用されるデータの型の扱いを定義します。型変換は、あるデータ型の値を別のデータ型に変換するプロセスであり、これには暗黙の型変換と明示的な型変換があります。また、キャストを使用して明示的な型変換を行う方法についても説明します。
=== 暗黙の型変換 ===
暗黙の型変換(または自動型変換)は、コンパイラが自動的にある型から別の型へ値を変換するプロセスです。これは、互換性のある型同士で行われ、特に基本データ型間で頻繁に発生します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
{ // 初期化と自動型変換
int a = 10;
double b = a; // aは自動的にdoubleに変換される
double x = 9.99;
int y = x; // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 直接初期化と自動型変換
int a(10);
double b(a); // aは自動的にdoubleに変換される
double x(9.99);
int y(x); // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 統一初期化と狭小化の警告
int a{ 10 };
// double b{ a };
//=> error: non-constant-expression cannot be narrowed from type 'int' to 'double' in initializer list [-Wc++11-narrowing]
double x{ 9.99 };
// int y{ x };
//=> error: type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
}
return 0;
}
</syntaxhighlight>
このコードは、C++における統一初期化と型の自動変換を示したものです。主に以下の3つの側面を扱っています。
; 初期化と自動型変換
: 最初のブロックでは、<code>int</code>型の変数<var>a</var>を10で初期化し、<code>double</code>型の変数<var>b</var>を<var>a</var>で初期化しています。この際、<var>a</var>の値は自動的に<code>double</code>型に変換されます。同様に、<code>double</code>型の変数<var>x</var>を9.99で初期化し、<code>int</code>型の変数<var>y</var>で<var>x</var>で初期化すると、<var>x</var>の値は<code>int</code>型に変換され、小数部分が切り捨てられます。
; 直接初期化と自動型変換
: 2番目のブロックでは、直接初期化の構文を使用しています。<code>int a(10);</code>は<code>int a = 10;</code>と同じ意味です。<code>double b(a);</code>の場合も、<var>a</var>の値は自動的に<code>double</code>型に変換されます。<code>double x(9.99);</code>と<code>int y(x);</code>の振る舞いは、最初のブロックと同様です。
; 統一初期化と狭小化の警告
: 3番目のブロックでは、統一初期化の構文<code>{}</code>を使用しています。<code>int a{10};</code>と<code>double x{9.99};</code>は問題ありません。しかし、<code>double b{a};</code>と<code>int y{x};</code>はコメントアウトされています。これらの行をコメントアウトしない場合、コンパイラは狭小化の警告を出力します。統一初期化では、明示的な型キャストがない限り、異なる型への変換は許可されません。つまり、<code>int</code>から<code>double</code>への変換も、<code>double</code>から<code>int</code>への変換も許可されず、エラーが発生します。
このコードは、C++における初期化の構文と、自動型変換や狭小化の扱いについて説明しています。統一初期化なら、より厳格な規則が適用されることに注意が必要です。
=== 明示的な型変換 ===
明示的な型変換は、プログラマが意図的にある型を別の型に変換することを指します。C++では、明示的な型変換をキャストと呼びます。キャストを使用することで、型変換の意図を明確にし、安全性と可読性を向上させることができます。
=== キャストの使い方 ===
C++には複数のキャスト方法があり、それぞれ異なる用途と安全性を持っています。適切なキャストを選択することは、プログラムの安全性と可読性を確保する上で非常に重要です。以下に、主なキャスト方法とその特徴を説明します。
==== Cスタイルキャスト(非推奨) ====
C++では、Cスタイルキャストを使用して明示的な型変換を行うことができますが、これは推奨されません。なぜなら、Cスタイルキャストは非常に強力であり、意図しない変換を引き起こす可能性があるためです。Cスタイルキャストは、以下のように括弧を使用します。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = (double)a; // Cスタイルキャスト
</syntaxhighlight>
==== static_cast ====
<code>static_cast</code>は、最も一般的に使用されるキャストで、基本データ型間の変換や互換性のあるクラス型間の変換に使用されます。<code>static_cast</code>は、コンパイル時に型チェックが行われるため、安全性が高くなります。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = static_cast<double>(a);
</syntaxhighlight>
==== dynamic_cast ====
<code>dynamic_cast</code>は、ポインタや参照を基底クラス型から派生クラス型へ安全に変換するために使用されます。これは、ランタイム型情報(RTTI)を使用して、変換が安全かどうかを確認します。<code>dynamic_cast</code>は、主に多態性を扱う際に使用されます。
:<syntaxhighlight lang=cpp>
class Base { virtual void func() {} };
class Derived : public Base { void func() override {} };
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 安全な変換
</syntaxhighlight>
==== const_cast ====
<code>const_cast</code>は、オブジェクトの定数性を除去するために使用されます。これは、定数メンバ関数内で非定数メンバにアクセスする必要がある場合などに使用されます。<code>const_cast</code>は、慎重に使用する必要があります。
:<syntaxhighlight lang=cpp>
const int a = 10;
int* b = const_cast<int*>(&a); // aの定数性を除去
*b = 20; // aの値を変更
</syntaxhighlight>
==== reinterpret_cast ====
<code>reinterpret_cast</code>は、ポインタ型やビットパターンを変更するために使用されます。これは、非常に低レベルな操作であり、慎重に使用する必要があります。<code>reinterpret_cast</code>は、型の互換性がない場合にも使用できますが、プログラムの動作が未定義になる可能性があります。
:<syntaxhighlight lang=cpp>
int a = 65;
char* b = reinterpret_cast<char*>(&a);
std::cout << *b; // 'A'が出力される(ASCIIコード65に対応)
</syntaxhighlight>
==== 束縛の概念 ====
C++における「束縛」は、変数やオブジェクトが特定の型または値に関連付けられることを指します。例えば、ある変数が特定のデータ型で宣言されると、その変数はその型に属する値のみを保持することができます。この束縛は、プログラムの型安全性を向上させるために重要であり、間違った型の値を変数に代入しようとするとコンパイルエラーが発生します。
束縛の概念は、型変換を行う際にも関連しています。たとえば、<code>static_cast</code>を使用することで、型の束縛を尊重しつつ安全な変換を行うことができます。このように、束縛はC++の型システムの中心的な要素であり、プログラムの正確性を維持するために不可欠です。
; まとめ
C++における型変換は、プログラムの柔軟性を高めるために不可欠です。暗黙の型変換は自動的に行われる一方で、明示的な型変換はプログラマが意図的に行うものであり、適切なキャストを使用して安全かつ明確に実施されます。正しいキャストの選択とその慎重な使用により、プログラムの安全性と可読性を向上させることができます。
キャストを使用する際は、常に目的と意図を明確にし、適切なキャストを選択することが重要です。特に、Cスタイルキャストは避けるべきで、代わりに<code>static_cast</code>や<code>dynamic_cast</code>を使用することをお勧めします。また、<code>const_cast</code>や<code>reinterpret_cast</code>は、より慎重に使用する必要があります。
== リテラル ==
リテラルとは、プログラム中に直接記述された値そのものを指します。C++では、さまざまな型のリテラルが用意されており、それぞれ異なる形式で表現されます。以下に、主要なリテラルについて説明します。
=== 整数リテラル ===
整数リテラルは、整数型の値を表すリテラルです。整数リテラルには、10進数、8進数、16進数、2進数の形式があります。
; 例:
; 10進数リテラル
:<syntaxhighlight lang=c++>
int decimal{42};
</syntaxhighlight>
; 8進数リテラル
: 先頭に<code>0</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int octal{052}; // 10進数の42と同じ
</syntaxhighlight>
; 16進数リテラル
: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int hex{0x2A}; // 10進数の42と同じ
</syntaxhighlight>
; 2進数リテラル
: 先頭に<code>0b</code>または<code>0B</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int binary{0b101010}; // 10進数の42と同じ
</syntaxhighlight>
整数リテラルには、データ型を指定するためのサフィックスもあります。
* <code>u</code>または<code>U</code>: unsigned
* <code>l</code>または<code>L</code>: long
* <code>ll</code>または<code>LL</code>: long long
; 例:
:<syntaxhighlight lang=c++>
unsigned int unsignedDecimal{42u};
long longDecimal{42L};
long long longLongDecimal{42LL};
</syntaxhighlight>
=== 浮動小数点リテラル ===
浮動小数点リテラルは、小数点を含む数値を表します。通常の10進形式のほかに、指数形式でも表現できます。
; 例:
# 通常の10進形式
#:<syntaxhighlight lang=c++>
double decimal = 3.14;
</syntaxhighlight>
# 指数形式
#: <code>e</code>または<code>E</code>を使用して指数部を表現します。
:<syntaxhighlight lang=c++>
double scientific = 3.14e2; // 3.14 × 10^2 = 314
</syntaxhighlight>
浮動小数点リテラルには、データ型を指定するためのサフィックスもあります。
* <code>f</code>または<code>F</code>: float
* <code>l</code>または<code>L</code>: long double
; 例:
:<syntaxhighlight lang=c++>
float floatLiteral = 3.14f;
long double longDoubleLiteral = 3.14L;
</syntaxhighlight>
=== 文字リテラル ===
文字リテラルは、単一の文字を表します。文字リテラルは、シングルクォート(<code>'</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
char charLiteral = 'A';
</syntaxhighlight>
文字リテラルには、エスケープシーケンスを使用して特殊文字を表現することもできます。
; 例:
:<syntaxhighlight lang=c++>
char newLine = '\n'; // 改行文字
char tab = '\t'; // タブ文字
char singleQuote = '\''; // シングルクォート
char backslash = '\\'; // バックスラッシュ
</syntaxhighlight>
=== 文字列リテラル ===
文字列リテラルは、複数の文字を連続して表現するリテラルです。文字列リテラルは、ダブルクォート(<code>"</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello, World!";
</syntaxhighlight>
文字列リテラル内でも、エスケープシーケンスを使用することができます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello,\nWorld!"; // 改行を含む文字列
</syntaxhighlight>
C++11以降では、生文字列リテラルを使用することができ、エスケープシーケンスや改行をそのまま表現することができます。生文字列リテラルは、<code>R"delimiter(文字列)delimiter"</code>の形式で記述します。
; 例:
:<syntaxhighlight lang=c++>
const char* rawStr = R"(Hello,\nWorld!)"; // エスケープシーケンスが無視される
</syntaxhighlight>
; まとめ
リテラルは、プログラム中で直接使用される具体的な値を表現するための基本的な要素です。整数リテラル、浮動小数点リテラル、文字リテラル、および文字列リテラルの各形式を理解することで、C++プログラムの可読性と正確性を向上させることができます。
^
== 定数の宣言 ==
C++では、プログラム内で値を変更しない変数を「定数」として宣言することができます。定数の宣言には主に<code>const</code>修飾子を使用します。定数を使用することで、コードの可読性が向上し、バグの発生を防ぐことができます。
=== const修飾子 ===
<code>const</code>修飾子を使用すると、その変数は初期化後に変更できなくなります。これは、意図しない変更を防ぐために役立ちます。
; 例:
:<syntaxhighlight lang=c++>
const int MAX_USERS{100};
const double PI{3.14159};
const char NEWLINE{'\n'};
</syntaxhighlight>
上記の例では、<code>MAX_USERS</code>、<code>PI</code>、<code>NEWLINE</code>という3つの定数が宣言されています。これらの値は、プログラムの実行中に変更することはできません。
=== 定数の使用例 ===
<code>const</code>定数はさまざまな場面で使用されます。以下に、いくつかの典型的な使用例を示します。
==== 配列のサイズを定数として宣言 ====
配列のサイズを定数として宣言すると、配列のサイズが変更される可能性を排除できます。
:<syntaxhighlight lang=c++>
const int ARRAY_SIZE{10};
int numbers[ARRAY_SIZE];
</syntaxhighlight>
==== 定数を使用した計算 ====
定数を使用することで、計算式が分かりやすくなり、間違いを減らすことができます。
:<syntaxhighlight lang=c++>
const double TAX_RATE{0.10};
double price{100.0};
double tax = {price * TAX_RATE};
double totalPrice{price + tax};
</syntaxhighlight>
==== 関数の引数に定数を使用 ====
関数の引数に<code>const</code>を使用することで、その引数が関数内で変更されないことを保証できます。
:<syntaxhighlight lang=c++>
void printArray(const int arr[], const size_t size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
</syntaxhighlight>
==== ポインタとconst ====
ポインタと<code>const</code>を組み合わせることで、指し示す値が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
const int value{42};
const int* ptr{&value}; // ptrを通じてvalueを変更することはできない
</syntaxhighlight>
さらに、ポインタ自体を<code>const</code>にすることもできます。
:<syntaxhighlight lang=c++>
int value1{42};
int value2{100};
int* const ptr{&value1}; // ptr自体は変更できないが、指し示す値は変更できる
*ptr = 50; // OK
ptr = &value2; // エラー
</syntaxhighlight>
==== 定数メンバ関数 ====
クラスのメンバ関数に<code>const</code>を指定することで、その関数内でメンバ変数が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
#include <iostream>
class MyClass {
private:
const int value;
public:
MyClass(int val) : value{val} {}
void display() const {
std::cout << "Value: " << value << std::endl;
}
// void f(int x) { value = x; }
//=> error: cannot assign to non-static data member 'value' with const-qualified type 'const int'
};
</syntaxhighlight>
=== constexpr修飾子 ===
<code>constexpr</code>修飾子は、コンパイル時に評価される定数式を定義するために使用されます。<code>constexpr</code>で宣言された変数や関数は、コンパイル時に値が確定し、実行時のオーバーヘッドが削減されます。
; 例:
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue(); // resultはコンパイル時に42と評価される
</syntaxhighlight>
<code>constexpr</code>を使用することで、コンパイル時に計算できる定数や関数を定義し、プログラムのパフォーマンスを向上させることができます。
=== consteval修飾子 ===
<code>consteval</code>修飾子は、関数が必ずコンパイル時に評価されることを保証します。<code>consteval</code>関数は実行時に呼び出すことができず、常にコンパイル時に評価される必要があります。
; 例:
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue(); // OK: コンパイル時に評価される
</syntaxhighlight>
<code>consteval</code>は、確実にコンパイル時に評価される定数を得たい場合に有用です。
; まとめ
; <code>const</code> : 変数の値が不変であることを示します。初期化後に変更不可。
:<syntaxhighlight lang=c++>
const int maxValue{100};
</syntaxhighlight>
; <code>constexpr</code> : コンパイル時に評価される定数式を定義します。コンパイル時に値が確定するため、実行時のパフォーマンスが向上します。
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue();
</syntaxhighlight>
; <code>consteval</code> : 必ずコンパイル時に評価される関数を定義します。
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue();
</syntaxhighlight>
これらのキーワードを適切に使い分けることで、C++プログラムの安全性、効率性、およびパフォーマンスを向上させることができます。
== スコープと有効範囲 ==
C++におけるスコープと有効範囲の理解は、プログラムが意図した通りに動作するために重要です。スコープは変数や関数が有効な範囲を指し、有効範囲はそのスコープ内でそれらがアクセス可能な範囲を意味します。
=== スコープの概念 ===
スコープ(scope)は、プログラム内で識別子(変数名、関数名など)が認識され、使用できる領域を指します。スコープは大きく分けて以下の4種類に分類されます:
; ブロックスコープ(Block Scope) :ブロック内(<code>{}</code>で囲まれた範囲)で有効。
; 関数スコープ(Function Scope) :関数内で有効。
; ファイルスコープ(File Scope) :ファイル内で有効。
; グローバルスコープ(Global Scope) :プログラム全体で有効。
=== ローカル変数とグローバル変数 ===
ローカル変数とグローバル変数は、スコープの観点から見て重要な役割を果たします。
==== ローカル変数 ====
ローカル変数は、その変数が宣言されたブロック内でのみ有効です。関数やループ内で宣言されることが多く、ブロックを抜けると自動的に破棄されます。
:<syntaxhighlight lang=c++>
void myFunction() {
int localVar = 10; // ローカル変数
// このブロック内でのみ有効
}
</syntaxhighlight>
==== グローバル変数 ====
グローバル変数は、ブロック外で宣言され、プログラム全体からアクセス可能です。通常、ファイルの先頭で宣言され、全ての関数やブロックから参照できます。
:<syntaxhighlight lang=c++>
int globalVar = 20; // グローバル変数
void myFunction() {
globalVar = 30; // グローバル変数を変更
}
</syntaxhighlight>
=== 名前空間 ===
{{Main|C++/名前空間}}
名前空間(namespace)は、識別子の衝突を避けるために使用されます。特に大規模なプロジェクトやライブラリでは、同じ名前の変数や関数が存在することがあります。名前空間を使用することで、これらの識別子をグループ化し、他のグループと区別することができます。
==== 名前空間の宣言と使用 ====
名前空間を宣言するには<code>namespace</code>キーワードを使用します。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int myVariable = 50;
void myFunction() {
// 名前空間内の関数
}
}
</syntaxhighlight>
名前空間内の要素にアクセスするには、名前空間の名前を指定します。
:<syntaxhighlight lang=c++>
auto main() -> int {
MyNamespace::myVariable = 60; // 名前空間を指定してアクセス
MyNamespace::myFunction(); // 名前空間を指定して関数を呼び出し
return 0;
}
</syntaxhighlight>
==== <code>using</code>キーワードの使用 ====
<code>using</code>キーワードを使うことで、名前空間を明示的に指定せずに、その名前空間内の要素を使用することができます。
:<syntaxhighlight lang=c++>
using namespace MyNamespace;
auto main() -> int {
myVariable = 60; // 名前空間を指定せずにアクセス
myFunction(); // 名前空間を指定せずに関数を呼び出し
return 0;
}
</syntaxhighlight>
ただし、大規模なプロジェクトでは、<code>using namespace</code>を多用することは避けた方が良いです。理由は、名前の衝突を招きやすくなるためです。
; まとめ
スコープと有効範囲は、プログラムの動作を理解し、バグを防ぐために重要な概念です。ローカル変数とグローバル変数の使い分けや、名前空間を使用して識別子の衝突を避けることが、C++プログラミングにおいて重要なスキルとなります。適切にこれらの概念を活用することで、より読みやすく、保守しやすいコードを書くことができます。
== 構造化バインディング (C++17以降) ==
=== 構造化バインディングとは ===
構造化バインディング(structured binding)は、C++17で導入された機能で、複数の変数を一度に初期化するための新しい方法です。これにより、タプルやペア、構造体のメンバ変数など、複数の値を簡潔に扱うことができます。従来の方法と比べて、コードの可読性や保守性が向上します。
構造化バインディングは、以下のようなデータ構造に対して使用できます:
* タプル (<code>std::tuple</code>)
* ペア (<code>std::pair</code>)
* 配列
* 構造体
=== 構造化バインディングの使用例 ===
以下に、構造化バインディングの具体的な使用例を示します。
==== タプルを使用する例 ====
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getValues() {
return std::make_tuple(42, 3.14, "Hello");
}
auto main() -> int {
auto [i, d, s] = getValues();
std::cout << "Integer: " << i << "\n";
std::cout << "Double: " << d << "\n";
std::cout << "String: " << s << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getValues</code>関数がタプルを返し、構造化バインディングを使ってタプルの各要素を変数<code>i</code>、<code>d</code>、<code>s</code>に分解しています。
==== ペアを使用する例 ====
:<syntaxhighlight lang=c++>
#include <utility>
#include <iostream>
std::pair<int, std::string> getPair() {
return std::make_pair(1, "example");
}
auto main() -> int {
auto [number, text] = getPair();
std::cout << "Number: " << number << "\n";
std::cout << "Text: " << text << "\n";
return 0;
}
</syntaxhighlight>
この例では、<code>getPair</code>関数がペアを返し、構造化バインディングを使ってペアの各要素を変数<code>number</code>と<code>text</code>に分解しています。
==== 配列を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[3] = {1, 2, 3};
auto [a, b, c] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>を構造化バインディングを使って分解し、各要素を変数<code>a</code>、<code>b</code>、<code>c</code>に割り当てています。
==== 構造体を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p = {10, 20};
auto [x, y] = p;
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
この例では、構造体<code>Point</code>を構造化バインディングを使って分解し、メンバ変数<code>x</code>と<code>y</code>をそれぞれの変数に割り当てています。
; まとめ
構造化バインディングは、C++17で導入された非常に強力な機能です。これにより、タプル、ペア、配列、構造体などの複数の値を簡潔かつ直感的に扱うことが可能になります。コードの可読性や保守性が向上し、より効率的なプログラミングが実現できます。C++17以降のプロジェクトで、構造化バインディングを積極的に活用することをお勧めします。
== 応用例と演習問題 ==
=== 応用例 ===
ここでは、構造化バインディングを活用したいくつかの応用例を紹介します。
# ファイル入出力における構造化バインディング
#:<syntaxhighlight lang=c++>
#include <fstream>
#include <string>
#include <tuple>
#include <iostream>
std::tuple<bool, std::string> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
return std::make_tuple(false, "");
}
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
return std::make_tuple(true, content);
}
auto main() -> int {
auto [success, content] = readFile("example.txt");
if (success) {
std::cout << "File content:\n" << content << "\n";
} else {
std::cout << "Failed to read the file.\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、<code>readFile</code>関数がタプルを返し、構造化バインディングを使ってファイル読み込みの成功可否と内容を受け取ります。
# データベースクエリ結果の処理
#:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
#include <vector>
using Record = std::tuple<int, std::string, double>;
std::vector<Record> queryDatabase() {
return {
{1, "Alice", 95.5},
{2, "Bob", 85.0},
{3, "Charlie", 78.2}
};
}
auto main() -> int {
for (const auto& record : queryDatabase()) {
auto [id, name, score] = record;
std::cout << "ID: " << id << ", Name: " << name << ", Score: " << score << "\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、データベースから取得したレコードをタプルのベクタとして受け取り、構造化バインディングを使って各フィールドにアクセスしています。
=== 演習問題 ===
<!-- 問題と解凍に分解する仕組みを検討中 -->
以下の演習問題に取り組んで、構造化バインディングの理解を深めましょう。
; 問題 1:配列の要素の分解
: 次のコードを完成させて、配列の要素を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[4] = {10, 20, 30, 40};
// 構造化バインディングを使って配列の要素を分解し、それぞれの要素を変数に代入してください。
auto [a, b, c, d] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
std::cout << "d: " << d << "\n";
return 0;
}
</syntaxhighlight>
; 問題 2:構造体のメンバ変数の分解
: 次の構造体<code>Person</code>のインスタンスを構造化バインディングを使って分解し、各メンバ変数を出力するプログラムを書いてください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person person = {"John Doe", 30, 175.5};
// 構造化バインディングを使って構造体のメンバ変数を分解し、それぞれのメンバ変数を変数に代入してください。
auto [name, age, height] = person;
std::cout << "Name: " << name << "\n";
std::cout << "Age: " << age << "\n";
std::cout << "Height: " << height << "\n";
return 0;
}
</syntaxhighlight>
; 問題 3:関数の戻り値の分解
: 次のコードを完成させて、関数<code>getPoint</code>の戻り値を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
std::tuple<int, int> getPoint() {
return std::make_tuple(5, 10);
}
auto main() -> int {
// 構造化バインディングを使って関数の戻り値を分解し、それぞれの要素を変数に代入してください。
auto [x, y] = getPoint();
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
これらの演習問題を通じて、構造化バインディングの基本的な使い方をマスターしましょう。
{{Nav}}
[[Category:C++]]
nppfzd99u2bkzxbcsp9qxfzulc4m12x
263059
263058
2024-11-05T01:46:22Z
Ef3
694
/* 構造化束縛宣言 (C++17以降) */ {{Main|C++/構造化束縛宣言}}
263059
wikitext
text/x-wiki
{{Nav}}
== データ型の概念 ==
=== データ型とは ===
データ型(data type)とは、プログラミング言語においてデータを表現する方法を定義するものです。データ型は、データがどのようなフォーマットで格納され、どのような操作が可能かを決定します。例えば、整数型は整数値を表現するためのデータ型であり、浮動小数点数型は実数値を表現するためのデータ型です。
=== データ型の重要性 ===
データ型は、プログラミングにおいて非常に重要な概念です。適切なデータ型を選択することで、プログラムのメモリ使用量を最適化し、予期しない動作を防ぐことができます。また、データ型を適切に使用することで、コードの可読性と保守性が向上します。
データ型を適切に使用しないと、様々な問題が発生する可能性があります。たとえば、整数型に実数値を代入しようとすると、値が切り捨てられてしまいます。また、メモリ上の値を意図しない型で解釈すると、予期しないデータにアクセスしてしまう可能性があります。
=== C++におけるデータ型の分類 ===
C++には、さまざまなデータ型が用意されています。大まかに分類すると、以下のようになります。
# 基本データ型
#* 整数型 (int, short, long, longlong)
#* 浮動小数点数型 (float, double, longdouble)
#* 文字型 (char)
#* ブール型 (bool)
#* ビットフィールド型
# 複合データ型
#* 配列型
#* ポインタ型
#* ユーザー定義型 (構造体、共用体、列挙型、クラス)
# void型
#* 値を持たない型
# その他
#* 型修飾子 (signed, unsigned, const, volatile)
#* リテラル型
プログラマは、データの性質に応じて適切なデータ型を選択する必要があります。次の節から、各データ型の詳細について説明していきます。
== 基本データ型 ==
C++には、さまざまな基本データ型があり、それぞれに異なる用途と特性があります。以下では、基本データ型について詳しく説明します。
=== 整数型 ===
整数型には、符号あり整数型と符号なし整数型があります。整数型は、整数を扱うためのデータ型であり、メモリ使用量や数値範囲が異なる複数の種類が存在します。
==== 符号あり整数型 (int, short, long, long long) ====
符号あり整数型は、正の数値と負の数値の両方を表現できます。以下の型が存在します:
; <code>signed char</code> : 最小幅は8ビット
; <code>short int</code> : 最小幅は16ビット
; <code>int</code> : 最小幅は16ビット
; <code>long int</code> : 最小幅は32ビット
; <code>long long int</code> : 最小幅は64ビット
各型の幅は、少なくとも前の型と同じかそれ以上の記憶容量を持ちます。符号あり整数型の範囲は、-2^(N-1)から2^(N-1)-1までです。
==== 符号なし整数型 (unsigned int, unsigned short, unsigned long) ====
符号なし整数型は、正の数値のみを表現します。以下の型が存在します:
* <code>unsigned char</code>
* <code>unsigned short int</code>
* <code>unsigned int</code>
* <code>unsigned long int</code>
* <code>unsigned long long int</code>
符号なし整数型の範囲は、0から2^N-1までです。符号なし整数型は符号あり整数型と同じ幅を持ちますが、負の数値を表現しません。
=== 浮動小数点数型 ===
浮動小数点数型は、実数を表現するためのデータ型です。以下の型が存在します:
==== float型 ====
; <code>float</code> : 単精度浮動小数点数。通常32ビットで表現されます。
==== double型 ====
; <code>double</code> : 倍精度浮動小数点数。通常64ビットで表現されます。
=== 文字型 ===
文字型は、文字を表現するためのデータ型です。
==== char型 ====
; <code>char</code> : 一般的には1バイト(8ビット)で表現されます。<code>signed char</code>と<code>unsigned char</code>のどちらかとして実装されます。
=== ブール型 ===
ブール型は、真理値(真または偽)を表現するためのデータ型です。
==== bool型 ====
; <code>bool</code> : 真理値を表現するための型。<code>true</code>(真)または<code>false</code>(偽)の値を取ります。
=== データ型の範囲と精度 ===
各データ型の範囲と精度は、以下のようになります:
; 符号あり整数型 : 最小幅は8ビットから64ビット。範囲は-2^(N-1)から2^(N-1)-1。
; 符号なし整数型 : 最小幅は8ビットから64ビット。範囲は0から2^N-1。
; 浮動小数点数型 : <code>float</code>は単精度(32ビット)、<code>double</code>は倍精度(64ビット)。
=== ISO/IEC 60559準拠の拡張浮動小数点数型 ===
標準に加えて、C++はISO/IEC 60559(IEEE 754)準拠の拡張浮動小数点数型もサポートすることが推奨されています。以下の型が存在します:
* <code>std::float16_t</code>: 16ビット
* <code>std::float32_t</code>: 32ビット
* <code>std::float64_t</code>: 64ビット
* <code>std::float128_t</code>: 128ビット
これらの型は、それぞれのビット幅と精度に応じて、異なる数値範囲と精度を提供します。
C++の基本データ型は、効率的かつ正確にデータを扱うための重要な要素です。各データ型の特性と用途を理解することで、プログラムの効率性と信頼性を向上させることができます。
== 複合データ型 ==
複合データ型は、基本データ型を組み合わせて作成されるデータ型で、より複雑なデータ構造を表現するために使用されます。C++にはいくつかの複合データ型が存在し、それぞれ異なる用途と特性を持っています。以下では、主な複合データ型について解説します。
=== 配列 ===
{{Main|C++/配列とベクトル}}
配列は、同じデータ型の要素を連続的に格納するデータ構造です。配列は固定長であり、宣言時にその長さを指定する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int numbers[5] = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
return 0;
}
</syntaxhighlight>
=== 構造体 (struct) ===
{{Main|C++/構造体}}
構造体は、異なるデータ型の要素をまとめて一つの複合データ型として定義することができます。構造体を使用すると、関連するデータを一つの単位として扱うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person john = {"John Doe", 30, 175.5};
std::cout << "Name: " << john.name << "\n";
std::cout << "Age: " << john.age << "\n";
std::cout << "Height: " << john.height << "\n";
return 0;
}
</syntaxhighlight>
=== 共用体 (union) ===
{{Main|C++/共用体}}
共用体は、同じメモリ領域を複数のデータ型で共有するデータ構造です。共用体の各メンバは同じメモリを使用するため、同時に一つのメンバしか有効にできません。
:<syntaxhighlight lang=c++>
#include <iostream>
union Data {
int intValue;
float floatValue;
char charValue;
};
auto main() -> int {
Data data{ .intValue = 42 };
std::cout << "Int value: " << data.intValue << "\n";
data.floatValue = 3.14;
std::cout << "Float value: " << data.floatValue << "\n";
data.charValue = 'A';
std::cout << "Char value: " << data.charValue << "\n";
return 0;
}
</syntaxhighlight>
=== 列挙クラス (enum class) ===
{{Main|C++/列挙型と列挙クラス}}
列挙クラスは、名前付き定数の集合を定義するためのデータ型です。列挙クラスを使用すると、コードの可読性が向上し、特定の値のみを取る変数を簡単に定義できます。
またC言語風の古い列挙型は名前空間を持ちませんが、列挙クラスは <code>Color::GREEN</code> のように名前空間を持つので識別子の衝突が起こりません。
列挙クラス <code>switch</code> 文の組み合わせにおいてすべての <code>enum class</code> の値をカバーすることで、全称性が担保されます。このとき、<code>default</code> ケースを使わないようにすることで、すべての可能な値が明示的に処理されていることをコンパイラがチェックできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
enum class Color { RED, GREEN, BLUE };
auto main() -> int {
Color const favoriteColor = Color::GREEN;
switch (favoriteColor) {
case Color::RED:
std::cout << "赤がお好きなんですね!" << std::endl;
break;
case Color::GREEN:
std::cout << "緑がお好きなんですね!" << std::endl;
break;
case Color::BLUE:
std::cout << "青がお好きなんですね!" << std::endl;
break;
// default: は列挙型の全称性を担保することを確認するため書いてはならない
}
return 0;
}
</syntaxhighlight>
このコードでは、<code>default</code> ケを使用していません。これにより、すべての <code>Color</code> enum の値 (<code>RED</code>, <code>GREEN</code>, <code>BLUE</code>) が明示的にカバーされていることが保証されます。コンパイラがすべてのケースがカバーされていることをチェックし、もし将来 <code>Color</code> enum に新しい値が追加された場合、コンパイラが警告を出してくれるので、新しい値の処理を追加するのを忘れずに済みます。
=== タプル (tuple) ===
タプルは、異なるデータ型の要素をまとめて一つの単位として扱うデータ構造で、複数の値を関数から返すときなどに便利です。C++11以降で標準ライブラリに追加されました。
以下のコード例では、tupleのさまざまな機能を示しています。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <tuple>
auto main() -> int {
// タプルの作成
auto tuple1 =
std::tuple{42, 3.14, std::string{"hello"}}; // C++17から可能な構文
// タプルの要素へのアクセス
std::cout << "tuple1: " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルの要素の参照
int& a = std::get<0>(tuple1);
a = 100;
std::cout << "tuple1 (after modification): " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルのアンパック
auto [x, y, z] = tuple1;
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// タプルのサイズ
std::cout << "tuple1 size: " << std::tuple_size<decltype(tuple1)>::value
<< std::endl;
// タプルの連結
auto tuple2 = std::tuple_cat(std::tuple{1, 2.0}, std::tuple{'a', false});
std::cout << "tuple2: " << std::get<0>(tuple2) << ", "
<< std::get<1>(tuple2) << ", " << std::get<2>(tuple2) << ", "
<< std::get<3>(tuple2) << std::endl;
return 0;
}
</syntaxhighlight>
;出力:
:<syntaxhighlight lang=text>
tuple1: 42, 3.14, hello
tuple1 (after modification): 100, 3.14, hello
x: 100, y: 3.14, z: hello
tuple1 size: 3
tuple2: 1, 2, a, 0
</syntaxhighlight>
; 説明:
:# <code>std::tuple</code>を使ってタプルを作成できます。異なる型の値を要素として持つことができます。
:# <code>std::get<N>(tuple)</code>を使って、タプルの要素にアクセスできます。ここで、Nは0から始まるインデックスです。
:# タプルの要素は参照を取得して変更できます。
:# 構造化バインディングを使えば、タプルの要素を個別の変数にアンパックできます。
:# <code>std::tuple_size<T>::value</code>でタプルのサイズ(要素数)を取得できます。
:# <code>std::tuple_cat()</code>関数を使えば、2つのタプルを連結できます。
:# <code>std::make_tuple()</code>関数を使えば、値のリストからタプルを作成できます。
このように、C++のtupleは異なる型の値をまとめて扱えるため、関数から複数の値を返したり、複数の引数をまとめて渡したりするのに便利です。また、タプルのサイズは実行時に決定されるため、コンパイル時にはサイズを知る必要がありません。
{{Main|C++/標準ライブラリ/tuple}}
=== スマートポインタ (smart pointer) ===
{{Main|C++/ポインターと参照}}
スマートポインタは、動的メモリ管理を自動化するためのクラスであり、C++11以降に導入されました。これにより、メモリリークや未解放メモリの問題を防ぎ、メモリ管理をより安全かつ簡便に行えるようになります。代表的なスマートポインタには、<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code>があります。
=== std::unique_ptr ===
<code>std::unique_ptr</code> は、所有権が一意であることを保証するスマートポインタです。他のポインタに所有権を移すことができますが、コピーはできません。自動的にメモリを解放し、リソース管理が容易です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Value: " << *ptr << "\n";
// ptrのスコープを抜けると、自動的にメモリが解放される
return 0;
}
</syntaxhighlight>
=== std::shared_ptr ===
<code>std::shared_ptr</code> は、複数のポインタが同じオブジェクトの所有権を共有できるスマートポインタです。オブジェクトが最後の<code>shared_ptr</code>から解放されると、メモリが自動的に解放されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr1 = std::make_shared<int>(20);
{
auto sharedPtr2 = sharedPtr1; // 所有権を共有
std::cout << "Shared Value: " << *sharedPtr2 << "\n";
} // sharedPtr2のスコープを抜けるが、sharedPtr1はまだ生きている
std::cout << "Shared Value after block: " << *sharedPtr1 << "\n";
return 0;
}
</syntaxhighlight>
=== std::weak_ptr ===
<code>std::weak_ptr</code> は、<code>std::shared_ptr</code> によって所有されているオブジェクトへの弱い参照を提供します。これにより、循環参照を防ぎ、メモリリークを回避することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr = std::make_shared<int>(30);
std::weak_ptr<int> weakPtr = sharedPtr; // weak_ptrを作成
if (auto lockedPtr = weakPtr.lock()) { // 有効なshared_ptrを取得
std::cout << "Weak Value: " << *lockedPtr << "\n";
} else {
std::cout << "Weak pointer is expired.\n";
}
sharedPtr.reset(); // shared_ptrをリセットしてメモリを解放
if (weakPtr.expired()) {
std::cout << "Weak pointer is expired after reset.\n";
}
return 0;
}
</syntaxhighlight>
; まとめ
スマートポインタは、基本データ型を組み合わせてより複雑なデータ構造を作成するための強力なツールです。<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code> などのスマートポインタを適切に使用することで、メモリ管理が効率的で可読性の高いプログラムを作成できます。各データ型の特性と使用方法を理解し、状況に応じて適切な型を選択することが重要です。
== 変数の宣言 ==
C++プログラムにおいて、変数はデータを保存するための基本的な手段です。変数の宣言方法、名前の付け方、データ型の指定、および初期化方法について詳しく説明します。
=== 変数とは ===
変数とは、プログラムが実行されている間にデータを保存するための名前付きの記憶場所です。変数には特定のデータ型が割り当てられ、その型に応じた値を保持します。変数を使用することで、プログラムは動的にデータを操作したり、保存したりすることができます。
=== 変数名の規則 ===
C++では、変数名を付ける際にいくつかの規則があります。これらの規則を守ることで、プログラムが正しくコンパイルされ、予期しないエラーを防ぐことができます。
# '''文字と数字を使用:''' 変数名は英文字(大文字と小文字の区別あり)、数字、アンダースコア(_)を使用できます。ただし、最初の文字は数字であってはいけません。
#* 有効な例: <code>age</code>, <code>total_sum</code>, <code>_value</code>
#* 無効な例: <code>2ndValue</code>, <code>-height</code>
# '''キーワードの使用禁止:''' C++のキーワードは変数名として使用できません。
#* 無効な例: <code>int</code>, <code>return</code>, <code>class</code>
# '''大文字と小文字の区別:''' 変数名は大文字と小文字を区別します。例えば、<code>Value</code>と<code>value</code>は異なる変数とみなされます。
# '''読みやすさの確保:''' 変数名は、意味のある名前を付けることでコードの可読性を向上させることが推奨されます。
#* 良い例: <code>totalAmount</code>, <code>numberOfStudents</code>
#* 悪い例: <code>a</code>, <code>n</code>, <code>x1</code>
=== データ型の指定 ===
変数を宣言する際には、その変数が保持するデータの型を指定します。C++では、以下のような基本的なデータ型があります。
* '''整数型:''' <code>int</code>, <code>short</code>, <code>long</code>, <code>long long</code>
* '''符号なし整数型:''' <code>unsigned int</code>, <code>unsigned short</code>, <code>unsigned long</code>, <code>unsigned long long</code>
* '''浮動小数点数型:''' <code>float</code>, <code>double</code>, <code>long double</code>
* '''文字型:''' <code>char</code>
* '''ブール型:''' <code>bool</code>
;例:
:<syntaxhighlight lang=c++>
int age;
float height;
char initial;
bool isStudent;
</syntaxhighlight>
=== 変数の初期化 ===
変数を宣言する際には、その変数に初期値を割り当てることができます。初期化の方法は以下の通りです。
; コピー初期化
:<syntaxhighlight lang=c++>
int age = 30;
double pi = 3.14;
</syntaxhighlight>
; 直接初期化
:<syntaxhighlight lang=c++>
int age(30);
double pi(3.14);
</syntaxhighlight>
; 統一初期化
:<syntaxhighlight lang=c++>
int age{30};
double pi{3.14};
</syntaxhighlight>
統一初期化は、より安全な初期化方法とされています。これは、暗黙の型変換が行われないため、意図しない型変換によるエラーを防ぐことができます。
例:
:<syntaxhighlight lang=c++>
auto main() -> int {
int age = 25; // コピー初期化
double pi(3.14159); // 直接初期化
char initial{'D'}; // 統一初期化
bool isStudent = true;
// 変数の使用
std::cout << "Age: " << age << std::endl;
std::cout << "Pi: " << pi << std::endl;
std::cout << "Initial: " << initial << std::endl;
std::cout << "Is Student: " << std::boolalpha << isStudent << std::endl;
return 0;
}
</syntaxhighlight>
=== 束縛について ===
C++における「束縛」は、変数が特定の値を保持することを指します。変数が宣言された際、その変数は特定のデータを保持する「束縛」を持ちます。この束縛によって、変数はメモリ上の特定のアドレスに関連付けられ、そのアドレスに格納された値にアクセスすることができます。束縛は変数のライフサイクルに密接に関わっており、変数がスコープを抜けるとその束縛は解除され、関連付けられたメモリは解放されます。
このように、変数の宣言と初期化は、プログラムの基本構造を理解し、正確にデータを操作するための重要なスキルです。変数の正しい使用は、プログラムの可読性と保守性を向上させます。
== 型付け規則 ==
C++における型付け規則は、プログラム内で使用されるデータの型の扱いを定義します。型変換は、あるデータ型の値を別のデータ型に変換するプロセスであり、これには暗黙の型変換と明示的な型変換があります。また、キャストを使用して明示的な型変換を行う方法についても説明します。
=== 暗黙の型変換 ===
暗黙の型変換(または自動型変換)は、コンパイラが自動的にある型から別の型へ値を変換するプロセスです。これは、互換性のある型同士で行われ、特に基本データ型間で頻繁に発生します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
{ // 初期化と自動型変換
int a = 10;
double b = a; // aは自動的にdoubleに変換される
double x = 9.99;
int y = x; // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 直接初期化と自動型変換
int a(10);
double b(a); // aは自動的にdoubleに変換される
double x(9.99);
int y(x); // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 統一初期化と狭小化の警告
int a{ 10 };
// double b{ a };
//=> error: non-constant-expression cannot be narrowed from type 'int' to 'double' in initializer list [-Wc++11-narrowing]
double x{ 9.99 };
// int y{ x };
//=> error: type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
}
return 0;
}
</syntaxhighlight>
このコードは、C++における統一初期化と型の自動変換を示したものです。主に以下の3つの側面を扱っています。
; 初期化と自動型変換
: 最初のブロックでは、<code>int</code>型の変数<var>a</var>を10で初期化し、<code>double</code>型の変数<var>b</var>を<var>a</var>で初期化しています。この際、<var>a</var>の値は自動的に<code>double</code>型に変換されます。同様に、<code>double</code>型の変数<var>x</var>を9.99で初期化し、<code>int</code>型の変数<var>y</var>で<var>x</var>で初期化すると、<var>x</var>の値は<code>int</code>型に変換され、小数部分が切り捨てられます。
; 直接初期化と自動型変換
: 2番目のブロックでは、直接初期化の構文を使用しています。<code>int a(10);</code>は<code>int a = 10;</code>と同じ意味です。<code>double b(a);</code>の場合も、<var>a</var>の値は自動的に<code>double</code>型に変換されます。<code>double x(9.99);</code>と<code>int y(x);</code>の振る舞いは、最初のブロックと同様です。
; 統一初期化と狭小化の警告
: 3番目のブロックでは、統一初期化の構文<code>{}</code>を使用しています。<code>int a{10};</code>と<code>double x{9.99};</code>は問題ありません。しかし、<code>double b{a};</code>と<code>int y{x};</code>はコメントアウトされています。これらの行をコメントアウトしない場合、コンパイラは狭小化の警告を出力します。統一初期化では、明示的な型キャストがない限り、異なる型への変換は許可されません。つまり、<code>int</code>から<code>double</code>への変換も、<code>double</code>から<code>int</code>への変換も許可されず、エラーが発生します。
このコードは、C++における初期化の構文と、自動型変換や狭小化の扱いについて説明しています。統一初期化なら、より厳格な規則が適用されることに注意が必要です。
=== 明示的な型変換 ===
明示的な型変換は、プログラマが意図的にある型を別の型に変換することを指します。C++では、明示的な型変換をキャストと呼びます。キャストを使用することで、型変換の意図を明確にし、安全性と可読性を向上させることができます。
=== キャストの使い方 ===
C++には複数のキャスト方法があり、それぞれ異なる用途と安全性を持っています。適切なキャストを選択することは、プログラムの安全性と可読性を確保する上で非常に重要です。以下に、主なキャスト方法とその特徴を説明します。
==== Cスタイルキャスト(非推奨) ====
C++では、Cスタイルキャストを使用して明示的な型変換を行うことができますが、これは推奨されません。なぜなら、Cスタイルキャストは非常に強力であり、意図しない変換を引き起こす可能性があるためです。Cスタイルキャストは、以下のように括弧を使用します。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = (double)a; // Cスタイルキャスト
</syntaxhighlight>
==== static_cast ====
<code>static_cast</code>は、最も一般的に使用されるキャストで、基本データ型間の変換や互換性のあるクラス型間の変換に使用されます。<code>static_cast</code>は、コンパイル時に型チェックが行われるため、安全性が高くなります。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = static_cast<double>(a);
</syntaxhighlight>
==== dynamic_cast ====
<code>dynamic_cast</code>は、ポインタや参照を基底クラス型から派生クラス型へ安全に変換するために使用されます。これは、ランタイム型情報(RTTI)を使用して、変換が安全かどうかを確認します。<code>dynamic_cast</code>は、主に多態性を扱う際に使用されます。
:<syntaxhighlight lang=cpp>
class Base { virtual void func() {} };
class Derived : public Base { void func() override {} };
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 安全な変換
</syntaxhighlight>
==== const_cast ====
<code>const_cast</code>は、オブジェクトの定数性を除去するために使用されます。これは、定数メンバ関数内で非定数メンバにアクセスする必要がある場合などに使用されます。<code>const_cast</code>は、慎重に使用する必要があります。
:<syntaxhighlight lang=cpp>
const int a = 10;
int* b = const_cast<int*>(&a); // aの定数性を除去
*b = 20; // aの値を変更
</syntaxhighlight>
==== reinterpret_cast ====
<code>reinterpret_cast</code>は、ポインタ型やビットパターンを変更するために使用されます。これは、非常に低レベルな操作であり、慎重に使用する必要があります。<code>reinterpret_cast</code>は、型の互換性がない場合にも使用できますが、プログラムの動作が未定義になる可能性があります。
:<syntaxhighlight lang=cpp>
int a = 65;
char* b = reinterpret_cast<char*>(&a);
std::cout << *b; // 'A'が出力される(ASCIIコード65に対応)
</syntaxhighlight>
==== 束縛の概念 ====
C++における「束縛」は、変数やオブジェクトが特定の型または値に関連付けられることを指します。例えば、ある変数が特定のデータ型で宣言されると、その変数はその型に属する値のみを保持することができます。この束縛は、プログラムの型安全性を向上させるために重要であり、間違った型の値を変数に代入しようとするとコンパイルエラーが発生します。
束縛の概念は、型変換を行う際にも関連しています。たとえば、<code>static_cast</code>を使用することで、型の束縛を尊重しつつ安全な変換を行うことができます。このように、束縛はC++の型システムの中心的な要素であり、プログラムの正確性を維持するために不可欠です。
; まとめ
C++における型変換は、プログラムの柔軟性を高めるために不可欠です。暗黙の型変換は自動的に行われる一方で、明示的な型変換はプログラマが意図的に行うものであり、適切なキャストを使用して安全かつ明確に実施されます。正しいキャストの選択とその慎重な使用により、プログラムの安全性と可読性を向上させることができます。
キャストを使用する際は、常に目的と意図を明確にし、適切なキャストを選択することが重要です。特に、Cスタイルキャストは避けるべきで、代わりに<code>static_cast</code>や<code>dynamic_cast</code>を使用することをお勧めします。また、<code>const_cast</code>や<code>reinterpret_cast</code>は、より慎重に使用する必要があります。
== リテラル ==
リテラルとは、プログラム中に直接記述された値そのものを指します。C++では、さまざまな型のリテラルが用意されており、それぞれ異なる形式で表現されます。以下に、主要なリテラルについて説明します。
=== 整数リテラル ===
整数リテラルは、整数型の値を表すリテラルです。整数リテラルには、10進数、8進数、16進数、2進数の形式があります。
; 例:
; 10進数リテラル
:<syntaxhighlight lang=c++>
int decimal{42};
</syntaxhighlight>
; 8進数リテラル
: 先頭に<code>0</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int octal{052}; // 10進数の42と同じ
</syntaxhighlight>
; 16進数リテラル
: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int hex{0x2A}; // 10進数の42と同じ
</syntaxhighlight>
; 2進数リテラル
: 先頭に<code>0b</code>または<code>0B</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int binary{0b101010}; // 10進数の42と同じ
</syntaxhighlight>
整数リテラルには、データ型を指定するためのサフィックスもあります。
* <code>u</code>または<code>U</code>: unsigned
* <code>l</code>または<code>L</code>: long
* <code>ll</code>または<code>LL</code>: long long
; 例:
:<syntaxhighlight lang=c++>
unsigned int unsignedDecimal{42u};
long longDecimal{42L};
long long longLongDecimal{42LL};
</syntaxhighlight>
=== 浮動小数点リテラル ===
浮動小数点リテラルは、小数点を含む数値を表します。通常の10進形式のほかに、指数形式でも表現できます。
; 例:
# 通常の10進形式
#:<syntaxhighlight lang=c++>
double decimal = 3.14;
</syntaxhighlight>
# 指数形式
#: <code>e</code>または<code>E</code>を使用して指数部を表現します。
:<syntaxhighlight lang=c++>
double scientific = 3.14e2; // 3.14 × 10^2 = 314
</syntaxhighlight>
浮動小数点リテラルには、データ型を指定するためのサフィックスもあります。
* <code>f</code>または<code>F</code>: float
* <code>l</code>または<code>L</code>: long double
; 例:
:<syntaxhighlight lang=c++>
float floatLiteral = 3.14f;
long double longDoubleLiteral = 3.14L;
</syntaxhighlight>
=== 文字リテラル ===
文字リテラルは、単一の文字を表します。文字リテラルは、シングルクォート(<code>'</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
char charLiteral = 'A';
</syntaxhighlight>
文字リテラルには、エスケープシーケンスを使用して特殊文字を表現することもできます。
; 例:
:<syntaxhighlight lang=c++>
char newLine = '\n'; // 改行文字
char tab = '\t'; // タブ文字
char singleQuote = '\''; // シングルクォート
char backslash = '\\'; // バックスラッシュ
</syntaxhighlight>
=== 文字列リテラル ===
文字列リテラルは、複数の文字を連続して表現するリテラルです。文字列リテラルは、ダブルクォート(<code>"</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello, World!";
</syntaxhighlight>
文字列リテラル内でも、エスケープシーケンスを使用することができます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello,\nWorld!"; // 改行を含む文字列
</syntaxhighlight>
C++11以降では、生文字列リテラルを使用することができ、エスケープシーケンスや改行をそのまま表現することができます。生文字列リテラルは、<code>R"delimiter(文字列)delimiter"</code>の形式で記述します。
; 例:
:<syntaxhighlight lang=c++>
const char* rawStr = R"(Hello,\nWorld!)"; // エスケープシーケンスが無視される
</syntaxhighlight>
; まとめ
リテラルは、プログラム中で直接使用される具体的な値を表現するための基本的な要素です。整数リテラル、浮動小数点リテラル、文字リテラル、および文字列リテラルの各形式を理解することで、C++プログラムの可読性と正確性を向上させることができます。
^
== 定数の宣言 ==
C++では、プログラム内で値を変更しない変数を「定数」として宣言することができます。定数の宣言には主に<code>const</code>修飾子を使用します。定数を使用することで、コードの可読性が向上し、バグの発生を防ぐことができます。
=== const修飾子 ===
<code>const</code>修飾子を使用すると、その変数は初期化後に変更できなくなります。これは、意図しない変更を防ぐために役立ちます。
; 例:
:<syntaxhighlight lang=c++>
const int MAX_USERS{100};
const double PI{3.14159};
const char NEWLINE{'\n'};
</syntaxhighlight>
上記の例では、<code>MAX_USERS</code>、<code>PI</code>、<code>NEWLINE</code>という3つの定数が宣言されています。これらの値は、プログラムの実行中に変更することはできません。
=== 定数の使用例 ===
<code>const</code>定数はさまざまな場面で使用されます。以下に、いくつかの典型的な使用例を示します。
==== 配列のサイズを定数として宣言 ====
配列のサイズを定数として宣言すると、配列のサイズが変更される可能性を排除できます。
:<syntaxhighlight lang=c++>
const int ARRAY_SIZE{10};
int numbers[ARRAY_SIZE];
</syntaxhighlight>
==== 定数を使用した計算 ====
定数を使用することで、計算式が分かりやすくなり、間違いを減らすことができます。
:<syntaxhighlight lang=c++>
const double TAX_RATE{0.10};
double price{100.0};
double tax = {price * TAX_RATE};
double totalPrice{price + tax};
</syntaxhighlight>
==== 関数の引数に定数を使用 ====
関数の引数に<code>const</code>を使用することで、その引数が関数内で変更されないことを保証できます。
:<syntaxhighlight lang=c++>
void printArray(const int arr[], const size_t size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
</syntaxhighlight>
==== ポインタとconst ====
ポインタと<code>const</code>を組み合わせることで、指し示す値が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
const int value{42};
const int* ptr{&value}; // ptrを通じてvalueを変更することはできない
</syntaxhighlight>
さらに、ポインタ自体を<code>const</code>にすることもできます。
:<syntaxhighlight lang=c++>
int value1{42};
int value2{100};
int* const ptr{&value1}; // ptr自体は変更できないが、指し示す値は変更できる
*ptr = 50; // OK
ptr = &value2; // エラー
</syntaxhighlight>
==== 定数メンバ関数 ====
クラスのメンバ関数に<code>const</code>を指定することで、その関数内でメンバ変数が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
#include <iostream>
class MyClass {
private:
const int value;
public:
MyClass(int val) : value{val} {}
void display() const {
std::cout << "Value: " << value << std::endl;
}
// void f(int x) { value = x; }
//=> error: cannot assign to non-static data member 'value' with const-qualified type 'const int'
};
</syntaxhighlight>
=== constexpr修飾子 ===
<code>constexpr</code>修飾子は、コンパイル時に評価される定数式を定義するために使用されます。<code>constexpr</code>で宣言された変数や関数は、コンパイル時に値が確定し、実行時のオーバーヘッドが削減されます。
; 例:
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue(); // resultはコンパイル時に42と評価される
</syntaxhighlight>
<code>constexpr</code>を使用することで、コンパイル時に計算できる定数や関数を定義し、プログラムのパフォーマンスを向上させることができます。
=== consteval修飾子 ===
<code>consteval</code>修飾子は、関数が必ずコンパイル時に評価されることを保証します。<code>consteval</code>関数は実行時に呼び出すことができず、常にコンパイル時に評価される必要があります。
; 例:
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue(); // OK: コンパイル時に評価される
</syntaxhighlight>
<code>consteval</code>は、確実にコンパイル時に評価される定数を得たい場合に有用です。
; まとめ
; <code>const</code> : 変数の値が不変であることを示します。初期化後に変更不可。
:<syntaxhighlight lang=c++>
const int maxValue{100};
</syntaxhighlight>
; <code>constexpr</code> : コンパイル時に評価される定数式を定義します。コンパイル時に値が確定するため、実行時のパフォーマンスが向上します。
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue();
</syntaxhighlight>
; <code>consteval</code> : 必ずコンパイル時に評価される関数を定義します。
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue();
</syntaxhighlight>
これらのキーワードを適切に使い分けることで、C++プログラムの安全性、効率性、およびパフォーマンスを向上させることができます。
== スコープと有効範囲 ==
C++におけるスコープと有効範囲の理解は、プログラムが意図した通りに動作するために重要です。スコープは変数や関数が有効な範囲を指し、有効範囲はそのスコープ内でそれらがアクセス可能な範囲を意味します。
=== スコープの概念 ===
スコープ(scope)は、プログラム内で識別子(変数名、関数名など)が認識され、使用できる領域を指します。スコープは大きく分けて以下の4種類に分類されます:
; ブロックスコープ(Block Scope) :ブロック内(<code>{}</code>で囲まれた範囲)で有効。
; 関数スコープ(Function Scope) :関数内で有効。
; ファイルスコープ(File Scope) :ファイル内で有効。
; グローバルスコープ(Global Scope) :プログラム全体で有効。
=== ローカル変数とグローバル変数 ===
ローカル変数とグローバル変数は、スコープの観点から見て重要な役割を果たします。
==== ローカル変数 ====
ローカル変数は、その変数が宣言されたブロック内でのみ有効です。関数やループ内で宣言されることが多く、ブロックを抜けると自動的に破棄されます。
:<syntaxhighlight lang=c++>
void myFunction() {
int localVar = 10; // ローカル変数
// このブロック内でのみ有効
}
</syntaxhighlight>
==== グローバル変数 ====
グローバル変数は、ブロック外で宣言され、プログラム全体からアクセス可能です。通常、ファイルの先頭で宣言され、全ての関数やブロックから参照できます。
:<syntaxhighlight lang=c++>
int globalVar = 20; // グローバル変数
void myFunction() {
globalVar = 30; // グローバル変数を変更
}
</syntaxhighlight>
=== 名前空間 ===
{{Main|C++/名前空間}}
名前空間(namespace)は、識別子の衝突を避けるために使用されます。特に大規模なプロジェクトやライブラリでは、同じ名前の変数や関数が存在することがあります。名前空間を使用することで、これらの識別子をグループ化し、他のグループと区別することができます。
==== 名前空間の宣言と使用 ====
名前空間を宣言するには<code>namespace</code>キーワードを使用します。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int myVariable = 50;
void myFunction() {
// 名前空間内の関数
}
}
</syntaxhighlight>
名前空間内の要素にアクセスするには、名前空間の名前を指定します。
:<syntaxhighlight lang=c++>
auto main() -> int {
MyNamespace::myVariable = 60; // 名前空間を指定してアクセス
MyNamespace::myFunction(); // 名前空間を指定して関数を呼び出し
return 0;
}
</syntaxhighlight>
==== <code>using</code>キーワードの使用 ====
<code>using</code>キーワードを使うことで、名前空間を明示的に指定せずに、その名前空間内の要素を使用することができます。
:<syntaxhighlight lang=c++>
using namespace MyNamespace;
auto main() -> int {
myVariable = 60; // 名前空間を指定せずにアクセス
myFunction(); // 名前空間を指定せずに関数を呼び出し
return 0;
}
</syntaxhighlight>
ただし、大規模なプロジェクトでは、<code>using namespace</code>を多用することは避けた方が良いです。理由は、名前の衝突を招きやすくなるためです。
; まとめ
スコープと有効範囲は、プログラムの動作を理解し、バグを防ぐために重要な概念です。ローカル変数とグローバル変数の使い分けや、名前空間を使用して識別子の衝突を避けることが、C++プログラミングにおいて重要なスキルとなります。適切にこれらの概念を活用することで、より読みやすく、保守しやすいコードを書くことができます。
== 構造化束縛宣言 (C++17以降) ==
{{Main|C++/構造化束縛宣言}}
=== 構造化束縛宣言とは ===
構造化束縛宣言(''Structured Binding Declaration'')は、C++17で導入された機能で、複数の変数を一度に初期化するための新しい方法です。これにより、タプルやペア、構造体のメンバ変数など、複数の値を簡潔に扱うことができます。従来の方法と比べて、コードの可読性や保守性が向上します。
構造化束縛宣言は、以下のようなデータ構造に対して使用できます:
* タプル (<code>std::tuple</code>)
* ペア (<code>std::pair</code>)
* 配列
* 構造体
=== 構造化束縛宣言の使用例 ===
以下に、構造化束縛宣言の具体的な使用例を示します。
==== タプルを使用する例 ====
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getValues() {
return std::make_tuple(42, 3.14, "Hello");
}
auto main() -> int {
auto [i, d, s] = getValues();
std::cout << "Integer: " << i << std::endl;
std::cout << "Double: " << d << std::endl;
std::cout << "String: " << s << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>getValues</code>関数がタプルを返し、構造化束縛宣言を使ってタプルの各要素を変数<code>i</code>、<code>d</code>、<code>s</code>に分解しています。
==== ペアを使用する例 ====
:<syntaxhighlight lang=c++>
#include <utility>
#include <iostream>
std::pair<int, std::string> getPair() {
return std::make_pair(1, "example");
}
auto main() -> int {
auto [number, text] = getPair();
std::cout << "Number: " << number << std::endl;
std::cout << "Text: " << text << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>getPair</code>関数がペアを返し、構造化束縛宣言を使ってペアの各要素を変数<code>number</code>と<code>text</code>に分解しています。
==== 配列を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[3] = {1, 2, 3};
auto [a, b, c] = arr;
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
std::cout << "c: " << c << std::endl;
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>を構造化束縛宣言を使って分解し、各要素を変数<code>a</code>、<code>b</code>、<code>c</code>に割り当てています。
==== 構造体を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p = {10, 20};
auto [x, y] = p;
std::cout << "x: " << x << std::endl;
std::cout << "y: " << y << std::endl;
return 0;
}
</syntaxhighlight>
この例では、構造体<code>Point</code>を構造化束縛宣言を使って分解し、メンバ変数<code>x</code>と<code>y</code>をそれぞれの変数に割り当てています。
; まとめ
構造化束縛宣言は、C++17で導入された非常に強力な機能です。これにより、タプル、ペア、配列、構造体などの複数の値を簡潔かつ直感的に扱うことが可能になります。従来の方法では、例えばタプルの要素を個別に変数に代入する際に、<code>std::get<0>(tuple)</code> のように記述する必要がありましたが、構造化束縛を使うことでコードがすっきりし、可読性が大幅に向上します。
この機能は特に、大規模なプロジェクトやライブラリでのデータ構造の操作において、コードの保守性を高めるのに役立ちます。C++17以降のプロジェクトでは、構造化束縛宣言を積極的に活用することをお勧めします。これにより、コードの可読性を保ちつつ、開発効率を向上させることができます。
== 応用例と演習問題 ==
=== 応用例 ===
ここでは、構造化バインディングを活用したいくつかの応用例を紹介します。
# ファイル入出力における構造化バインディング
#:<syntaxhighlight lang=c++>
#include <fstream>
#include <string>
#include <tuple>
#include <iostream>
std::tuple<bool, std::string> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
return std::make_tuple(false, "");
}
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
return std::make_tuple(true, content);
}
auto main() -> int {
auto [success, content] = readFile("example.txt");
if (success) {
std::cout << "File content:\n" << content << "\n";
} else {
std::cout << "Failed to read the file.\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、<code>readFile</code>関数がタプルを返し、構造化バインディングを使ってファイル読み込みの成功可否と内容を受け取ります。
# データベースクエリ結果の処理
#:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
#include <vector>
using Record = std::tuple<int, std::string, double>;
std::vector<Record> queryDatabase() {
return {
{1, "Alice", 95.5},
{2, "Bob", 85.0},
{3, "Charlie", 78.2}
};
}
auto main() -> int {
for (const auto& record : queryDatabase()) {
auto [id, name, score] = record;
std::cout << "ID: " << id << ", Name: " << name << ", Score: " << score << "\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、データベースから取得したレコードをタプルのベクタとして受け取り、構造化バインディングを使って各フィールドにアクセスしています。
=== 演習問題 ===
<!-- 問題と解凍に分解する仕組みを検討中 -->
以下の演習問題に取り組んで、構造化バインディングの理解を深めましょう。
; 問題 1:配列の要素の分解
: 次のコードを完成させて、配列の要素を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[4] = {10, 20, 30, 40};
// 構造化バインディングを使って配列の要素を分解し、それぞれの要素を変数に代入してください。
auto [a, b, c, d] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
std::cout << "d: " << d << "\n";
return 0;
}
</syntaxhighlight>
; 問題 2:構造体のメンバ変数の分解
: 次の構造体<code>Person</code>のインスタンスを構造化バインディングを使って分解し、各メンバ変数を出力するプログラムを書いてください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person person = {"John Doe", 30, 175.5};
// 構造化バインディングを使って構造体のメンバ変数を分解し、それぞれのメンバ変数を変数に代入してください。
auto [name, age, height] = person;
std::cout << "Name: " << name << "\n";
std::cout << "Age: " << age << "\n";
std::cout << "Height: " << height << "\n";
return 0;
}
</syntaxhighlight>
; 問題 3:関数の戻り値の分解
: 次のコードを完成させて、関数<code>getPoint</code>の戻り値を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
std::tuple<int, int> getPoint() {
return std::make_tuple(5, 10);
}
auto main() -> int {
// 構造化バインディングを使って関数の戻り値を分解し、それぞれの要素を変数に代入してください。
auto [x, y] = getPoint();
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
これらの演習問題を通じて、構造化バインディングの基本的な使い方をマスターしましょう。
{{Nav}}
[[Category:C++]]
g2ut7q1hlhq7cvtbrbepd3s6z6c1b24
263118
263059
2024-11-05T05:26:11Z
Ef3
694
/* リテラル */ 校閲と推敲
263118
wikitext
text/x-wiki
{{Nav}}
== データ型の概念 ==
=== データ型とは ===
データ型(data type)とは、プログラミング言語においてデータを表現する方法を定義するものです。データ型は、データがどのようなフォーマットで格納され、どのような操作が可能かを決定します。例えば、整数型は整数値を表現するためのデータ型であり、浮動小数点数型は実数値を表現するためのデータ型です。
=== データ型の重要性 ===
データ型は、プログラミングにおいて非常に重要な概念です。適切なデータ型を選択することで、プログラムのメモリ使用量を最適化し、予期しない動作を防ぐことができます。また、データ型を適切に使用することで、コードの可読性と保守性が向上します。
データ型を適切に使用しないと、様々な問題が発生する可能性があります。たとえば、整数型に実数値を代入しようとすると、値が切り捨てられてしまいます。また、メモリ上の値を意図しない型で解釈すると、予期しないデータにアクセスしてしまう可能性があります。
=== C++におけるデータ型の分類 ===
C++には、さまざまなデータ型が用意されています。大まかに分類すると、以下のようになります。
# 基本データ型
#* 整数型 (int, short, long, longlong)
#* 浮動小数点数型 (float, double, longdouble)
#* 文字型 (char)
#* ブール型 (bool)
#* ビットフィールド型
# 複合データ型
#* 配列型
#* ポインタ型
#* ユーザー定義型 (構造体、共用体、列挙型、クラス)
# void型
#* 値を持たない型
# その他
#* 型修飾子 (signed, unsigned, const, volatile)
#* リテラル型
プログラマは、データの性質に応じて適切なデータ型を選択する必要があります。次の節から、各データ型の詳細について説明していきます。
== 基本データ型 ==
C++には、さまざまな基本データ型があり、それぞれに異なる用途と特性があります。以下では、基本データ型について詳しく説明します。
=== 整数型 ===
整数型には、符号あり整数型と符号なし整数型があります。整数型は、整数を扱うためのデータ型であり、メモリ使用量や数値範囲が異なる複数の種類が存在します。
==== 符号あり整数型 (int, short, long, long long) ====
符号あり整数型は、正の数値と負の数値の両方を表現できます。以下の型が存在します:
; <code>signed char</code> : 最小幅は8ビット
; <code>short int</code> : 最小幅は16ビット
; <code>int</code> : 最小幅は16ビット
; <code>long int</code> : 最小幅は32ビット
; <code>long long int</code> : 最小幅は64ビット
各型の幅は、少なくとも前の型と同じかそれ以上の記憶容量を持ちます。符号あり整数型の範囲は、-2^(N-1)から2^(N-1)-1までです。
==== 符号なし整数型 (unsigned int, unsigned short, unsigned long) ====
符号なし整数型は、正の数値のみを表現します。以下の型が存在します:
* <code>unsigned char</code>
* <code>unsigned short int</code>
* <code>unsigned int</code>
* <code>unsigned long int</code>
* <code>unsigned long long int</code>
符号なし整数型の範囲は、0から2^N-1までです。符号なし整数型は符号あり整数型と同じ幅を持ちますが、負の数値を表現しません。
=== 浮動小数点数型 ===
浮動小数点数型は、実数を表現するためのデータ型です。以下の型が存在します:
==== float型 ====
; <code>float</code> : 単精度浮動小数点数。通常32ビットで表現されます。
==== double型 ====
; <code>double</code> : 倍精度浮動小数点数。通常64ビットで表現されます。
=== 文字型 ===
文字型は、文字を表現するためのデータ型です。
==== char型 ====
; <code>char</code> : 一般的には1バイト(8ビット)で表現されます。<code>signed char</code>と<code>unsigned char</code>のどちらかとして実装されます。
=== ブール型 ===
ブール型は、真理値(真または偽)を表現するためのデータ型です。
==== bool型 ====
; <code>bool</code> : 真理値を表現するための型。<code>true</code>(真)または<code>false</code>(偽)の値を取ります。
=== データ型の範囲と精度 ===
各データ型の範囲と精度は、以下のようになります:
; 符号あり整数型 : 最小幅は8ビットから64ビット。範囲は-2^(N-1)から2^(N-1)-1。
; 符号なし整数型 : 最小幅は8ビットから64ビット。範囲は0から2^N-1。
; 浮動小数点数型 : <code>float</code>は単精度(32ビット)、<code>double</code>は倍精度(64ビット)。
=== ISO/IEC 60559準拠の拡張浮動小数点数型 ===
標準に加えて、C++はISO/IEC 60559(IEEE 754)準拠の拡張浮動小数点数型もサポートすることが推奨されています。以下の型が存在します:
* <code>std::float16_t</code>: 16ビット
* <code>std::float32_t</code>: 32ビット
* <code>std::float64_t</code>: 64ビット
* <code>std::float128_t</code>: 128ビット
これらの型は、それぞれのビット幅と精度に応じて、異なる数値範囲と精度を提供します。
C++の基本データ型は、効率的かつ正確にデータを扱うための重要な要素です。各データ型の特性と用途を理解することで、プログラムの効率性と信頼性を向上させることができます。
== 複合データ型 ==
複合データ型は、基本データ型を組み合わせて作成されるデータ型で、より複雑なデータ構造を表現するために使用されます。C++にはいくつかの複合データ型が存在し、それぞれ異なる用途と特性を持っています。以下では、主な複合データ型について解説します。
=== 配列 ===
{{Main|C++/配列とベクトル}}
配列は、同じデータ型の要素を連続的に格納するデータ構造です。配列は固定長であり、宣言時にその長さを指定する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int numbers[5] = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
return 0;
}
</syntaxhighlight>
=== 構造体 (struct) ===
{{Main|C++/構造体}}
構造体は、異なるデータ型の要素をまとめて一つの複合データ型として定義することができます。構造体を使用すると、関連するデータを一つの単位として扱うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person john = {"John Doe", 30, 175.5};
std::cout << "Name: " << john.name << "\n";
std::cout << "Age: " << john.age << "\n";
std::cout << "Height: " << john.height << "\n";
return 0;
}
</syntaxhighlight>
=== 共用体 (union) ===
{{Main|C++/共用体}}
共用体は、同じメモリ領域を複数のデータ型で共有するデータ構造です。共用体の各メンバは同じメモリを使用するため、同時に一つのメンバしか有効にできません。
:<syntaxhighlight lang=c++>
#include <iostream>
union Data {
int intValue;
float floatValue;
char charValue;
};
auto main() -> int {
Data data{ .intValue = 42 };
std::cout << "Int value: " << data.intValue << "\n";
data.floatValue = 3.14;
std::cout << "Float value: " << data.floatValue << "\n";
data.charValue = 'A';
std::cout << "Char value: " << data.charValue << "\n";
return 0;
}
</syntaxhighlight>
=== 列挙クラス (enum class) ===
{{Main|C++/列挙型と列挙クラス}}
列挙クラスは、名前付き定数の集合を定義するためのデータ型です。列挙クラスを使用すると、コードの可読性が向上し、特定の値のみを取る変数を簡単に定義できます。
またC言語風の古い列挙型は名前空間を持ちませんが、列挙クラスは <code>Color::GREEN</code> のように名前空間を持つので識別子の衝突が起こりません。
列挙クラス <code>switch</code> 文の組み合わせにおいてすべての <code>enum class</code> の値をカバーすることで、全称性が担保されます。このとき、<code>default</code> ケースを使わないようにすることで、すべての可能な値が明示的に処理されていることをコンパイラがチェックできます。以下にその例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
enum class Color { RED, GREEN, BLUE };
auto main() -> int {
Color const favoriteColor = Color::GREEN;
switch (favoriteColor) {
case Color::RED:
std::cout << "赤がお好きなんですね!" << std::endl;
break;
case Color::GREEN:
std::cout << "緑がお好きなんですね!" << std::endl;
break;
case Color::BLUE:
std::cout << "青がお好きなんですね!" << std::endl;
break;
// default: は列挙型の全称性を担保することを確認するため書いてはならない
}
return 0;
}
</syntaxhighlight>
このコードでは、<code>default</code> ケを使用していません。これにより、すべての <code>Color</code> enum の値 (<code>RED</code>, <code>GREEN</code>, <code>BLUE</code>) が明示的にカバーされていることが保証されます。コンパイラがすべてのケースがカバーされていることをチェックし、もし将来 <code>Color</code> enum に新しい値が追加された場合、コンパイラが警告を出してくれるので、新しい値の処理を追加するのを忘れずに済みます。
=== タプル (tuple) ===
タプルは、異なるデータ型の要素をまとめて一つの単位として扱うデータ構造で、複数の値を関数から返すときなどに便利です。C++11以降で標準ライブラリに追加されました。
以下のコード例では、tupleのさまざまな機能を示しています。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <tuple>
auto main() -> int {
// タプルの作成
auto tuple1 =
std::tuple{42, 3.14, std::string{"hello"}}; // C++17から可能な構文
// タプルの要素へのアクセス
std::cout << "tuple1: " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルの要素の参照
int& a = std::get<0>(tuple1);
a = 100;
std::cout << "tuple1 (after modification): " << std::get<0>(tuple1) << ", "
<< std::get<1>(tuple1) << ", " << std::get<2>(tuple1)
<< std::endl;
// タプルのアンパック
auto [x, y, z] = tuple1;
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// タプルのサイズ
std::cout << "tuple1 size: " << std::tuple_size<decltype(tuple1)>::value
<< std::endl;
// タプルの連結
auto tuple2 = std::tuple_cat(std::tuple{1, 2.0}, std::tuple{'a', false});
std::cout << "tuple2: " << std::get<0>(tuple2) << ", "
<< std::get<1>(tuple2) << ", " << std::get<2>(tuple2) << ", "
<< std::get<3>(tuple2) << std::endl;
return 0;
}
</syntaxhighlight>
;出力:
:<syntaxhighlight lang=text>
tuple1: 42, 3.14, hello
tuple1 (after modification): 100, 3.14, hello
x: 100, y: 3.14, z: hello
tuple1 size: 3
tuple2: 1, 2, a, 0
</syntaxhighlight>
; 説明:
:# <code>std::tuple</code>を使ってタプルを作成できます。異なる型の値を要素として持つことができます。
:# <code>std::get<N>(tuple)</code>を使って、タプルの要素にアクセスできます。ここで、Nは0から始まるインデックスです。
:# タプルの要素は参照を取得して変更できます。
:# 構造化バインディングを使えば、タプルの要素を個別の変数にアンパックできます。
:# <code>std::tuple_size<T>::value</code>でタプルのサイズ(要素数)を取得できます。
:# <code>std::tuple_cat()</code>関数を使えば、2つのタプルを連結できます。
:# <code>std::make_tuple()</code>関数を使えば、値のリストからタプルを作成できます。
このように、C++のtupleは異なる型の値をまとめて扱えるため、関数から複数の値を返したり、複数の引数をまとめて渡したりするのに便利です。また、タプルのサイズは実行時に決定されるため、コンパイル時にはサイズを知る必要がありません。
{{Main|C++/標準ライブラリ/tuple}}
=== スマートポインタ (smart pointer) ===
{{Main|C++/ポインターと参照}}
スマートポインタは、動的メモリ管理を自動化するためのクラスであり、C++11以降に導入されました。これにより、メモリリークや未解放メモリの問題を防ぎ、メモリ管理をより安全かつ簡便に行えるようになります。代表的なスマートポインタには、<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code>があります。
=== std::unique_ptr ===
<code>std::unique_ptr</code> は、所有権が一意であることを保証するスマートポインタです。他のポインタに所有権を移すことができますが、コピーはできません。自動的にメモリを解放し、リソース管理が容易です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Value: " << *ptr << "\n";
// ptrのスコープを抜けると、自動的にメモリが解放される
return 0;
}
</syntaxhighlight>
=== std::shared_ptr ===
<code>std::shared_ptr</code> は、複数のポインタが同じオブジェクトの所有権を共有できるスマートポインタです。オブジェクトが最後の<code>shared_ptr</code>から解放されると、メモリが自動的に解放されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr1 = std::make_shared<int>(20);
{
auto sharedPtr2 = sharedPtr1; // 所有権を共有
std::cout << "Shared Value: " << *sharedPtr2 << "\n";
} // sharedPtr2のスコープを抜けるが、sharedPtr1はまだ生きている
std::cout << "Shared Value after block: " << *sharedPtr1 << "\n";
return 0;
}
</syntaxhighlight>
=== std::weak_ptr ===
<code>std::weak_ptr</code> は、<code>std::shared_ptr</code> によって所有されているオブジェクトへの弱い参照を提供します。これにより、循環参照を防ぎ、メモリリークを回避することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
auto main() -> int {
auto sharedPtr = std::make_shared<int>(30);
std::weak_ptr<int> weakPtr = sharedPtr; // weak_ptrを作成
if (auto lockedPtr = weakPtr.lock()) { // 有効なshared_ptrを取得
std::cout << "Weak Value: " << *lockedPtr << "\n";
} else {
std::cout << "Weak pointer is expired.\n";
}
sharedPtr.reset(); // shared_ptrをリセットしてメモリを解放
if (weakPtr.expired()) {
std::cout << "Weak pointer is expired after reset.\n";
}
return 0;
}
</syntaxhighlight>
; まとめ
スマートポインタは、基本データ型を組み合わせてより複雑なデータ構造を作成するための強力なツールです。<code>std::unique_ptr</code>、<code>std::shared_ptr</code>、<code>std::weak_ptr</code> などのスマートポインタを適切に使用することで、メモリ管理が効率的で可読性の高いプログラムを作成できます。各データ型の特性と使用方法を理解し、状況に応じて適切な型を選択することが重要です。
== 変数の宣言 ==
C++プログラムにおいて、変数はデータを保存するための基本的な手段です。変数の宣言方法、名前の付け方、データ型の指定、および初期化方法について詳しく説明します。
=== 変数とは ===
変数とは、プログラムが実行されている間にデータを保存するための名前付きの記憶場所です。変数には特定のデータ型が割り当てられ、その型に応じた値を保持します。変数を使用することで、プログラムは動的にデータを操作したり、保存したりすることができます。
=== 変数名の規則 ===
C++では、変数名を付ける際にいくつかの規則があります。これらの規則を守ることで、プログラムが正しくコンパイルされ、予期しないエラーを防ぐことができます。
# '''文字と数字を使用:''' 変数名は英文字(大文字と小文字の区別あり)、数字、アンダースコア(_)を使用できます。ただし、最初の文字は数字であってはいけません。
#* 有効な例: <code>age</code>, <code>total_sum</code>, <code>_value</code>
#* 無効な例: <code>2ndValue</code>, <code>-height</code>
# '''キーワードの使用禁止:''' C++のキーワードは変数名として使用できません。
#* 無効な例: <code>int</code>, <code>return</code>, <code>class</code>
# '''大文字と小文字の区別:''' 変数名は大文字と小文字を区別します。例えば、<code>Value</code>と<code>value</code>は異なる変数とみなされます。
# '''読みやすさの確保:''' 変数名は、意味のある名前を付けることでコードの可読性を向上させることが推奨されます。
#* 良い例: <code>totalAmount</code>, <code>numberOfStudents</code>
#* 悪い例: <code>a</code>, <code>n</code>, <code>x1</code>
=== データ型の指定 ===
変数を宣言する際には、その変数が保持するデータの型を指定します。C++では、以下のような基本的なデータ型があります。
* '''整数型:''' <code>int</code>, <code>short</code>, <code>long</code>, <code>long long</code>
* '''符号なし整数型:''' <code>unsigned int</code>, <code>unsigned short</code>, <code>unsigned long</code>, <code>unsigned long long</code>
* '''浮動小数点数型:''' <code>float</code>, <code>double</code>, <code>long double</code>
* '''文字型:''' <code>char</code>
* '''ブール型:''' <code>bool</code>
;例:
:<syntaxhighlight lang=c++>
int age;
float height;
char initial;
bool isStudent;
</syntaxhighlight>
=== 変数の初期化 ===
変数を宣言する際には、その変数に初期値を割り当てることができます。初期化の方法は以下の通りです。
; コピー初期化
:<syntaxhighlight lang=c++>
int age = 30;
double pi = 3.14;
</syntaxhighlight>
; 直接初期化
:<syntaxhighlight lang=c++>
int age(30);
double pi(3.14);
</syntaxhighlight>
; 統一初期化
:<syntaxhighlight lang=c++>
int age{30};
double pi{3.14};
</syntaxhighlight>
統一初期化は、より安全な初期化方法とされています。これは、暗黙の型変換が行われないため、意図しない型変換によるエラーを防ぐことができます。
例:
:<syntaxhighlight lang=c++>
auto main() -> int {
int age = 25; // コピー初期化
double pi(3.14159); // 直接初期化
char initial{'D'}; // 統一初期化
bool isStudent = true;
// 変数の使用
std::cout << "Age: " << age << std::endl;
std::cout << "Pi: " << pi << std::endl;
std::cout << "Initial: " << initial << std::endl;
std::cout << "Is Student: " << std::boolalpha << isStudent << std::endl;
return 0;
}
</syntaxhighlight>
=== 束縛について ===
C++における「束縛」は、変数が特定の値を保持することを指します。変数が宣言された際、その変数は特定のデータを保持する「束縛」を持ちます。この束縛によって、変数はメモリ上の特定のアドレスに関連付けられ、そのアドレスに格納された値にアクセスすることができます。束縛は変数のライフサイクルに密接に関わっており、変数がスコープを抜けるとその束縛は解除され、関連付けられたメモリは解放されます。
このように、変数の宣言と初期化は、プログラムの基本構造を理解し、正確にデータを操作するための重要なスキルです。変数の正しい使用は、プログラムの可読性と保守性を向上させます。
== 型付け規則 ==
C++における型付け規則は、プログラム内で使用されるデータの型の扱いを定義します。型変換は、あるデータ型の値を別のデータ型に変換するプロセスであり、これには暗黙の型変換と明示的な型変換があります。また、キャストを使用して明示的な型変換を行う方法についても説明します。
=== 暗黙の型変換 ===
暗黙の型変換(または自動型変換)は、コンパイラが自動的にある型から別の型へ値を変換するプロセスです。これは、互換性のある型同士で行われ、特に基本データ型間で頻繁に発生します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
{ // 初期化と自動型変換
int a = 10;
double b = a; // aは自動的にdoubleに変換される
double x = 9.99;
int y = x; // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 直接初期化と自動型変換
int a(10);
double b(a); // aは自動的にdoubleに変換される
double x(9.99);
int y(x); // xは自動的にintに変換され、小数部分が切り捨てられる
}
{ // 統一初期化と狭小化の警告
int a{ 10 };
// double b{ a };
//=> error: non-constant-expression cannot be narrowed from type 'int' to 'double' in initializer list [-Wc++11-narrowing]
double x{ 9.99 };
// int y{ x };
//=> error: type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]
}
return 0;
}
</syntaxhighlight>
このコードは、C++における統一初期化と型の自動変換を示したものです。主に以下の3つの側面を扱っています。
; 初期化と自動型変換
: 最初のブロックでは、<code>int</code>型の変数<var>a</var>を10で初期化し、<code>double</code>型の変数<var>b</var>を<var>a</var>で初期化しています。この際、<var>a</var>の値は自動的に<code>double</code>型に変換されます。同様に、<code>double</code>型の変数<var>x</var>を9.99で初期化し、<code>int</code>型の変数<var>y</var>で<var>x</var>で初期化すると、<var>x</var>の値は<code>int</code>型に変換され、小数部分が切り捨てられます。
; 直接初期化と自動型変換
: 2番目のブロックでは、直接初期化の構文を使用しています。<code>int a(10);</code>は<code>int a = 10;</code>と同じ意味です。<code>double b(a);</code>の場合も、<var>a</var>の値は自動的に<code>double</code>型に変換されます。<code>double x(9.99);</code>と<code>int y(x);</code>の振る舞いは、最初のブロックと同様です。
; 統一初期化と狭小化の警告
: 3番目のブロックでは、統一初期化の構文<code>{}</code>を使用しています。<code>int a{10};</code>と<code>double x{9.99};</code>は問題ありません。しかし、<code>double b{a};</code>と<code>int y{x};</code>はコメントアウトされています。これらの行をコメントアウトしない場合、コンパイラは狭小化の警告を出力します。統一初期化では、明示的な型キャストがない限り、異なる型への変換は許可されません。つまり、<code>int</code>から<code>double</code>への変換も、<code>double</code>から<code>int</code>への変換も許可されず、エラーが発生します。
このコードは、C++における初期化の構文と、自動型変換や狭小化の扱いについて説明しています。統一初期化なら、より厳格な規則が適用されることに注意が必要です。
=== 明示的な型変換 ===
明示的な型変換は、プログラマが意図的にある型を別の型に変換することを指します。C++では、明示的な型変換をキャストと呼びます。キャストを使用することで、型変換の意図を明確にし、安全性と可読性を向上させることができます。
=== キャストの使い方 ===
C++には複数のキャスト方法があり、それぞれ異なる用途と安全性を持っています。適切なキャストを選択することは、プログラムの安全性と可読性を確保する上で非常に重要です。以下に、主なキャスト方法とその特徴を説明します。
==== Cスタイルキャスト(非推奨) ====
C++では、Cスタイルキャストを使用して明示的な型変換を行うことができますが、これは推奨されません。なぜなら、Cスタイルキャストは非常に強力であり、意図しない変換を引き起こす可能性があるためです。Cスタイルキャストは、以下のように括弧を使用します。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = (double)a; // Cスタイルキャスト
</syntaxhighlight>
==== static_cast ====
<code>static_cast</code>は、最も一般的に使用されるキャストで、基本データ型間の変換や互換性のあるクラス型間の変換に使用されます。<code>static_cast</code>は、コンパイル時に型チェックが行われるため、安全性が高くなります。
:<syntaxhighlight lang=cpp>
int a = 10;
double b = static_cast<double>(a);
</syntaxhighlight>
==== dynamic_cast ====
<code>dynamic_cast</code>は、ポインタや参照を基底クラス型から派生クラス型へ安全に変換するために使用されます。これは、ランタイム型情報(RTTI)を使用して、変換が安全かどうかを確認します。<code>dynamic_cast</code>は、主に多態性を扱う際に使用されます。
:<syntaxhighlight lang=cpp>
class Base { virtual void func() {} };
class Derived : public Base { void func() override {} };
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr); // 安全な変換
</syntaxhighlight>
==== const_cast ====
<code>const_cast</code>は、オブジェクトの定数性を除去するために使用されます。これは、定数メンバ関数内で非定数メンバにアクセスする必要がある場合などに使用されます。<code>const_cast</code>は、慎重に使用する必要があります。
:<syntaxhighlight lang=cpp>
const int a = 10;
int* b = const_cast<int*>(&a); // aの定数性を除去
*b = 20; // aの値を変更
</syntaxhighlight>
==== reinterpret_cast ====
<code>reinterpret_cast</code>は、ポインタ型やビットパターンを変更するために使用されます。これは、非常に低レベルな操作であり、慎重に使用する必要があります。<code>reinterpret_cast</code>は、型の互換性がない場合にも使用できますが、プログラムの動作が未定義になる可能性があります。
:<syntaxhighlight lang=cpp>
int a = 65;
char* b = reinterpret_cast<char*>(&a);
std::cout << *b; // 'A'が出力される(ASCIIコード65に対応)
</syntaxhighlight>
==== 束縛の概念 ====
C++における「束縛」は、変数やオブジェクトが特定の型または値に関連付けられることを指します。例えば、ある変数が特定のデータ型で宣言されると、その変数はその型に属する値のみを保持することができます。この束縛は、プログラムの型安全性を向上させるために重要であり、間違った型の値を変数に代入しようとするとコンパイルエラーが発生します。
束縛の概念は、型変換を行う際にも関連しています。たとえば、<code>static_cast</code>を使用することで、型の束縛を尊重しつつ安全な変換を行うことができます。このように、束縛はC++の型システムの中心的な要素であり、プログラムの正確性を維持するために不可欠です。
; まとめ
C++における型変換は、プログラムの柔軟性を高めるために不可欠です。暗黙の型変換は自動的に行われる一方で、明示的な型変換はプログラマが意図的に行うものであり、適切なキャストを使用して安全かつ明確に実施されます。正しいキャストの選択とその慎重な使用により、プログラムの安全性と可読性を向上させることができます。
キャストを使用する際は、常に目的と意図を明確にし、適切なキャストを選択することが重要です。特に、Cスタイルキャストは避けるべきで、代わりに<code>static_cast</code>や<code>dynamic_cast</code>を使用することをお勧めします。また、<code>const_cast</code>や<code>reinterpret_cast</code>は、より慎重に使用する必要があります。
== リテラル ==
リテラルとは、プログラム中に直接記述された値そのものを指します。C++では、さまざまな型のリテラルが用意されており、それぞれ異なる形式で表現されます。以下に、主要なリテラルについて説明します。
=== 整数リテラル ===
整数リテラルは、整数型の値を表すリテラルです。整数リテラルには、10進数、8進数、16進数、2進数の形式があります。C++14以降では、アンダースコア(<code>_</code>)を用いて数値を区切ることができます。
; 例:
; 10進数リテラル
:<syntaxhighlight lang=c++>
int decimal{42};
</syntaxhighlight>
; 8進数リテラル
: 先頭に<code>0o</code>を付けて表現します(C++14以降)。
:<syntaxhighlight lang=c++>
int octal{0o52}; // 10進数の42と同じ
</syntaxhighlight>
; 16進数リテラル
: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int hex{0x2A}; // 10進数の42と同じ
</syntaxhighlight>
; 2進数リテラル
: 先頭に<code>0b</code>または<code>0B</code>を付けて表現します。
:<syntaxhighlight lang=c++>
int binary{0b101010}; // 10進数の42と同じ
</syntaxhighlight>
整数リテラルには、データ型を指定するためのサフィックスもあります。
* <code>u</code>または<code>U</code>: unsigned
* <code>l</code>または<code>L</code>: long
* <code>ll</code>または<code>LL</code>: long long
* <code>z</code>または<code>Z</code>: size_t
; 例:
:<syntaxhighlight lang=c++>
unsigned int unsignedDecimal{42u};
long longDecimal{42L};
long long longLongDecimal{42LL};
size_t sizeDecimal{42z}; // size_tリテラル
</syntaxhighlight>
=== 浮動小数点リテラル ===
浮動小数点リテラルは、小数点を含む数値を表します。通常の10進形式のほかに、指数形式でも表現できます。また、C++20以降では16進浮動小数点リテラルも使用可能です。
; 例:
# 通常の10進形式
#:<syntaxhighlight lang=c++>
double decimal = 3.14;
</syntaxhighlight>
# 指数形式
#: <code>e</code>または<code>E</code>を使用して指数部を表現します。
#:<syntaxhighlight lang=c++>
double scientific = 3.14e2; // 3.14 × 10^2 = 314
</syntaxhighlight>
# 16進浮動小数点リテラル
#: 先頭に<code>0x</code>または<code>0X</code>を付けて表現します。
#:<syntaxhighlight lang=c++>
double hexFloat = 0x1.91f0p+1; // 1.5 × 16^1 = 24.0
</syntaxhighlight>
浮動小数点リテラルには、データ型を指定するためのサフィックスもあります。
* <code>f</code>または<code>F</code>: float
* <code>l</code>または<code>L</code>: long double
; 例:
:<syntaxhighlight lang=c++>
float floatLiteral = 3.14f;
long double longDoubleLiteral = 3.14L;
</syntaxhighlight>
=== 文字リテラル ===
文字リテラルは、単一の文字を表します。文字リテラルは、シングルクォート(<code>'</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
char charLiteral = 'A';
</syntaxhighlight>
文字リテラルには、エスケープシーケンスを使用して特殊文字を表現することもできます。
; 例:
:<syntaxhighlight lang=c++>
char newLine = '\n'; // 改行文字
char tab = '\t'; // タブ文字
char singleQuote = '\''; // シングルクォート
char backslash = '\\'; // バックスラッシュ
</syntaxhighlight>
=== 文字列リテラル ===
文字列リテラルは、複数の文字を連続して表現するリテラルです。文字列リテラルは、ダブルクォート(<code>"</code>)で囲まれます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello, World!";
</syntaxhighlight>
文字列リテラル内でも、エスケープシーケンスを使用することができます。
; 例:
:<syntaxhighlight lang=c++>
const char* str = "Hello,\nWorld!"; // 改行を含む文字列
</syntaxhighlight>
C++11以降では、生文字列リテラルを使用することができ、エスケープシーケンスや改行をそのまま表現することができます。生文字列リテラルは、<code>R"delimiter(文字列)delimiter"</code>の形式で記述します。
; 例:
:<syntaxhighlight lang=c++>
const char* rawStr = R"(Hello,\nWorld!)"; // エスケープシーケンスが無視される
</syntaxhighlight>
; まとめ
リテラルは、プログラム中で直接使用される具体的な値を表現するための基本的な要素です。整数リテラル、浮動小数点リテラル、文字リテラル、および文字列リテラルの各形式を理解することで、C++プログラムの可読性と正確性を向上させることができます。
== 定数の宣言 ==
C++では、プログラム内で値を変更しない変数を「定数」として宣言することができます。定数の宣言には主に<code>const</code>修飾子を使用します。定数を使用することで、コードの可読性が向上し、バグの発生を防ぐことができます。
=== const修飾子 ===
<code>const</code>修飾子を使用すると、その変数は初期化後に変更できなくなります。これは、意図しない変更を防ぐために役立ちます。
; 例:
:<syntaxhighlight lang=c++>
const int MAX_USERS{100};
const double PI{3.14159};
const char NEWLINE{'\n'};
</syntaxhighlight>
上記の例では、<code>MAX_USERS</code>、<code>PI</code>、<code>NEWLINE</code>という3つの定数が宣言されています。これらの値は、プログラムの実行中に変更することはできません。
=== 定数の使用例 ===
<code>const</code>定数はさまざまな場面で使用されます。以下に、いくつかの典型的な使用例を示します。
==== 配列のサイズを定数として宣言 ====
配列のサイズを定数として宣言すると、配列のサイズが変更される可能性を排除できます。
:<syntaxhighlight lang=c++>
const int ARRAY_SIZE{10};
int numbers[ARRAY_SIZE];
</syntaxhighlight>
==== 定数を使用した計算 ====
定数を使用することで、計算式が分かりやすくなり、間違いを減らすことができます。
:<syntaxhighlight lang=c++>
const double TAX_RATE{0.10};
double price{100.0};
double tax = {price * TAX_RATE};
double totalPrice{price + tax};
</syntaxhighlight>
==== 関数の引数に定数を使用 ====
関数の引数に<code>const</code>を使用することで、その引数が関数内で変更されないことを保証できます。
:<syntaxhighlight lang=c++>
void printArray(const int arr[], const size_t size) {
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
</syntaxhighlight>
==== ポインタとconst ====
ポインタと<code>const</code>を組み合わせることで、指し示す値が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
const int value{42};
const int* ptr{&value}; // ptrを通じてvalueを変更することはできない
</syntaxhighlight>
さらに、ポインタ自体を<code>const</code>にすることもできます。
:<syntaxhighlight lang=c++>
int value1{42};
int value2{100};
int* const ptr{&value1}; // ptr自体は変更できないが、指し示す値は変更できる
*ptr = 50; // OK
ptr = &value2; // エラー
</syntaxhighlight>
==== 定数メンバ関数 ====
クラスのメンバ関数に<code>const</code>を指定することで、その関数内でメンバ変数が変更されないことを保証できます。
:<syntaxhighlight lang=c++>
#include <iostream>
class MyClass {
private:
const int value;
public:
MyClass(int val) : value{val} {}
void display() const {
std::cout << "Value: " << value << std::endl;
}
// void f(int x) { value = x; }
//=> error: cannot assign to non-static data member 'value' with const-qualified type 'const int'
};
</syntaxhighlight>
=== constexpr修飾子 ===
<code>constexpr</code>修飾子は、コンパイル時に評価される定数式を定義するために使用されます。<code>constexpr</code>で宣言された変数や関数は、コンパイル時に値が確定し、実行時のオーバーヘッドが削減されます。
; 例:
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue(); // resultはコンパイル時に42と評価される
</syntaxhighlight>
<code>constexpr</code>を使用することで、コンパイル時に計算できる定数や関数を定義し、プログラムのパフォーマンスを向上させることができます。
=== consteval修飾子 ===
<code>consteval</code>修飾子は、関数が必ずコンパイル時に評価されることを保証します。<code>consteval</code>関数は実行時に呼び出すことができず、常にコンパイル時に評価される必要があります。
; 例:
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue(); // OK: コンパイル時に評価される
</syntaxhighlight>
<code>consteval</code>は、確実にコンパイル時に評価される定数を得たい場合に有用です。
; まとめ
; <code>const</code> : 変数の値が不変であることを示します。初期化後に変更不可。
:<syntaxhighlight lang=c++>
const int maxValue{100};
</syntaxhighlight>
; <code>constexpr</code> : コンパイル時に評価される定数式を定義します。コンパイル時に値が確定するため、実行時のパフォーマンスが向上します。
:<syntaxhighlight lang=c++>
constexpr int getValue() { return 42; }
constexpr int result = getValue();
</syntaxhighlight>
; <code>consteval</code> : 必ずコンパイル時に評価される関数を定義します。
:<syntaxhighlight lang=c++>
consteval int getCompileTimeValue() { return 100; }
constexpr int compileTimeResult = getCompileTimeValue();
</syntaxhighlight>
これらのキーワードを適切に使い分けることで、C++プログラムの安全性、効率性、およびパフォーマンスを向上させることができます。
== スコープと有効範囲 ==
C++におけるスコープと有効範囲の理解は、プログラムが意図した通りに動作するために重要です。スコープは変数や関数が有効な範囲を指し、有効範囲はそのスコープ内でそれらがアクセス可能な範囲を意味します。
=== スコープの概念 ===
スコープ(scope)は、プログラム内で識別子(変数名、関数名など)が認識され、使用できる領域を指します。スコープは大きく分けて以下の4種類に分類されます:
; ブロックスコープ(Block Scope) :ブロック内(<code>{}</code>で囲まれた範囲)で有効。
; 関数スコープ(Function Scope) :関数内で有効。
; ファイルスコープ(File Scope) :ファイル内で有効。
; グローバルスコープ(Global Scope) :プログラム全体で有効。
=== ローカル変数とグローバル変数 ===
ローカル変数とグローバル変数は、スコープの観点から見て重要な役割を果たします。
==== ローカル変数 ====
ローカル変数は、その変数が宣言されたブロック内でのみ有効です。関数やループ内で宣言されることが多く、ブロックを抜けると自動的に破棄されます。
:<syntaxhighlight lang=c++>
void myFunction() {
int localVar = 10; // ローカル変数
// このブロック内でのみ有効
}
</syntaxhighlight>
==== グローバル変数 ====
グローバル変数は、ブロック外で宣言され、プログラム全体からアクセス可能です。通常、ファイルの先頭で宣言され、全ての関数やブロックから参照できます。
:<syntaxhighlight lang=c++>
int globalVar = 20; // グローバル変数
void myFunction() {
globalVar = 30; // グローバル変数を変更
}
</syntaxhighlight>
=== 名前空間 ===
{{Main|C++/名前空間}}
名前空間(namespace)は、識別子の衝突を避けるために使用されます。特に大規模なプロジェクトやライブラリでは、同じ名前の変数や関数が存在することがあります。名前空間を使用することで、これらの識別子をグループ化し、他のグループと区別することができます。
==== 名前空間の宣言と使用 ====
名前空間を宣言するには<code>namespace</code>キーワードを使用します。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int myVariable = 50;
void myFunction() {
// 名前空間内の関数
}
}
</syntaxhighlight>
名前空間内の要素にアクセスするには、名前空間の名前を指定します。
:<syntaxhighlight lang=c++>
auto main() -> int {
MyNamespace::myVariable = 60; // 名前空間を指定してアクセス
MyNamespace::myFunction(); // 名前空間を指定して関数を呼び出し
return 0;
}
</syntaxhighlight>
==== <code>using</code>キーワードの使用 ====
<code>using</code>キーワードを使うことで、名前空間を明示的に指定せずに、その名前空間内の要素を使用することができます。
:<syntaxhighlight lang=c++>
using namespace MyNamespace;
auto main() -> int {
myVariable = 60; // 名前空間を指定せずにアクセス
myFunction(); // 名前空間を指定せずに関数を呼び出し
return 0;
}
</syntaxhighlight>
ただし、大規模なプロジェクトでは、<code>using namespace</code>を多用することは避けた方が良いです。理由は、名前の衝突を招きやすくなるためです。
; まとめ
スコープと有効範囲は、プログラムの動作を理解し、バグを防ぐために重要な概念です。ローカル変数とグローバル変数の使い分けや、名前空間を使用して識別子の衝突を避けることが、C++プログラミングにおいて重要なスキルとなります。適切にこれらの概念を活用することで、より読みやすく、保守しやすいコードを書くことができます。
== 構造化束縛宣言 (C++17以降) ==
{{Main|C++/構造化束縛宣言}}
=== 構造化束縛宣言とは ===
構造化束縛宣言(''Structured Binding Declaration'')は、C++17で導入された機能で、複数の変数を一度に初期化するための新しい方法です。これにより、タプルやペア、構造体のメンバ変数など、複数の値を簡潔に扱うことができます。従来の方法と比べて、コードの可読性や保守性が向上します。
構造化束縛宣言は、以下のようなデータ構造に対して使用できます:
* タプル (<code>std::tuple</code>)
* ペア (<code>std::pair</code>)
* 配列
* 構造体
=== 構造化束縛宣言の使用例 ===
以下に、構造化束縛宣言の具体的な使用例を示します。
==== タプルを使用する例 ====
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getValues() {
return std::make_tuple(42, 3.14, "Hello");
}
auto main() -> int {
auto [i, d, s] = getValues();
std::cout << "Integer: " << i << std::endl;
std::cout << "Double: " << d << std::endl;
std::cout << "String: " << s << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>getValues</code>関数がタプルを返し、構造化束縛宣言を使ってタプルの各要素を変数<code>i</code>、<code>d</code>、<code>s</code>に分解しています。
==== ペアを使用する例 ====
:<syntaxhighlight lang=c++>
#include <utility>
#include <iostream>
std::pair<int, std::string> getPair() {
return std::make_pair(1, "example");
}
auto main() -> int {
auto [number, text] = getPair();
std::cout << "Number: " << number << std::endl;
std::cout << "Text: " << text << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>getPair</code>関数がペアを返し、構造化束縛宣言を使ってペアの各要素を変数<code>number</code>と<code>text</code>に分解しています。
==== 配列を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[3] = {1, 2, 3};
auto [a, b, c] = arr;
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
std::cout << "c: " << c << std::endl;
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>を構造化束縛宣言を使って分解し、各要素を変数<code>a</code>、<code>b</code>、<code>c</code>に割り当てています。
==== 構造体を使用する例 ====
:<syntaxhighlight lang=c++>
#include <iostream>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p = {10, 20};
auto [x, y] = p;
std::cout << "x: " << x << std::endl;
std::cout << "y: " << y << std::endl;
return 0;
}
</syntaxhighlight>
この例では、構造体<code>Point</code>を構造化束縛宣言を使って分解し、メンバ変数<code>x</code>と<code>y</code>をそれぞれの変数に割り当てています。
; まとめ
構造化束縛宣言は、C++17で導入された非常に強力な機能です。これにより、タプル、ペア、配列、構造体などの複数の値を簡潔かつ直感的に扱うことが可能になります。従来の方法では、例えばタプルの要素を個別に変数に代入する際に、<code>std::get<0>(tuple)</code> のように記述する必要がありましたが、構造化束縛を使うことでコードがすっきりし、可読性が大幅に向上します。
この機能は特に、大規模なプロジェクトやライブラリでのデータ構造の操作において、コードの保守性を高めるのに役立ちます。C++17以降のプロジェクトでは、構造化束縛宣言を積極的に活用することをお勧めします。これにより、コードの可読性を保ちつつ、開発効率を向上させることができます。
== 応用例と演習問題 ==
=== 応用例 ===
ここでは、構造化バインディングを活用したいくつかの応用例を紹介します。
# ファイル入出力における構造化バインディング
#:<syntaxhighlight lang=c++>
#include <fstream>
#include <string>
#include <tuple>
#include <iostream>
std::tuple<bool, std::string> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file) {
return std::make_tuple(false, "");
}
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
return std::make_tuple(true, content);
}
auto main() -> int {
auto [success, content] = readFile("example.txt");
if (success) {
std::cout << "File content:\n" << content << "\n";
} else {
std::cout << "Failed to read the file.\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、<code>readFile</code>関数がタプルを返し、構造化バインディングを使ってファイル読み込みの成功可否と内容を受け取ります。
# データベースクエリ結果の処理
#:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
#include <vector>
using Record = std::tuple<int, std::string, double>;
std::vector<Record> queryDatabase() {
return {
{1, "Alice", 95.5},
{2, "Bob", 85.0},
{3, "Charlie", 78.2}
};
}
auto main() -> int {
for (const auto& record : queryDatabase()) {
auto [id, name, score] = record;
std::cout << "ID: " << id << ", Name: " << name << ", Score: " << score << "\n";
}
return 0;
}
</syntaxhighlight>
#: この例では、データベースから取得したレコードをタプルのベクタとして受け取り、構造化バインディングを使って各フィールドにアクセスしています。
=== 演習問題 ===
<!-- 問題と解凍に分解する仕組みを検討中 -->
以下の演習問題に取り組んで、構造化バインディングの理解を深めましょう。
; 問題 1:配列の要素の分解
: 次のコードを完成させて、配列の要素を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[4] = {10, 20, 30, 40};
// 構造化バインディングを使って配列の要素を分解し、それぞれの要素を変数に代入してください。
auto [a, b, c, d] = arr;
std::cout << "a: " << a << "\n";
std::cout << "b: " << b << "\n";
std::cout << "c: " << c << "\n";
std::cout << "d: " << d << "\n";
return 0;
}
</syntaxhighlight>
; 問題 2:構造体のメンバ変数の分解
: 次の構造体<code>Person</code>のインスタンスを構造化バインディングを使って分解し、各メンバ変数を出力するプログラムを書いてください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
double height;
};
auto main() -> int {
Person person = {"John Doe", 30, 175.5};
// 構造化バインディングを使って構造体のメンバ変数を分解し、それぞれのメンバ変数を変数に代入してください。
auto [name, age, height] = person;
std::cout << "Name: " << name << "\n";
std::cout << "Age: " << age << "\n";
std::cout << "Height: " << height << "\n";
return 0;
}
</syntaxhighlight>
; 問題 3:関数の戻り値の分解
: 次のコードを完成させて、関数<code>getPoint</code>の戻り値を構造化バインディングを使って分解し、各要素を出力してください。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <tuple>
std::tuple<int, int> getPoint() {
return std::make_tuple(5, 10);
}
auto main() -> int {
// 構造化バインディングを使って関数の戻り値を分解し、それぞれの要素を変数に代入してください。
auto [x, y] = getPoint();
std::cout << "x: " << x << "\n";
std::cout << "y: " << y << "\n";
return 0;
}
</syntaxhighlight>
これらの演習問題を通じて、構造化バインディングの基本的な使い方をマスターしましょう。
{{Nav}}
[[Category:C++]]
igcmo2u6bm6e1x0h8s9fx1qs0c6kt3w
C++/制御構造
0
39749
263060
249096
2024-11-05T02:02:49Z
Ef3
694
/*if文とswitch文での初期化*/ C++17から、if文やswitch文で初期化が可能になりました。これにより、条件式内でローカル変数を宣言し、その変数を条件に基づいて利用することができます。これは、GoやRustのように、条件のスコープ内で変数を定義するスタイルに似ています。
263060
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== 制御構造の重要性 ===
制御構造はプログラミングの基本であり、プログラムの流れを制御するための枠組みです。これにより、条件に応じた処理の分岐や繰り返し処理が可能になります。制御構造を理解することは、効率的でエラーの少ないプログラムを書くための第一歩です。
C++では、豊富な制御構造が提供されています。基本的な制御構造から、C++特有の高度な機能まで幅広くカバーされています。本章では、以下の制御構造について詳しく解説します。
; 制御構造の役割
; [[#条件分岐|条件分岐]] : 特定の条件に基づいて異なる処理を実行する。
:; [[#if文|if文]] : 条件に基づいた分岐を行います。
:; [[#switch文|switch文]] : 複数の条件分岐を効率的に処理します。
; [[#ループ構造|ループ構造]] : 同じ処理を複数回実行する。
:; [[#while文|while文]] : 条件が真である間、繰り返し処理を行います。
:; [[#do-while文|do-while文]] : 最低1回は実行される繰り返し処理を行います。
:; [[#for文|for文]] : 繰り返し処理を効率的に行います。
; [[#制御の移動|制御の移動]] : プログラムの特定の部分に直接ジャンプする。
:; [[#break文|break文]] : イテレーションの中断。
:; [[#continue文|continue文]] : 次のイテレーションへのスキップ。
:; [[#goto文|goto文]] : ラベルへの移動。
; C++特有の制御構造
:; [[#if constexpr|if constexpr]] : コンパイル時に条件分岐を行うことができ、コンパイル時の最適化を支援します。C++17で導入されました。
:; [[#範囲for文 (range-based for loop)|範囲for文 (range-based for loop)]] : コンテナや配列の全要素に対して処理を行うための簡潔な方法です。C++11で導入されました。
これらの制御構造を使うことで、プログラムの可読性が向上し、効率的なコーディングが可能になります。本章では、それぞれの制御構造の使い方と注意点について具体的な例を交えて解説します。
== 条件分岐 ==
条件分岐はプログラムの制御構造の一つで、特定の条件に基づいて異なる処理を実行することができます。C++では、主に<code>if</code>文、<code>else</code>文、<code>else if</code>文を使用して条件分岐を実現します。
=== if文 ===
<code>if</code>文は、条件式が真の場合にのみブロック内のコードを実行します。
==== 基本構文 ====
:<syntaxhighlight lang=c++>
if (条件式) 文
</syntaxhighlight>
複文(ブロック <code>{ ... }</code>)も文であり、条件実行の対象が短文の場合も
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
}
</syntaxhighlight>
のようにブロックとすることが推奨され、しばしばコーディング規約で規定されます。
例えば、ある変数が10より大きいかどうかを確認するコードは次のようになります。
;コード例
:<syntaxhighlight lang=c++>
int number = 15;
if (number > 10) {
std::cout << "Number is greater than 10." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>が10より大きいので、メッセージが表示されます。
==== else節 ====
<code>else</code>節は、前の<code>if</code>の条件が偽の場合に実行されるコードブロックを定義します。
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
} else {
// 条件式が偽のときに実行されるコード
}
</syntaxhighlight>
==== else if文 ====
<code>else if</code>文は、複数の条件を順にチェックし、条件が真の場合にのみ対応するコードブロックを実行します。
: <code>else if</code> は実際には<code>else</code>節に別の<code>if</code>文をネストした形であり、便宜上 <code>else if</code> 文と呼んでいます。
:<syntaxhighlight lang=c++>
if (条件式1) {
// 条件式1が真のときに実行されるコード
} else if (条件式2) {
// 条件式2が真のときに実行されるコード
} else {
// すべての条件式が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正、負、ゼロのいずれであるかを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = -5;
if (number > 0) {
std::cout << "Number is positive." << std::endl;
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は負の数なので、"Number is negative."が表示されます。
=== ネストしたif文 ===
<code>if</code>文は他の<code>if</code>文の内部にネスト(入れ子)することができます。これにより、複雑な条件分岐を実現できます。
:<syntaxhighlight lang=c++>
if (条件式1) {
if (条件式2) {
// 条件式1および条件式2が真のときに実行されるコード
} else {
// 条件式1が真で条件式2が偽のときに実行されるコード
}
} else {
// 条件式1が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正の偶数か正の奇数かを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = 8;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else {
std::cout << "Number is not positive." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は正の偶数なので、"Number is a positive even number."が表示されます。
{{コラム|懸垂If問題|width=100%|2=C++における「懸垂else問題(Dangling else problem)」は、構文解析やコードの意図の明確化に関連する問題で、特にネストされた<code>if-else</code>文において発生します。この問題は、条件分岐が複雑になると、<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる場合に生じます。
以下のコードを見てください:
:<syntaxhighlight lang=c++>
if (condition1)
if (condition2)
// Do something
else
// Do something else
</syntaxhighlight>
この場合、<code>else</code>句が<code>condition2</code>の<code>if</code>文に対応するのか、それとも<code>condition1</code>の<code>if</code>文に対応するのかが問題になります。C++の仕様では、<code>else</code>は常に直前の<code>if</code>文に対応します。
; 正しい解釈
: 上述のコードは次のように解釈されます:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
; 問題の解決策
この問題を解決するためには、コードの意図を明確にするために中括弧 <code>{}</code> を使ってブロックを明示的に指定します。
; 明示的なブロック構造を使用
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
または、もし<code>else</code>が外側の<code>if</code>文に対応する場合は:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
}
} else {
// Do something else
}
</syntaxhighlight>
とします。
; インデントの役割
インデントはコンパイラの解釈には影響を与えませんがが、コードの可読性を向上させるために重要です。適切なインデントは、他のプログラマがコードの意図を理解しやすくするための視覚的な助けとなります。しかし、インデントだけでは問題を解決できないため、明示的なブロック構造が必要です。
; まとめ
* '''懸垂else問題'''は、ネストされた<code>if-else</code>文において<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる問題です。
* '''解決策'''は、ブロックを明示的にするために中括弧 <code>{}</code> を使用することです。これにより、<code>else</code>句がどの<code>if</code>文に対応するかが明確になります。
* '''インデント'''はコードの可読性を向上させるための視覚的ツールですが、コンパイラはインデントを無視して文法通りにコードを解釈します。
これにより、懸垂else問題を避け、より明確でメンテナブルなコードを書くことができます。
}}
=== サンプルコードと解説 ===
以下に、if文、else節、else if文、ネストしたif文を含むサンプルコードを示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、ユーザーから入力された数値が正の偶数か正の奇数か、負の数か、ゼロかを判定して適切なメッセージを表示します。
このように、<code>if</code>文、<code>else</code>文、<code>else if</code>文、およびネストした<code>if</code>文を組み合わせることで、複雑な条件分岐を実現し、プログラムの制御を柔軟に行うことができます。
=== if constexpr ===
<code>if constexpr</code>はC++17で導入された新しい条件分岐の形式で、コンパイル時に条件を評価するために使用されます。この機能は、コンパイル時に分岐を解決できるため、メタプログラミングやテンプレートプログラミングで特に有用です。
==== コンパイル時条件分岐 ====
従来の<code>if</code>文は、実行時に条件を評価しますが、<code>if constexpr</code>はコンパイル時に条件を評価します。そのため、<code>if constexpr</code>を使用することで、コンパイル時に条件に基づいたコードの最適化が可能になります。これにより、不要なコードが排除され、コンパイルエラーも未然に防ぐことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
template <typename T>
void foo(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Integer: " << value << std::endl;
} else {
// Tが整数型でない場合の処理
std::cout << "Non-integer: " << value << std::endl;
}
}
</syntaxhighlight>
==== 使用例と解説 ====
次に、<code>if constexpr</code>の具体的な使用例とその解説を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
template <typename T>
void print_type_info(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Value is an integer: " << value << std::endl;
} else if constexpr (std::is_floating_point_v<T>) {
// Tが浮動小数点型の場合の処理
std::cout << "Value is a floating-point number: " << value << std::endl;
} else {
// その他の型の場合の処理
std::cout << "Value is of an unknown type" << std::endl;
}
}
auto main() -> int {
print_type_info(42); // 整数型の場合
print_type_info(3.14); // 浮動小数点型の場合
print_type_info("Hello"); // 文字列リテラルの場合
return 0;
}
</syntaxhighlight>
上記の例では、<code>print_type_info</code>関数が異なる型の引数を受け取ります。<code>if constexpr</code>によって、引数の型に応じた処理がコンパイル時に決定されます。
* <code>std::is_integral_v<T></code>が真の場合、整数型に対する処理が実行されます。
* <code>std::is_floating_point_v<T></code>が真の場合、浮動小数点型に対する処理が実行されます。
* どちらの条件も満たさない場合は、その他の型に対する処理が実行されます。
このように、<code>if constexpr</code>を使用することで、コンパイル時に条件を評価し、最適化されたコードを生成することができます。これにより、実行時のオーバーヘッドが減り、プログラムの効率が向上します。また、コンパイル時にエラーを検出できるため、バグの発生を未然に防ぐことができます。
=== switch文 ===
switch文は、変数の値に基づいて複数の分岐を実行するための制御構造です。if文よりも分岐が多い場合や、値に応じて明確に異なる処理を行う場合に使用されます。
==== 基本構文 ====
switch文の基本構文は以下の通りです。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// variable が value1 の場合に実行されるコード
break;
case value2:
// variable が value2 の場合に実行されるコード
break;
// 必要に応じて他の case を追加
default:
// variable がいずれの case にも一致しない場合に実行されるコード
}
</syntaxhighlight>
==== caseとdefault ====
; case : それぞれのcaseキーワードは、<code>variable</code>が特定の値(<code>value1</code>、<code>value2</code>など)と一致する場合に実行されるコードを指定します。
; default : defaultキーワードは、<code>variable</code>がいずれのcaseとも一致しない場合に実行されるコードを指定します。この部分はオプションですが、全ての可能性をカバーするために使われることが多いです。
==== breakの重要性 ====
switch文内で使用される<code>break</code>ステートメントは、現在のcaseブロックの終わりを示し、switch文の外へ制御を移します。<code>break</code>がないと、次のcaseブロックに流れ込み、予期しない動作を引き起こすことがあります。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// value1 の場合の処理
break;
case value2:
// value2 の場合の処理
break;
default:
// どの case にも一致しない場合の処理
}
</syntaxhighlight>
==== サンプルコードと解説 ====
以下に具体的なサンプルコードを示します。このコードは、ユーザーの入力に基づいて曜日を表示する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int day;
std::cout << "曜日を数字で入力してください (1-7): ";
std::cin >> day;
switch (day) {
case 1:
std::cout << "月曜日" << std::endl;
break;
case 2:
std::cout << "火曜日" << std::endl;
break;
case 3:
std::cout << "水曜日" << std::endl;
break;
case 4:
std::cout << "木曜日" << std::endl;
break;
case 5:
std::cout << "金曜日" << std::endl;
break;
case 6:
std::cout << "土曜日" << std::endl;
break;
case 7:
std::cout << "日曜日" << std::endl;
break;
default:
std::cout << "無効な入力です。1から7の数字を入力してください。"
<< std::endl;
break;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーに1から7までの数字を入力させ、その数字に対応する曜日を表示します。<code>switch</code>文を使うことで、各曜日に対応する処理を簡潔に記述できます。<code>break</code>ステートメントを使用することで、各caseブロックの後にswitch文を終了させ、次のcaseブロックに流れ込まないようにしています。
=== 範囲を取る case ===
C++では、switch文で複数のcaseをまとめることができるため、範囲を取るような動作を実現できます。これは、いくつかの値が同じ処理を必要とする場合に便利です。
:<syntaxhighlight lang=c++>
switch (variable) {
case 1 ... 3:
std::cout << "variable は 1, 2, 3 のいずれかです。" << std::endl;
break;
case 4 ... 5:
std::cout << "variable は 4 または 5 です。" << std::endl;
break;
default:
std::cout << "variable は 1 から 5 の範囲外です。" << std::endl;
break;
}
</syntaxhighlight>
この例では、<code>variable</code>が1、2、または3の場合に同じ処理が実行され、4または5の場合に別の処理が実行されます。これにより、コードがシンプルで読みやすくなります。
=== enum と switch の組み合わせのメリット ===
列挙型(enum)とswitch文を組み合わせることで、コードの可読性と保守性が向上します。enumを使用することで、意味のある名前で値を管理でき、switch文でそれらの値に基づく処理を記述することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
enum Color { RED, GREEN, BLUE };
auto main() -> int {
Color color = GREEN;
switch (color) {
case RED:
std::cout << "赤です。" << std::endl;
break;
case GREEN:
std::cout << "緑です。" << std::endl;
break;
case BLUE:
std::cout << "青です。" << std::endl;
break;
}
return 0;
}
</syntaxhighlight>
この例では、<code>Color</code>というenum型を定義し、それを使ってswitch文で色に基づく処理を行っています。enumを使うことで、コードがより直感的で理解しやすくなり、定数を使う場合のような魔法の数字(マジックナンバー)を避けることができます。また、<code>default:</code>を'''書かない'''ことでswicthのenumに対する全称性を担保することが出来ます。
; メリット:
; 可読性の向上 :意味のある名前を使用することで、コードの意図が明確になります。
; 保守性の向上 :enumの定義を変更するだけで、関連するすべてのコードに反映できます。
; エラーの減少 :定数の値を直接使用する場合の入力ミスを防げます。
<code>switch</code>文を適切に使用することで、特定の値に基づく分岐処理を効率的に行うことができます。また、コードの可読性も向上し、保守性の高いプログラムを書くことができます。
=== if文とswitch文での初期化 ===
C++17から、<code>if</code>文や<code>switch</code>文で初期化が可能になりました。これにより、条件式内でローカル変数を宣言し、その変数を条件に基づいて利用することができます。これは、GoやRustのように、条件のスコープ内で変数を定義するスタイルに似ています。
以下にC++17での新しい機能の例を示します。
; if文での初期化
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 42;
if (int result = value * 2; result > 50) {
std::cout << "Result is greater than 50: " << result << std::endl;
} else {
std::cout << "Result is less than or equal to 50: " << result << std::endl;
}
// resultはこのスコープ外では使用できない
// std::cout << result; // エラーになる
return 0;
}
</syntaxhighlight>
: 上記の例では、<code>if</code>文の条件式で<code>result</code>というローカル変数を宣言し、<code>value * 2</code>の結果を代入しています。この変数は<code>if</code>文のブロック内でのみ有効です。
; switch文での初期化
: 同様に、<code>switch</code>文でも初期化が可能です。
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 1;
switch (int squared = value * value; squared) {
case 1:
std::cout << "Value is 1." << std::endl;
break;
case 4:
std::cout << "Value is 2." << std::endl;
break;
default:
std::cout << "Value is not 1 or 2." << std::endl;
break;
}
// squaredはこのスコープ外では使用できない
// std::cout << squared; // エラーになる
return 0;
}
</syntaxhighlight>
; まとめ
: この機能は、コードの可読性を高め、スコープを明確にするために非常に役立ちます。特に、条件分岐で使用する変数をその場で定義できるため、無駄な変数を減らすことができます。
: この新機能を活用することで、C++のプログラミングがさらに柔軟で直感的になります。
== ループ構造 ==
ループ構造は、プログラム内で同じコードを繰り返し実行するための基本的な構造です。C++では、主に<code>while</code>文、<code>do-while</code>文、<code>for</code>文を使用してループを実装します。
=== while文 ===
<code>while</code>文は、指定された条件が真の間、コードブロックを繰り返し実行するループ構造です。条件が偽になると、ループは終了します。
==== 基本構文 ====
<code>while</code>文の基本的な構文は次のとおりです。
:<syntaxhighlight lang=c++>
while (条件式) {
// 条件式が真の間、繰り返し実行されるコード
}
</syntaxhighlight>
例えば、1から10までの数値を順に表示するプログラムは次のように書けます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{1};
while (i <= 10) {
std::cout << i << std::endl;
i++;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、変数<code>i</code>が1から10までの間、<code>while</code>ループが繰り返し実行されます。各反復で<code>i</code>の値が出力され、最後に<code>i</code>がインクリメントされます。
==== 無限ループの作成 ====
条件式が常に真の場合、<code>while</code>ループは無限に繰り返されます。無限ループは、特定の条件が発生するまで繰り返し処理を行う場合に使用されます。無限ループを作成するには、条件式として<code>true</code>を指定します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
while (true) {
std::cout << "This loop will run forever." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、"This loop will run forever."というメッセージを無限に表示します。無限ループを使用する際は、ループを適切に終了する手段(例えば、<code>break</code>文)を用意することが重要です。
==== サンプルコードと解説 ====
次に、<code>while</code>文を使った実用的なサンプルコードを示します。このコードは、ユーザーからの入力を受け取り、その値が0でない限りその数値を合計していきます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (true) {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number == 0) {
break;
}
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが0を入力するまで数値の入力を受け付け、その合計を計算します。ユーザーが0を入力すると<code>break</code>文が実行され、<code>while</code>ループが終了します。最後に、合計が表示されます。
このように、<code>while</code>文を使用することで、条件に基づいて繰り返し処理を行うことができます。無限ループを適切に制御し、必要に応じてループを終了する手段を提供することが重要です。
=== do-while文 ===
<code>do-while</code>文は、少なくとも一度はループの内容を実行したい場合に使用されるループ構造です。このループは、最初の反復後に条件を評価します。
==== 基本構文 ====
<code>do-while</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
do {
// 実行されるコードブロック
} while (条件式);
</syntaxhighlight>
この構文では、<code>do</code>キーワードの後にコードブロックが続き、その後に<code>while</code>キーワードと条件式が続きます。条件式が真である限り、コードブロックが繰り返し実行されます。
==== while文との違い ====
<code>while</code>文との主な違いは、<code>do-while</code>文が最初に条件を評価せずにコードブロックを一度実行する点です。つまり、<code>do-while</code>文は少なくとも一度は必ず実行されます。一方、<code>while</code>文は条件が真の場合にのみ実行されます。
以下に、<code>while</code>文と<code>do-while</code>文の違いを示す簡単な例を示します。
<code>while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
while (i > 0) {
std::cout << "This will not be printed." << std::endl;
}
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>の値が初めから条件を満たさないため、<code>while</code>ループ内のコードは一度も実行されません。
<code>do-while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
do {
std::cout << "This will be printed once." << std::endl;
} while (i > 0);
return 0;
}
</syntaxhighlight>
この例では、条件が偽であっても、<code>do-while</code>ループ内のコードが少なくとも一度は実行されます。
==== サンプルコードと解説 ====
次に、<code>do-while</code>文の使用例を示します。このプログラムは、ユーザーから正の数値を入力させ、その数値を合計します。ユーザーが0以下の数値を入力した場合にループが終了します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter positive numbers to add to the sum. Enter 0 or a negative number to finish."
<< std::endl;
do {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
sum += number;
}
} while (number > 0);
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが正の数値を入力し続ける限り、その数値が合計に加算されます。ユーザーが0または負の数値を入力すると、ループが終了し、最終的な合計が表示されます。
このように、<code>do-while</code>文は、条件を評価する前にコードブロックを少なくとも一度実行したい場合に有効です。これは、ユーザー入力を処理する際や初期化処理を行う際によく使用されます。
=== for文 ===
<code>for</code>文は、反復回数が事前にわかっている場合に使用されるループ構造です。初期化、条件チェック、反復処理を1行で記述できるため、読みやすくコンパクトにループを表現できます。
==== 基本構文 ====
<code>for</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (初期化; 条件式; 反復処理) {
// 実行されるコードブロック
}
</syntaxhighlight>
各部分の意味は次の通りです:
; 初期化 : ループ開始前に1回だけ実行されるコード(通常はループカウンタの初期化)。
; 条件式 : 各反復の前に評価される条件式。条件式が真である限り、ループが続行されます。
; 反復処理 : 各反復の最後に実行されるコード(通常はループカウンタの更新)。
==== 無限ループの作成 ====
<code>for</code>文で無限ループを作成する場合、条件式を省略します:
:<syntaxhighlight lang=c++>
for (;;) {
// 無限に実行されるコードブロック
}
</syntaxhighlight>
この構文は条件が常に真と評価されるため、無限にループが続きます。
==== サンプルコードと解説 ====
次に、<code>for</code>文の基本的な使用例を示します。このプログラムは1から10までの数を順に表示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 1; i <= 10; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、初期化部分で<code>int i = 1</code>と宣言し、条件式で<code>i <= 10</code>を評価し、反復処理で<code>i++</code>を実行しています。ループ内のコードブロックが10回実行され、1から10までの数が表示されます。
=== 範囲for文 (range-based for loop) ===
範囲for文は、配列やコンテナなどの全要素を簡潔に反復処理するためにC++11で導入された機能です。
==== 基本構文 ====
範囲for文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (要素 : コレクション) {
// 各要素に対して実行されるコードブロック
}
</syntaxhighlight>
<code>要素</code>はコレクション内の各要素を表す変数で、<code>コレクション</code>は配列やSTLコンテナなどの反復可能なオブジェクトです。
==== 配列やコンテナでの使用例 ====
範囲for文を使用すると、配列やコンテナの全要素に対して簡潔に処理を行うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>std::vector<int></code>内の全要素を順に反復処理し、各要素を出力しています。範囲for文を使うことで、よりシンプルで読みやすいコードになります。
==== サンプルコードと解説 ====
さらに、配列を範囲for文で処理する例を示します:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[] = {10, 20, 30, 40, 50};
for (auto x : arr) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>の全要素を範囲for文で処理し、各要素を出力しています。範囲for文を使うことで、明確かつ簡潔に全要素を処理できます。
=== STL ===
STL(Standard Template Library)は、C++の標準ライブラリの一部であり、データ構造とアルゴリズムの集合です。STLは効率的かつ汎用的なプログラムを構築するための強力なツールセットを提供します。ここでは、STLの主要な要素であるコンテナとイテレーションについて説明します。
==== コンテナとイテレーション ====
STLのコンテナは、データの格納および管理を行うデータ構造です。コンテナには、配列、リスト、スタック、キュー、マップなどがあります。これらのコンテナは、データの効率的な操作とアクセスを可能にします。コンテナには主に次のような種類があります。
; シーケンスコンテナ : <code>std::vector</code>, <code>std::list</code>, <code>std::deque</code> など。これらはデータの線形順序を保持します。
; アソシエイティブコンテナ : <code>std::map</code>, <code>std::set</code>, <code>std::unordered_map</code>, <code>std::unordered_set</code> など。これらはキーと値のペアを保持し、効率的な検索をサポートします。
; コンテナアダプタ : <code>std::stack</code>, <code>std::queue</code>, <code>std::priority_queue</code> など。これらは特定の操作を効率化するためのラッパーです。
==== イテレータ ====
イテレータは、コンテナ内の要素を順にアクセスするためのオブジェクトです。イテレータは、ポインタのような振る舞いをし、特定の操作をサポートします。例えば、イテレータを使用すると、コンテナ内の要素を反復処理することができます。
以下に、<code>std::vector</code>を使用したイテレータの基本的な使用例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (auto it = numbers.begin(); it != numbers.end(); it++) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>numbers.begin()</code>はベクターの最初の要素を指すイテレータを返し、<code>numbers.end()</code>は最後の要素の次を指すイテレータを返します。<code>*it</code>はイテレータが指している要素の値を取得します。
==== その他の反復方法 ====
STLには、イテレータ以外にも様々な方法でコンテナの要素を反復処理する手段があります。以下に代表的な方法を紹介します。
===== 範囲for文 (range-based for loop) =====
C++11以降では、範囲for文を使用してコンテナの全要素を簡潔に反復処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
===== std::for_each =====
標準ライブラリのアルゴリズムの一つである<code>std::for_each</code>を使用すると、範囲指定してコンテナの要素を処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
std::for_each(numbers.begin(), numbers.end(), [](int number) {
std::cout << number << " ";
});
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ関数を使用して各要素を処理しています。<code>std::for_each</code>は、指定された範囲内の各要素に対して指定された関数を適用します。
以上が、STLのコンテナとイテレーションに関する基本的な説明です。STLを効果的に利用することで、効率的で読みやすいコードを書くことができます。
== 制御の移動 ==
プログラム内で制御の移動を行うために、C++では<code>break</code>、<code>continue</code>、<code>goto</code>などのキーワードが提供されています。これらを使うことで、ループや条件分岐などの制御構造の中で、特定の条件下で処理を中断したり、次のループに進んだりすることが可能です。
=== break文 ===
<code>break</code>文は、ループや<code>switch</code>文内で使用され、その部分の実行を中断し、ループや<code>switch</code>文を抜けるために使われます。
; ループの中断
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 3) {
break; // iが3のときループを中断
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が3のときにループが中断されます。
=== continue文 ===
<code>continue</code>文は、ループ内で使用され、その時点での処理を中断して、次の繰り返し処理に進みます。
; 次のループへのスキップ
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 2) {
continue; // iが2のとき、次の繰り返し処理へスキップ
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が2のときに<code>continue</code>が実行され、その時点の処理が中断され、次のループに進みます。
=== goto文 ===
<code>goto</code>文は、特定のラベルにジャンプするために使用されます。ただし、<code>goto</code>文はコードの可読性や保守性を低下させるため、適切に使用する必要があります。
; 基本構文
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
loop: // ラベル
if (i < 5) {
std::cout << i << " ";
i++;
goto loop; // loopにジャンプ
}
return 0;
}
</syntaxhighlight>
この例では、<code>goto</code>文を使用して<code>loop</code>というラベルにジャンプし、ループを実行しています。
== まとめ ==
=== 各制御構造の比較と使い分け ===
=== 制御構造を使った効率的なプログラミング ===
== 演習問題 ==
=== 基本的な制御構造を使ったプログラム作成 ===
=== 条件分岐やループの応用問題 ===
=== if constexprや範囲for文を使った問題 ===
{{Nav}}
[[Category:C++]]
9t2a2yc9js66bee4gtcvthxrd5wcggz
263062
263060
2024-11-05T02:37:08Z
Ef3
694
/*スコープ内初期化*/ C++17のスコープ内初期化を使って、while文を以下のように書き換えることができます。
263062
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== 制御構造の重要性 ===
制御構造はプログラミングの基本であり、プログラムの流れを制御するための枠組みです。これにより、条件に応じた処理の分岐や繰り返し処理が可能になります。制御構造を理解することは、効率的でエラーの少ないプログラムを書くための第一歩です。
C++では、豊富な制御構造が提供されています。基本的な制御構造から、C++特有の高度な機能まで幅広くカバーされています。本章では、以下の制御構造について詳しく解説します。
; 制御構造の役割
; [[#条件分岐|条件分岐]] : 特定の条件に基づいて異なる処理を実行する。
:; [[#if文|if文]] : 条件に基づいた分岐を行います。
:; [[#switch文|switch文]] : 複数の条件分岐を効率的に処理します。
; [[#ループ構造|ループ構造]] : 同じ処理を複数回実行する。
:; [[#while文|while文]] : 条件が真である間、繰り返し処理を行います。
:; [[#do-while文|do-while文]] : 最低1回は実行される繰り返し処理を行います。
:; [[#for文|for文]] : 繰り返し処理を効率的に行います。
; [[#制御の移動|制御の移動]] : プログラムの特定の部分に直接ジャンプする。
:; [[#break文|break文]] : イテレーションの中断。
:; [[#continue文|continue文]] : 次のイテレーションへのスキップ。
:; [[#goto文|goto文]] : ラベルへの移動。
; C++特有の制御構造
:; [[#if constexpr|if constexpr]] : コンパイル時に条件分岐を行うことができ、コンパイル時の最適化を支援します。C++17で導入されました。
:; [[#範囲for文 (range-based for loop)|範囲for文 (range-based for loop)]] : コンテナや配列の全要素に対して処理を行うための簡潔な方法です。C++11で導入されました。
これらの制御構造を使うことで、プログラムの可読性が向上し、効率的なコーディングが可能になります。本章では、それぞれの制御構造の使い方と注意点について具体的な例を交えて解説します。
== 条件分岐 ==
条件分岐はプログラムの制御構造の一つで、特定の条件に基づいて異なる処理を実行することができます。C++では、主に<code>if</code>文、<code>else</code>文、<code>else if</code>文を使用して条件分岐を実現します。
=== if文 ===
<code>if</code>文は、条件式が真の場合にのみブロック内のコードを実行します。
==== 基本構文 ====
:<syntaxhighlight lang=c++>
if (条件式) 文
</syntaxhighlight>
複文(ブロック <code>{ ... }</code>)も文であり、条件実行の対象が短文の場合も
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
}
</syntaxhighlight>
のようにブロックとすることが推奨され、しばしばコーディング規約で規定されます。
例えば、ある変数が10より大きいかどうかを確認するコードは次のようになります。
;コード例
:<syntaxhighlight lang=c++>
int number = 15;
if (number > 10) {
std::cout << "Number is greater than 10." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>が10より大きいので、メッセージが表示されます。
==== else節 ====
<code>else</code>節は、前の<code>if</code>の条件が偽の場合に実行されるコードブロックを定義します。
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
} else {
// 条件式が偽のときに実行されるコード
}
</syntaxhighlight>
==== else if文 ====
<code>else if</code>文は、複数の条件を順にチェックし、条件が真の場合にのみ対応するコードブロックを実行します。
: <code>else if</code> は実際には<code>else</code>節に別の<code>if</code>文をネストした形であり、便宜上 <code>else if</code> 文と呼んでいます。
:<syntaxhighlight lang=c++>
if (条件式1) {
// 条件式1が真のときに実行されるコード
} else if (条件式2) {
// 条件式2が真のときに実行されるコード
} else {
// すべての条件式が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正、負、ゼロのいずれであるかを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = -5;
if (number > 0) {
std::cout << "Number is positive." << std::endl;
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は負の数なので、"Number is negative."が表示されます。
=== ネストしたif文 ===
<code>if</code>文は他の<code>if</code>文の内部にネスト(入れ子)することができます。これにより、複雑な条件分岐を実現できます。
:<syntaxhighlight lang=c++>
if (条件式1) {
if (条件式2) {
// 条件式1および条件式2が真のときに実行されるコード
} else {
// 条件式1が真で条件式2が偽のときに実行されるコード
}
} else {
// 条件式1が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正の偶数か正の奇数かを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = 8;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else {
std::cout << "Number is not positive." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は正の偶数なので、"Number is a positive even number."が表示されます。
{{コラム|懸垂If問題|width=100%|2=C++における「懸垂else問題(Dangling else problem)」は、構文解析やコードの意図の明確化に関連する問題で、特にネストされた<code>if-else</code>文において発生します。この問題は、条件分岐が複雑になると、<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる場合に生じます。
以下のコードを見てください:
:<syntaxhighlight lang=c++>
if (condition1)
if (condition2)
// Do something
else
// Do something else
</syntaxhighlight>
この場合、<code>else</code>句が<code>condition2</code>の<code>if</code>文に対応するのか、それとも<code>condition1</code>の<code>if</code>文に対応するのかが問題になります。C++の仕様では、<code>else</code>は常に直前の<code>if</code>文に対応します。
; 正しい解釈
: 上述のコードは次のように解釈されます:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
; 問題の解決策
この問題を解決するためには、コードの意図を明確にするために中括弧 <code>{}</code> を使ってブロックを明示的に指定します。
; 明示的なブロック構造を使用
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
または、もし<code>else</code>が外側の<code>if</code>文に対応する場合は:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
}
} else {
// Do something else
}
</syntaxhighlight>
とします。
; インデントの役割
インデントはコンパイラの解釈には影響を与えませんがが、コードの可読性を向上させるために重要です。適切なインデントは、他のプログラマがコードの意図を理解しやすくするための視覚的な助けとなります。しかし、インデントだけでは問題を解決できないため、明示的なブロック構造が必要です。
; まとめ
* '''懸垂else問題'''は、ネストされた<code>if-else</code>文において<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる問題です。
* '''解決策'''は、ブロックを明示的にするために中括弧 <code>{}</code> を使用することです。これにより、<code>else</code>句がどの<code>if</code>文に対応するかが明確になります。
* '''インデント'''はコードの可読性を向上させるための視覚的ツールですが、コンパイラはインデントを無視して文法通りにコードを解釈します。
これにより、懸垂else問題を避け、より明確でメンテナブルなコードを書くことができます。
}}
=== サンプルコードと解説 ===
以下に、if文、else節、else if文、ネストしたif文を含むサンプルコードを示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、ユーザーから入力された数値が正の偶数か正の奇数か、負の数か、ゼロかを判定して適切なメッセージを表示します。
このように、<code>if</code>文、<code>else</code>文、<code>else if</code>文、およびネストした<code>if</code>文を組み合わせることで、複雑な条件分岐を実現し、プログラムの制御を柔軟に行うことができます。
=== if constexpr ===
<code>if constexpr</code>はC++17で導入された新しい条件分岐の形式で、コンパイル時に条件を評価するために使用されます。この機能は、コンパイル時に分岐を解決できるため、メタプログラミングやテンプレートプログラミングで特に有用です。
==== コンパイル時条件分岐 ====
従来の<code>if</code>文は、実行時に条件を評価しますが、<code>if constexpr</code>はコンパイル時に条件を評価します。そのため、<code>if constexpr</code>を使用することで、コンパイル時に条件に基づいたコードの最適化が可能になります。これにより、不要なコードが排除され、コンパイルエラーも未然に防ぐことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
template <typename T>
void foo(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Integer: " << value << std::endl;
} else {
// Tが整数型でない場合の処理
std::cout << "Non-integer: " << value << std::endl;
}
}
</syntaxhighlight>
==== 使用例と解説 ====
次に、<code>if constexpr</code>の具体的な使用例とその解説を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
template <typename T>
void print_type_info(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Value is an integer: " << value << std::endl;
} else if constexpr (std::is_floating_point_v<T>) {
// Tが浮動小数点型の場合の処理
std::cout << "Value is a floating-point number: " << value << std::endl;
} else {
// その他の型の場合の処理
std::cout << "Value is of an unknown type" << std::endl;
}
}
auto main() -> int {
print_type_info(42); // 整数型の場合
print_type_info(3.14); // 浮動小数点型の場合
print_type_info("Hello"); // 文字列リテラルの場合
return 0;
}
</syntaxhighlight>
上記の例では、<code>print_type_info</code>関数が異なる型の引数を受け取ります。<code>if constexpr</code>によって、引数の型に応じた処理がコンパイル時に決定されます。
* <code>std::is_integral_v<T></code>が真の場合、整数型に対する処理が実行されます。
* <code>std::is_floating_point_v<T></code>が真の場合、浮動小数点型に対する処理が実行されます。
* どちらの条件も満たさない場合は、その他の型に対する処理が実行されます。
このように、<code>if constexpr</code>を使用することで、コンパイル時に条件を評価し、最適化されたコードを生成することができます。これにより、実行時のオーバーヘッドが減り、プログラムの効率が向上します。また、コンパイル時にエラーを検出できるため、バグの発生を未然に防ぐことができます。
=== switch文 ===
switch文は、変数の値に基づいて複数の分岐を実行するための制御構造です。if文よりも分岐が多い場合や、値に応じて明確に異なる処理を行う場合に使用されます。
==== 基本構文 ====
switch文の基本構文は以下の通りです。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// variable が value1 の場合に実行されるコード
break;
case value2:
// variable が value2 の場合に実行されるコード
break;
// 必要に応じて他の case を追加
default:
// variable がいずれの case にも一致しない場合に実行されるコード
}
</syntaxhighlight>
==== caseとdefault ====
; case : それぞれのcaseキーワードは、<code>variable</code>が特定の値(<code>value1</code>、<code>value2</code>など)と一致する場合に実行されるコードを指定します。
; default : defaultキーワードは、<code>variable</code>がいずれのcaseとも一致しない場合に実行されるコードを指定します。この部分はオプションですが、全ての可能性をカバーするために使われることが多いです。
==== breakの重要性 ====
switch文内で使用される<code>break</code>ステートメントは、現在のcaseブロックの終わりを示し、switch文の外へ制御を移します。<code>break</code>がないと、次のcaseブロックに流れ込み、予期しない動作を引き起こすことがあります。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// value1 の場合の処理
break;
case value2:
// value2 の場合の処理
break;
default:
// どの case にも一致しない場合の処理
}
</syntaxhighlight>
==== サンプルコードと解説 ====
以下に具体的なサンプルコードを示します。このコードは、ユーザーの入力に基づいて曜日を表示する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int day;
std::cout << "曜日を数字で入力してください (1-7): ";
std::cin >> day;
switch (day) {
case 1:
std::cout << "月曜日" << std::endl;
break;
case 2:
std::cout << "火曜日" << std::endl;
break;
case 3:
std::cout << "水曜日" << std::endl;
break;
case 4:
std::cout << "木曜日" << std::endl;
break;
case 5:
std::cout << "金曜日" << std::endl;
break;
case 6:
std::cout << "土曜日" << std::endl;
break;
case 7:
std::cout << "日曜日" << std::endl;
break;
default:
std::cout << "無効な入力です。1から7の数字を入力してください。"
<< std::endl;
break;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーに1から7までの数字を入力させ、その数字に対応する曜日を表示します。<code>switch</code>文を使うことで、各曜日に対応する処理を簡潔に記述できます。<code>break</code>ステートメントを使用することで、各caseブロックの後にswitch文を終了させ、次のcaseブロックに流れ込まないようにしています。
=== 範囲を取る case ===
C++では、switch文で複数のcaseをまとめることができるため、範囲を取るような動作を実現できます。これは、いくつかの値が同じ処理を必要とする場合に便利です。
:<syntaxhighlight lang=c++>
switch (variable) {
case 1 ... 3:
std::cout << "variable は 1, 2, 3 のいずれかです。" << std::endl;
break;
case 4 ... 5:
std::cout << "variable は 4 または 5 です。" << std::endl;
break;
default:
std::cout << "variable は 1 から 5 の範囲外です。" << std::endl;
break;
}
</syntaxhighlight>
この例では、<code>variable</code>が1、2、または3の場合に同じ処理が実行され、4または5の場合に別の処理が実行されます。これにより、コードがシンプルで読みやすくなります。
=== enum と switch の組み合わせのメリット ===
列挙型(enum)とswitch文を組み合わせることで、コードの可読性と保守性が向上します。enumを使用することで、意味のある名前で値を管理でき、switch文でそれらの値に基づく処理を記述することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
enum Color { RED, GREEN, BLUE };
auto main() -> int {
Color color = GREEN;
switch (color) {
case RED:
std::cout << "赤です。" << std::endl;
break;
case GREEN:
std::cout << "緑です。" << std::endl;
break;
case BLUE:
std::cout << "青です。" << std::endl;
break;
}
return 0;
}
</syntaxhighlight>
この例では、<code>Color</code>というenum型を定義し、それを使ってswitch文で色に基づく処理を行っています。enumを使うことで、コードがより直感的で理解しやすくなり、定数を使う場合のような魔法の数字(マジックナンバー)を避けることができます。また、<code>default:</code>を'''書かない'''ことでswicthのenumに対する全称性を担保することが出来ます。
; メリット:
; 可読性の向上 :意味のある名前を使用することで、コードの意図が明確になります。
; 保守性の向上 :enumの定義を変更するだけで、関連するすべてのコードに反映できます。
; エラーの減少 :定数の値を直接使用する場合の入力ミスを防げます。
<code>switch</code>文を適切に使用することで、特定の値に基づく分岐処理を効率的に行うことができます。また、コードの可読性も向上し、保守性の高いプログラムを書くことができます。
=== if文とswitch文での初期化 ===
C++17から、<code>if</code>文や<code>switch</code>文で初期化が可能になりました。これにより、条件式内でローカル変数を宣言し、その変数を条件に基づいて利用することができます。これは、GoやRustのように、条件のスコープ内で変数を定義するスタイルに似ています。
以下にC++17での新しい機能の例を示します。
; if文での初期化
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 42;
if (int result = value * 2; result > 50) {
std::cout << "Result is greater than 50: " << result << std::endl;
} else {
std::cout << "Result is less than or equal to 50: " << result << std::endl;
}
// resultはこのスコープ外では使用できない
// std::cout << result; // エラーになる
return 0;
}
</syntaxhighlight>
: 上記の例では、<code>if</code>文の条件式で<code>result</code>というローカル変数を宣言し、<code>value * 2</code>の結果を代入しています。この変数は<code>if</code>文のブロック内でのみ有効です。
; switch文での初期化
: 同様に、<code>switch</code>文でも初期化が可能です。
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 1;
switch (int squared = value * value; squared) {
case 1:
std::cout << "Value is 1." << std::endl;
break;
case 4:
std::cout << "Value is 2." << std::endl;
break;
default:
std::cout << "Value is not 1 or 2." << std::endl;
break;
}
// squaredはこのスコープ外では使用できない
// std::cout << squared; // エラーになる
return 0;
}
</syntaxhighlight>
; まとめ
: この機能は、コードの可読性を高め、スコープを明確にするために非常に役立ちます。特に、条件分岐で使用する変数をその場で定義できるため、無駄な変数を減らすことができます。
: この新機能を活用することで、C++のプログラミングがさらに柔軟で直感的になります。
== ループ構造 ==
ループ構造は、プログラム内で同じコードを繰り返し実行するための基本的な構造です。C++では、主に<code>while</code>文、<code>do-while</code>文、<code>for</code>文を使用してループを実装します。
=== while文 ===
<code>while</code>文は、指定された条件が真の間、コードブロックを繰り返し実行するループ構造です。条件が偽になると、ループは終了します。
==== 基本構文 ====
<code>while</code>文の基本的な構文は次のとおりです。
:<syntaxhighlight lang=c++>
while (条件式) {
// 条件式が真の間、繰り返し実行されるコード
}
</syntaxhighlight>
例えば、1から10までの数値を順に表示するプログラムは次のように書けます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{1};
while (i <= 10) {
std::cout << i << std::endl;
i++;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、変数<code>i</code>が1から10までの間、<code>while</code>ループが繰り返し実行されます。各反復で<code>i</code>の値が出力され、最後に<code>i</code>がインクリメントされます。
==== 無限ループの作成 ====
条件式が常に真の場合、<code>while</code>ループは無限に繰り返されます。無限ループは、特定の条件が発生するまで繰り返し処理を行う場合に使用されます。無限ループを作成するには、条件式として<code>true</code>を指定します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
while (true) {
std::cout << "This loop will run forever." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、"This loop will run forever."というメッセージを無限に表示します。無限ループを使用する際は、ループを適切に終了する手段(例えば、<code>break</code>文)を用意することが重要です。
==== サンプルコードと解説 ====
次に、<code>while</code>文を使った実用的なサンプルコードを示します。このコードは、ユーザーからの入力を受け取り、その値が0でない限りその数値を合計していきます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (true) {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number == 0) {
break;
}
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが0を入力するまで数値の入力を受け付け、その合計を計算します。ユーザーが0を入力すると<code>break</code>文が実行され、<code>while</code>ループが終了します。最後に、合計が表示されます。
このように、<code>while</code>文を使用することで、条件に基づいて繰り返し処理を行うことができます。無限ループを適切に制御し、必要に応じてループを終了する手段を提供することが重要です。
==== スコープ内初期化 ====
C++17のスコープ内初期化を使って、<code>while</code>文を以下のように書き換えることができます。
:<syntaxhighlight lang=cpp>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (int number{0}; std::cout << "Enter a number: ", std::cin >> number && number != 0) {
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
; 改善点と説明
:* <code>while</code>文の初期化部分で<code>int number{0}</code>を宣言しており、この変数は<code>while</code>文のスコープ内で有効です。
:* <code>std::cout << "Enter a number: "</code>がループ条件部分で評価されることで、毎回数値入力のプロンプトが表示されます。
:* 条件部分は<code>std::cin >> number && number != 0</code>として、<code>0</code>が入力されるまでループを続けるようになっています。
=== do-while文 ===
<code>do-while</code>文は、少なくとも一度はループの内容を実行したい場合に使用されるループ構造です。このループは、最初の反復後に条件を評価します。
==== 基本構文 ====
<code>do-while</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
do {
// 実行されるコードブロック
} while (条件式);
</syntaxhighlight>
この構文では、<code>do</code>キーワードの後にコードブロックが続き、その後に<code>while</code>キーワードと条件式が続きます。条件式が真である限り、コードブロックが繰り返し実行されます。
==== while文との違い ====
<code>while</code>文との主な違いは、<code>do-while</code>文が最初に条件を評価せずにコードブロックを一度実行する点です。つまり、<code>do-while</code>文は少なくとも一度は必ず実行されます。一方、<code>while</code>文は条件が真の場合にのみ実行されます。
以下に、<code>while</code>文と<code>do-while</code>文の違いを示す簡単な例を示します。
<code>while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
while (i > 0) {
std::cout << "This will not be printed." << std::endl;
}
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>の値が初めから条件を満たさないため、<code>while</code>ループ内のコードは一度も実行されません。
<code>do-while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
do {
std::cout << "This will be printed once." << std::endl;
} while (i > 0);
return 0;
}
</syntaxhighlight>
この例では、条件が偽であっても、<code>do-while</code>ループ内のコードが少なくとも一度は実行されます。
==== サンプルコードと解説 ====
次に、<code>do-while</code>文の使用例を示します。このプログラムは、ユーザーから正の数値を入力させ、その数値を合計します。ユーザーが0以下の数値を入力した場合にループが終了します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter positive numbers to add to the sum. Enter 0 or a negative number to finish."
<< std::endl;
do {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
sum += number;
}
} while (number > 0);
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが正の数値を入力し続ける限り、その数値が合計に加算されます。ユーザーが0または負の数値を入力すると、ループが終了し、最終的な合計が表示されます。
このように、<code>do-while</code>文は、条件を評価する前にコードブロックを少なくとも一度実行したい場合に有効です。これは、ユーザー入力を処理する際や初期化処理を行う際によく使用されます。
=== for文 ===
<code>for</code>文は、反復回数が事前にわかっている場合に使用されるループ構造です。初期化、条件チェック、反復処理を1行で記述できるため、読みやすくコンパクトにループを表現できます。
==== 基本構文 ====
<code>for</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (初期化; 条件式; 反復処理) {
// 実行されるコードブロック
}
</syntaxhighlight>
各部分の意味は次の通りです:
; 初期化 : ループ開始前に1回だけ実行されるコード(通常はループカウンタの初期化)。
; 条件式 : 各反復の前に評価される条件式。条件式が真である限り、ループが続行されます。
; 反復処理 : 各反復の最後に実行されるコード(通常はループカウンタの更新)。
==== 無限ループの作成 ====
<code>for</code>文で無限ループを作成する場合、条件式を省略します:
:<syntaxhighlight lang=c++>
for (;;) {
// 無限に実行されるコードブロック
}
</syntaxhighlight>
この構文は条件が常に真と評価されるため、無限にループが続きます。
==== サンプルコードと解説 ====
次に、<code>for</code>文の基本的な使用例を示します。このプログラムは1から10までの数を順に表示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 1; i <= 10; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、初期化部分で<code>int i = 1</code>と宣言し、条件式で<code>i <= 10</code>を評価し、反復処理で<code>i++</code>を実行しています。ループ内のコードブロックが10回実行され、1から10までの数が表示されます。
=== 範囲for文 (range-based for loop) ===
範囲for文は、配列やコンテナなどの全要素を簡潔に反復処理するためにC++11で導入された機能です。
==== 基本構文 ====
範囲for文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (要素 : コレクション) {
// 各要素に対して実行されるコードブロック
}
</syntaxhighlight>
<code>要素</code>はコレクション内の各要素を表す変数で、<code>コレクション</code>は配列やSTLコンテナなどの反復可能なオブジェクトです。
==== 配列やコンテナでの使用例 ====
範囲for文を使用すると、配列やコンテナの全要素に対して簡潔に処理を行うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>std::vector<int></code>内の全要素を順に反復処理し、各要素を出力しています。範囲for文を使うことで、よりシンプルで読みやすいコードになります。
==== サンプルコードと解説 ====
さらに、配列を範囲for文で処理する例を示します:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[] = {10, 20, 30, 40, 50};
for (auto x : arr) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>の全要素を範囲for文で処理し、各要素を出力しています。範囲for文を使うことで、明確かつ簡潔に全要素を処理できます。
=== STL ===
STL(Standard Template Library)は、C++の標準ライブラリの一部であり、データ構造とアルゴリズムの集合です。STLは効率的かつ汎用的なプログラムを構築するための強力なツールセットを提供します。ここでは、STLの主要な要素であるコンテナとイテレーションについて説明します。
==== コンテナとイテレーション ====
STLのコンテナは、データの格納および管理を行うデータ構造です。コンテナには、配列、リスト、スタック、キュー、マップなどがあります。これらのコンテナは、データの効率的な操作とアクセスを可能にします。コンテナには主に次のような種類があります。
; シーケンスコンテナ : <code>std::vector</code>, <code>std::list</code>, <code>std::deque</code> など。これらはデータの線形順序を保持します。
; アソシエイティブコンテナ : <code>std::map</code>, <code>std::set</code>, <code>std::unordered_map</code>, <code>std::unordered_set</code> など。これらはキーと値のペアを保持し、効率的な検索をサポートします。
; コンテナアダプタ : <code>std::stack</code>, <code>std::queue</code>, <code>std::priority_queue</code> など。これらは特定の操作を効率化するためのラッパーです。
==== イテレータ ====
イテレータは、コンテナ内の要素を順にアクセスするためのオブジェクトです。イテレータは、ポインタのような振る舞いをし、特定の操作をサポートします。例えば、イテレータを使用すると、コンテナ内の要素を反復処理することができます。
以下に、<code>std::vector</code>を使用したイテレータの基本的な使用例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (auto it = numbers.begin(); it != numbers.end(); it++) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>numbers.begin()</code>はベクターの最初の要素を指すイテレータを返し、<code>numbers.end()</code>は最後の要素の次を指すイテレータを返します。<code>*it</code>はイテレータが指している要素の値を取得します。
==== その他の反復方法 ====
STLには、イテレータ以外にも様々な方法でコンテナの要素を反復処理する手段があります。以下に代表的な方法を紹介します。
===== 範囲for文 (range-based for loop) =====
C++11以降では、範囲for文を使用してコンテナの全要素を簡潔に反復処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
===== std::for_each =====
標準ライブラリのアルゴリズムの一つである<code>std::for_each</code>を使用すると、範囲指定してコンテナの要素を処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
std::for_each(numbers.begin(), numbers.end(), [](int number) {
std::cout << number << " ";
});
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ関数を使用して各要素を処理しています。<code>std::for_each</code>は、指定された範囲内の各要素に対して指定された関数を適用します。
以上が、STLのコンテナとイテレーションに関する基本的な説明です。STLを効果的に利用することで、効率的で読みやすいコードを書くことができます。
== 制御の移動 ==
プログラム内で制御の移動を行うために、C++では<code>break</code>、<code>continue</code>、<code>goto</code>などのキーワードが提供されています。これらを使うことで、ループや条件分岐などの制御構造の中で、特定の条件下で処理を中断したり、次のループに進んだりすることが可能です。
=== break文 ===
<code>break</code>文は、ループや<code>switch</code>文内で使用され、その部分の実行を中断し、ループや<code>switch</code>文を抜けるために使われます。
; ループの中断
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 3) {
break; // iが3のときループを中断
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が3のときにループが中断されます。
=== continue文 ===
<code>continue</code>文は、ループ内で使用され、その時点での処理を中断して、次の繰り返し処理に進みます。
; 次のループへのスキップ
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 2) {
continue; // iが2のとき、次の繰り返し処理へスキップ
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が2のときに<code>continue</code>が実行され、その時点の処理が中断され、次のループに進みます。
=== goto文 ===
<code>goto</code>文は、特定のラベルにジャンプするために使用されます。ただし、<code>goto</code>文はコードの可読性や保守性を低下させるため、適切に使用する必要があります。
; 基本構文
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
loop: // ラベル
if (i < 5) {
std::cout << i << " ";
i++;
goto loop; // loopにジャンプ
}
return 0;
}
</syntaxhighlight>
この例では、<code>goto</code>文を使用して<code>loop</code>というラベルにジャンプし、ループを実行しています。
== まとめ ==
=== 各制御構造の比較と使い分け ===
=== 制御構造を使った効率的なプログラミング ===
== 演習問題 ==
=== 基本的な制御構造を使ったプログラム作成 ===
=== 条件分岐やループの応用問題 ===
=== if constexprや範囲for文を使った問題 ===
{{Nav}}
[[Category:C++]]
7sdsgf944257awnptn46bon09d3x11d
263063
263062
2024-11-05T02:45:31Z
Ef3
694
/* まとめ */ 範囲for文を含め、C++の各制御構造について理解することは、効率的で読みやすいコードを書くために非常に重要です。以下は、制御構造の使い分けと効率的なプログラミングのためのガイドです。
263063
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== 制御構造の重要性 ===
制御構造はプログラミングの基本であり、プログラムの流れを制御するための枠組みです。これにより、条件に応じた処理の分岐や繰り返し処理が可能になります。制御構造を理解することは、効率的でエラーの少ないプログラムを書くための第一歩です。
C++では、豊富な制御構造が提供されています。基本的な制御構造から、C++特有の高度な機能まで幅広くカバーされています。本章では、以下の制御構造について詳しく解説します。
; 制御構造の役割
; [[#条件分岐|条件分岐]] : 特定の条件に基づいて異なる処理を実行する。
:; [[#if文|if文]] : 条件に基づいた分岐を行います。
:; [[#switch文|switch文]] : 複数の条件分岐を効率的に処理します。
; [[#ループ構造|ループ構造]] : 同じ処理を複数回実行する。
:; [[#while文|while文]] : 条件が真である間、繰り返し処理を行います。
:; [[#do-while文|do-while文]] : 最低1回は実行される繰り返し処理を行います。
:; [[#for文|for文]] : 繰り返し処理を効率的に行います。
; [[#制御の移動|制御の移動]] : プログラムの特定の部分に直接ジャンプする。
:; [[#break文|break文]] : イテレーションの中断。
:; [[#continue文|continue文]] : 次のイテレーションへのスキップ。
:; [[#goto文|goto文]] : ラベルへの移動。
; C++特有の制御構造
:; [[#if constexpr|if constexpr]] : コンパイル時に条件分岐を行うことができ、コンパイル時の最適化を支援します。C++17で導入されました。
:; [[#範囲for文 (range-based for loop)|範囲for文 (range-based for loop)]] : コンテナや配列の全要素に対して処理を行うための簡潔な方法です。C++11で導入されました。
これらの制御構造を使うことで、プログラムの可読性が向上し、効率的なコーディングが可能になります。本章では、それぞれの制御構造の使い方と注意点について具体的な例を交えて解説します。
== 条件分岐 ==
条件分岐はプログラムの制御構造の一つで、特定の条件に基づいて異なる処理を実行することができます。C++では、主に<code>if</code>文、<code>else</code>文、<code>else if</code>文を使用して条件分岐を実現します。
=== if文 ===
<code>if</code>文は、条件式が真の場合にのみブロック内のコードを実行します。
==== 基本構文 ====
:<syntaxhighlight lang=c++>
if (条件式) 文
</syntaxhighlight>
複文(ブロック <code>{ ... }</code>)も文であり、条件実行の対象が短文の場合も
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
}
</syntaxhighlight>
のようにブロックとすることが推奨され、しばしばコーディング規約で規定されます。
例えば、ある変数が10より大きいかどうかを確認するコードは次のようになります。
;コード例
:<syntaxhighlight lang=c++>
int number = 15;
if (number > 10) {
std::cout << "Number is greater than 10." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>が10より大きいので、メッセージが表示されます。
==== else節 ====
<code>else</code>節は、前の<code>if</code>の条件が偽の場合に実行されるコードブロックを定義します。
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
} else {
// 条件式が偽のときに実行されるコード
}
</syntaxhighlight>
==== else if文 ====
<code>else if</code>文は、複数の条件を順にチェックし、条件が真の場合にのみ対応するコードブロックを実行します。
: <code>else if</code> は実際には<code>else</code>節に別の<code>if</code>文をネストした形であり、便宜上 <code>else if</code> 文と呼んでいます。
:<syntaxhighlight lang=c++>
if (条件式1) {
// 条件式1が真のときに実行されるコード
} else if (条件式2) {
// 条件式2が真のときに実行されるコード
} else {
// すべての条件式が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正、負、ゼロのいずれであるかを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = -5;
if (number > 0) {
std::cout << "Number is positive." << std::endl;
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は負の数なので、"Number is negative."が表示されます。
=== ネストしたif文 ===
<code>if</code>文は他の<code>if</code>文の内部にネスト(入れ子)することができます。これにより、複雑な条件分岐を実現できます。
:<syntaxhighlight lang=c++>
if (条件式1) {
if (条件式2) {
// 条件式1および条件式2が真のときに実行されるコード
} else {
// 条件式1が真で条件式2が偽のときに実行されるコード
}
} else {
// 条件式1が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正の偶数か正の奇数かを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = 8;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else {
std::cout << "Number is not positive." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は正の偶数なので、"Number is a positive even number."が表示されます。
{{コラム|懸垂If問題|width=100%|2=C++における「懸垂else問題(Dangling else problem)」は、構文解析やコードの意図の明確化に関連する問題で、特にネストされた<code>if-else</code>文において発生します。この問題は、条件分岐が複雑になると、<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる場合に生じます。
以下のコードを見てください:
:<syntaxhighlight lang=c++>
if (condition1)
if (condition2)
// Do something
else
// Do something else
</syntaxhighlight>
この場合、<code>else</code>句が<code>condition2</code>の<code>if</code>文に対応するのか、それとも<code>condition1</code>の<code>if</code>文に対応するのかが問題になります。C++の仕様では、<code>else</code>は常に直前の<code>if</code>文に対応します。
; 正しい解釈
: 上述のコードは次のように解釈されます:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
; 問題の解決策
この問題を解決するためには、コードの意図を明確にするために中括弧 <code>{}</code> を使ってブロックを明示的に指定します。
; 明示的なブロック構造を使用
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
または、もし<code>else</code>が外側の<code>if</code>文に対応する場合は:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
}
} else {
// Do something else
}
</syntaxhighlight>
とします。
; インデントの役割
インデントはコンパイラの解釈には影響を与えませんがが、コードの可読性を向上させるために重要です。適切なインデントは、他のプログラマがコードの意図を理解しやすくするための視覚的な助けとなります。しかし、インデントだけでは問題を解決できないため、明示的なブロック構造が必要です。
; まとめ
* '''懸垂else問題'''は、ネストされた<code>if-else</code>文において<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる問題です。
* '''解決策'''は、ブロックを明示的にするために中括弧 <code>{}</code> を使用することです。これにより、<code>else</code>句がどの<code>if</code>文に対応するかが明確になります。
* '''インデント'''はコードの可読性を向上させるための視覚的ツールですが、コンパイラはインデントを無視して文法通りにコードを解釈します。
これにより、懸垂else問題を避け、より明確でメンテナブルなコードを書くことができます。
}}
=== サンプルコードと解説 ===
以下に、if文、else節、else if文、ネストしたif文を含むサンプルコードを示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、ユーザーから入力された数値が正の偶数か正の奇数か、負の数か、ゼロかを判定して適切なメッセージを表示します。
このように、<code>if</code>文、<code>else</code>文、<code>else if</code>文、およびネストした<code>if</code>文を組み合わせることで、複雑な条件分岐を実現し、プログラムの制御を柔軟に行うことができます。
=== if constexpr ===
<code>if constexpr</code>はC++17で導入された新しい条件分岐の形式で、コンパイル時に条件を評価するために使用されます。この機能は、コンパイル時に分岐を解決できるため、メタプログラミングやテンプレートプログラミングで特に有用です。
==== コンパイル時条件分岐 ====
従来の<code>if</code>文は、実行時に条件を評価しますが、<code>if constexpr</code>はコンパイル時に条件を評価します。そのため、<code>if constexpr</code>を使用することで、コンパイル時に条件に基づいたコードの最適化が可能になります。これにより、不要なコードが排除され、コンパイルエラーも未然に防ぐことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
template <typename T>
void foo(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Integer: " << value << std::endl;
} else {
// Tが整数型でない場合の処理
std::cout << "Non-integer: " << value << std::endl;
}
}
</syntaxhighlight>
==== 使用例と解説 ====
次に、<code>if constexpr</code>の具体的な使用例とその解説を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
template <typename T>
void print_type_info(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Value is an integer: " << value << std::endl;
} else if constexpr (std::is_floating_point_v<T>) {
// Tが浮動小数点型の場合の処理
std::cout << "Value is a floating-point number: " << value << std::endl;
} else {
// その他の型の場合の処理
std::cout << "Value is of an unknown type" << std::endl;
}
}
auto main() -> int {
print_type_info(42); // 整数型の場合
print_type_info(3.14); // 浮動小数点型の場合
print_type_info("Hello"); // 文字列リテラルの場合
return 0;
}
</syntaxhighlight>
上記の例では、<code>print_type_info</code>関数が異なる型の引数を受け取ります。<code>if constexpr</code>によって、引数の型に応じた処理がコンパイル時に決定されます。
* <code>std::is_integral_v<T></code>が真の場合、整数型に対する処理が実行されます。
* <code>std::is_floating_point_v<T></code>が真の場合、浮動小数点型に対する処理が実行されます。
* どちらの条件も満たさない場合は、その他の型に対する処理が実行されます。
このように、<code>if constexpr</code>を使用することで、コンパイル時に条件を評価し、最適化されたコードを生成することができます。これにより、実行時のオーバーヘッドが減り、プログラムの効率が向上します。また、コンパイル時にエラーを検出できるため、バグの発生を未然に防ぐことができます。
=== switch文 ===
switch文は、変数の値に基づいて複数の分岐を実行するための制御構造です。if文よりも分岐が多い場合や、値に応じて明確に異なる処理を行う場合に使用されます。
==== 基本構文 ====
switch文の基本構文は以下の通りです。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// variable が value1 の場合に実行されるコード
break;
case value2:
// variable が value2 の場合に実行されるコード
break;
// 必要に応じて他の case を追加
default:
// variable がいずれの case にも一致しない場合に実行されるコード
}
</syntaxhighlight>
==== caseとdefault ====
; case : それぞれのcaseキーワードは、<code>variable</code>が特定の値(<code>value1</code>、<code>value2</code>など)と一致する場合に実行されるコードを指定します。
; default : defaultキーワードは、<code>variable</code>がいずれのcaseとも一致しない場合に実行されるコードを指定します。この部分はオプションですが、全ての可能性をカバーするために使われることが多いです。
==== breakの重要性 ====
switch文内で使用される<code>break</code>ステートメントは、現在のcaseブロックの終わりを示し、switch文の外へ制御を移します。<code>break</code>がないと、次のcaseブロックに流れ込み、予期しない動作を引き起こすことがあります。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// value1 の場合の処理
break;
case value2:
// value2 の場合の処理
break;
default:
// どの case にも一致しない場合の処理
}
</syntaxhighlight>
==== サンプルコードと解説 ====
以下に具体的なサンプルコードを示します。このコードは、ユーザーの入力に基づいて曜日を表示する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int day;
std::cout << "曜日を数字で入力してください (1-7): ";
std::cin >> day;
switch (day) {
case 1:
std::cout << "月曜日" << std::endl;
break;
case 2:
std::cout << "火曜日" << std::endl;
break;
case 3:
std::cout << "水曜日" << std::endl;
break;
case 4:
std::cout << "木曜日" << std::endl;
break;
case 5:
std::cout << "金曜日" << std::endl;
break;
case 6:
std::cout << "土曜日" << std::endl;
break;
case 7:
std::cout << "日曜日" << std::endl;
break;
default:
std::cout << "無効な入力です。1から7の数字を入力してください。"
<< std::endl;
break;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーに1から7までの数字を入力させ、その数字に対応する曜日を表示します。<code>switch</code>文を使うことで、各曜日に対応する処理を簡潔に記述できます。<code>break</code>ステートメントを使用することで、各caseブロックの後にswitch文を終了させ、次のcaseブロックに流れ込まないようにしています。
=== 範囲を取る case ===
C++では、switch文で複数のcaseをまとめることができるため、範囲を取るような動作を実現できます。これは、いくつかの値が同じ処理を必要とする場合に便利です。
:<syntaxhighlight lang=c++>
switch (variable) {
case 1 ... 3:
std::cout << "variable は 1, 2, 3 のいずれかです。" << std::endl;
break;
case 4 ... 5:
std::cout << "variable は 4 または 5 です。" << std::endl;
break;
default:
std::cout << "variable は 1 から 5 の範囲外です。" << std::endl;
break;
}
</syntaxhighlight>
この例では、<code>variable</code>が1、2、または3の場合に同じ処理が実行され、4または5の場合に別の処理が実行されます。これにより、コードがシンプルで読みやすくなります。
=== enum と switch の組み合わせのメリット ===
列挙型(enum)とswitch文を組み合わせることで、コードの可読性と保守性が向上します。enumを使用することで、意味のある名前で値を管理でき、switch文でそれらの値に基づく処理を記述することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
enum Color { RED, GREEN, BLUE };
auto main() -> int {
Color color = GREEN;
switch (color) {
case RED:
std::cout << "赤です。" << std::endl;
break;
case GREEN:
std::cout << "緑です。" << std::endl;
break;
case BLUE:
std::cout << "青です。" << std::endl;
break;
}
return 0;
}
</syntaxhighlight>
この例では、<code>Color</code>というenum型を定義し、それを使ってswitch文で色に基づく処理を行っています。enumを使うことで、コードがより直感的で理解しやすくなり、定数を使う場合のような魔法の数字(マジックナンバー)を避けることができます。また、<code>default:</code>を'''書かない'''ことでswicthのenumに対する全称性を担保することが出来ます。
; メリット:
; 可読性の向上 :意味のある名前を使用することで、コードの意図が明確になります。
; 保守性の向上 :enumの定義を変更するだけで、関連するすべてのコードに反映できます。
; エラーの減少 :定数の値を直接使用する場合の入力ミスを防げます。
<code>switch</code>文を適切に使用することで、特定の値に基づく分岐処理を効率的に行うことができます。また、コードの可読性も向上し、保守性の高いプログラムを書くことができます。
=== if文とswitch文での初期化 ===
C++17から、<code>if</code>文や<code>switch</code>文で初期化が可能になりました。これにより、条件式内でローカル変数を宣言し、その変数を条件に基づいて利用することができます。これは、GoやRustのように、条件のスコープ内で変数を定義するスタイルに似ています。
以下にC++17での新しい機能の例を示します。
; if文での初期化
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 42;
if (int result = value * 2; result > 50) {
std::cout << "Result is greater than 50: " << result << std::endl;
} else {
std::cout << "Result is less than or equal to 50: " << result << std::endl;
}
// resultはこのスコープ外では使用できない
// std::cout << result; // エラーになる
return 0;
}
</syntaxhighlight>
: 上記の例では、<code>if</code>文の条件式で<code>result</code>というローカル変数を宣言し、<code>value * 2</code>の結果を代入しています。この変数は<code>if</code>文のブロック内でのみ有効です。
; switch文での初期化
: 同様に、<code>switch</code>文でも初期化が可能です。
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 1;
switch (int squared = value * value; squared) {
case 1:
std::cout << "Value is 1." << std::endl;
break;
case 4:
std::cout << "Value is 2." << std::endl;
break;
default:
std::cout << "Value is not 1 or 2." << std::endl;
break;
}
// squaredはこのスコープ外では使用できない
// std::cout << squared; // エラーになる
return 0;
}
</syntaxhighlight>
; まとめ
: この機能は、コードの可読性を高め、スコープを明確にするために非常に役立ちます。特に、条件分岐で使用する変数をその場で定義できるため、無駄な変数を減らすことができます。
: この新機能を活用することで、C++のプログラミングがさらに柔軟で直感的になります。
== ループ構造 ==
ループ構造は、プログラム内で同じコードを繰り返し実行するための基本的な構造です。C++では、主に<code>while</code>文、<code>do-while</code>文、<code>for</code>文を使用してループを実装します。
=== while文 ===
<code>while</code>文は、指定された条件が真の間、コードブロックを繰り返し実行するループ構造です。条件が偽になると、ループは終了します。
==== 基本構文 ====
<code>while</code>文の基本的な構文は次のとおりです。
:<syntaxhighlight lang=c++>
while (条件式) {
// 条件式が真の間、繰り返し実行されるコード
}
</syntaxhighlight>
例えば、1から10までの数値を順に表示するプログラムは次のように書けます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{1};
while (i <= 10) {
std::cout << i << std::endl;
i++;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、変数<code>i</code>が1から10までの間、<code>while</code>ループが繰り返し実行されます。各反復で<code>i</code>の値が出力され、最後に<code>i</code>がインクリメントされます。
==== 無限ループの作成 ====
条件式が常に真の場合、<code>while</code>ループは無限に繰り返されます。無限ループは、特定の条件が発生するまで繰り返し処理を行う場合に使用されます。無限ループを作成するには、条件式として<code>true</code>を指定します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
while (true) {
std::cout << "This loop will run forever." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、"This loop will run forever."というメッセージを無限に表示します。無限ループを使用する際は、ループを適切に終了する手段(例えば、<code>break</code>文)を用意することが重要です。
==== サンプルコードと解説 ====
次に、<code>while</code>文を使った実用的なサンプルコードを示します。このコードは、ユーザーからの入力を受け取り、その値が0でない限りその数値を合計していきます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (true) {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number == 0) {
break;
}
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが0を入力するまで数値の入力を受け付け、その合計を計算します。ユーザーが0を入力すると<code>break</code>文が実行され、<code>while</code>ループが終了します。最後に、合計が表示されます。
このように、<code>while</code>文を使用することで、条件に基づいて繰り返し処理を行うことができます。無限ループを適切に制御し、必要に応じてループを終了する手段を提供することが重要です。
==== スコープ内初期化 ====
C++17のスコープ内初期化を使って、<code>while</code>文を以下のように書き換えることができます。
:<syntaxhighlight lang=cpp>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (int number{0}; std::cout << "Enter a number: ", std::cin >> number && number != 0) {
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
; 改善点と説明
:* <code>while</code>文の初期化部分で<code>int number{0}</code>を宣言しており、この変数は<code>while</code>文のスコープ内で有効です。
:* <code>std::cout << "Enter a number: "</code>がループ条件部分で評価されることで、毎回数値入力のプロンプトが表示されます。
:* 条件部分は<code>std::cin >> number && number != 0</code>として、<code>0</code>が入力されるまでループを続けるようになっています。
=== do-while文 ===
<code>do-while</code>文は、少なくとも一度はループの内容を実行したい場合に使用されるループ構造です。このループは、最初の反復後に条件を評価します。
==== 基本構文 ====
<code>do-while</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
do {
// 実行されるコードブロック
} while (条件式);
</syntaxhighlight>
この構文では、<code>do</code>キーワードの後にコードブロックが続き、その後に<code>while</code>キーワードと条件式が続きます。条件式が真である限り、コードブロックが繰り返し実行されます。
==== while文との違い ====
<code>while</code>文との主な違いは、<code>do-while</code>文が最初に条件を評価せずにコードブロックを一度実行する点です。つまり、<code>do-while</code>文は少なくとも一度は必ず実行されます。一方、<code>while</code>文は条件が真の場合にのみ実行されます。
以下に、<code>while</code>文と<code>do-while</code>文の違いを示す簡単な例を示します。
<code>while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
while (i > 0) {
std::cout << "This will not be printed." << std::endl;
}
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>の値が初めから条件を満たさないため、<code>while</code>ループ内のコードは一度も実行されません。
<code>do-while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
do {
std::cout << "This will be printed once." << std::endl;
} while (i > 0);
return 0;
}
</syntaxhighlight>
この例では、条件が偽であっても、<code>do-while</code>ループ内のコードが少なくとも一度は実行されます。
==== サンプルコードと解説 ====
次に、<code>do-while</code>文の使用例を示します。このプログラムは、ユーザーから正の数値を入力させ、その数値を合計します。ユーザーが0以下の数値を入力した場合にループが終了します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter positive numbers to add to the sum. Enter 0 or a negative number to finish."
<< std::endl;
do {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
sum += number;
}
} while (number > 0);
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが正の数値を入力し続ける限り、その数値が合計に加算されます。ユーザーが0または負の数値を入力すると、ループが終了し、最終的な合計が表示されます。
このように、<code>do-while</code>文は、条件を評価する前にコードブロックを少なくとも一度実行したい場合に有効です。これは、ユーザー入力を処理する際や初期化処理を行う際によく使用されます。
=== for文 ===
<code>for</code>文は、反復回数が事前にわかっている場合に使用されるループ構造です。初期化、条件チェック、反復処理を1行で記述できるため、読みやすくコンパクトにループを表現できます。
==== 基本構文 ====
<code>for</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (初期化; 条件式; 反復処理) {
// 実行されるコードブロック
}
</syntaxhighlight>
各部分の意味は次の通りです:
; 初期化 : ループ開始前に1回だけ実行されるコード(通常はループカウンタの初期化)。
; 条件式 : 各反復の前に評価される条件式。条件式が真である限り、ループが続行されます。
; 反復処理 : 各反復の最後に実行されるコード(通常はループカウンタの更新)。
==== 無限ループの作成 ====
<code>for</code>文で無限ループを作成する場合、条件式を省略します:
:<syntaxhighlight lang=c++>
for (;;) {
// 無限に実行されるコードブロック
}
</syntaxhighlight>
この構文は条件が常に真と評価されるため、無限にループが続きます。
==== サンプルコードと解説 ====
次に、<code>for</code>文の基本的な使用例を示します。このプログラムは1から10までの数を順に表示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 1; i <= 10; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、初期化部分で<code>int i = 1</code>と宣言し、条件式で<code>i <= 10</code>を評価し、反復処理で<code>i++</code>を実行しています。ループ内のコードブロックが10回実行され、1から10までの数が表示されます。
=== 範囲for文 (range-based for loop) ===
範囲for文は、配列やコンテナなどの全要素を簡潔に反復処理するためにC++11で導入された機能です。
==== 基本構文 ====
範囲for文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (要素 : コレクション) {
// 各要素に対して実行されるコードブロック
}
</syntaxhighlight>
<code>要素</code>はコレクション内の各要素を表す変数で、<code>コレクション</code>は配列やSTLコンテナなどの反復可能なオブジェクトです。
==== 配列やコンテナでの使用例 ====
範囲for文を使用すると、配列やコンテナの全要素に対して簡潔に処理を行うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>std::vector<int></code>内の全要素を順に反復処理し、各要素を出力しています。範囲for文を使うことで、よりシンプルで読みやすいコードになります。
==== サンプルコードと解説 ====
さらに、配列を範囲for文で処理する例を示します:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[] = {10, 20, 30, 40, 50};
for (auto x : arr) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>の全要素を範囲for文で処理し、各要素を出力しています。範囲for文を使うことで、明確かつ簡潔に全要素を処理できます。
=== STL ===
STL(Standard Template Library)は、C++の標準ライブラリの一部であり、データ構造とアルゴリズムの集合です。STLは効率的かつ汎用的なプログラムを構築するための強力なツールセットを提供します。ここでは、STLの主要な要素であるコンテナとイテレーションについて説明します。
==== コンテナとイテレーション ====
STLのコンテナは、データの格納および管理を行うデータ構造です。コンテナには、配列、リスト、スタック、キュー、マップなどがあります。これらのコンテナは、データの効率的な操作とアクセスを可能にします。コンテナには主に次のような種類があります。
; シーケンスコンテナ : <code>std::vector</code>, <code>std::list</code>, <code>std::deque</code> など。これらはデータの線形順序を保持します。
; アソシエイティブコンテナ : <code>std::map</code>, <code>std::set</code>, <code>std::unordered_map</code>, <code>std::unordered_set</code> など。これらはキーと値のペアを保持し、効率的な検索をサポートします。
; コンテナアダプタ : <code>std::stack</code>, <code>std::queue</code>, <code>std::priority_queue</code> など。これらは特定の操作を効率化するためのラッパーです。
==== イテレータ ====
イテレータは、コンテナ内の要素を順にアクセスするためのオブジェクトです。イテレータは、ポインタのような振る舞いをし、特定の操作をサポートします。例えば、イテレータを使用すると、コンテナ内の要素を反復処理することができます。
以下に、<code>std::vector</code>を使用したイテレータの基本的な使用例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (auto it = numbers.begin(); it != numbers.end(); it++) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>numbers.begin()</code>はベクターの最初の要素を指すイテレータを返し、<code>numbers.end()</code>は最後の要素の次を指すイテレータを返します。<code>*it</code>はイテレータが指している要素の値を取得します。
==== その他の反復方法 ====
STLには、イテレータ以外にも様々な方法でコンテナの要素を反復処理する手段があります。以下に代表的な方法を紹介します。
===== 範囲for文 (range-based for loop) =====
C++11以降では、範囲for文を使用してコンテナの全要素を簡潔に反復処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
===== std::for_each =====
標準ライブラリのアルゴリズムの一つである<code>std::for_each</code>を使用すると、範囲指定してコンテナの要素を処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
std::for_each(numbers.begin(), numbers.end(), [](int number) {
std::cout << number << " ";
});
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ関数を使用して各要素を処理しています。<code>std::for_each</code>は、指定された範囲内の各要素に対して指定された関数を適用します。
以上が、STLのコンテナとイテレーションに関する基本的な説明です。STLを効果的に利用することで、効率的で読みやすいコードを書くことができます。
== 制御の移動 ==
プログラム内で制御の移動を行うために、C++では<code>break</code>、<code>continue</code>、<code>goto</code>などのキーワードが提供されています。これらを使うことで、ループや条件分岐などの制御構造の中で、特定の条件下で処理を中断したり、次のループに進んだりすることが可能です。
=== break文 ===
<code>break</code>文は、ループや<code>switch</code>文内で使用され、その部分の実行を中断し、ループや<code>switch</code>文を抜けるために使われます。
; ループの中断
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 3) {
break; // iが3のときループを中断
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が3のときにループが中断されます。
=== continue文 ===
<code>continue</code>文は、ループ内で使用され、その時点での処理を中断して、次の繰り返し処理に進みます。
; 次のループへのスキップ
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 2) {
continue; // iが2のとき、次の繰り返し処理へスキップ
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が2のときに<code>continue</code>が実行され、その時点の処理が中断され、次のループに進みます。
=== goto文 ===
<code>goto</code>文は、特定のラベルにジャンプするために使用されます。ただし、<code>goto</code>文はコードの可読性や保守性を低下させるため、適切に使用する必要があります。
; 基本構文
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
loop: // ラベル
if (i < 5) {
std::cout << i << " ";
i++;
goto loop; // loopにジャンプ
}
return 0;
}
</syntaxhighlight>
この例では、<code>goto</code>文を使用して<code>loop</code>というラベルにジャンプし、ループを実行しています。
== まとめ ==
範囲for文を含め、C++の各制御構造について理解することは、効率的で読みやすいコードを書くために非常に重要です。以下は、制御構造の使い分けと効率的なプログラミングのためのガイドです。
=== 各制御構造の比較と使い分け ===
C++では、複数の制御構造が提供されており、それぞれの用途やメリットが異なります。
* '''while文''': 条件が真である間繰り返す処理に適しています。ループの反復回数が事前に決まっていない場合に使うと効果的です。
* '''do-while文''': 少なくとも1回はループを実行したい場合に適しています。条件判定が後置されているため、最初の実行を保証します。
* '''for文''': 明確な初期化、条件、更新を一つの構文で記述でき、カウンタを使用した反復に適しています。ループの回数が決まっている場合に使うと良いでしょう。
* '''範囲for文''': 配列やコンテナの全要素を簡潔に反復処理する場合に便利です。読みやすく、ミスを減らすことができます。C++20以降では、初期化付きの範囲for文も利用でき、スコープの限定に役立ちます。
=== 制御構造を使った効率的なプログラミング ===
効率的なプログラミングのためには、適切な制御構造を選ぶことが重要です。以下のポイントを考慮してください:
* '''範囲for文を使って可読性を向上''': 明示的なインデックスを使用する必要がなく、コードがシンプルになります。配列やSTLコンテナで全要素を反復処理する場合は、範囲for文を検討しましょう。
* '''初期化付きの範囲for文でスコープ管理''': C++20以降では、初期化をループ内に組み込むことで、変数のスコープを制限し、バグを防ぐことができます。
* '''ループ条件を考慮した最適化''': <code>while</code>文や<code>for</code>文では、条件を最適化することでパフォーマンスを向上させることができます。無駄な条件評価を避けるために、条件式を簡潔に保ちましょう。
これらのポイントを活用して、より効率的で可読性の高いプログラムを作成しましょう。
== 演習問題 ==
=== 基本的な制御構造を使ったプログラム作成 ===
=== 条件分岐やループの応用問題 ===
=== if constexprや範囲for文を使った問題 ===
{{Nav}}
[[Category:C++]]
i4agnr5qaqnene4ucw3opajlun097j2
263064
263063
2024-11-05T02:48:19Z
Ef3
694
/* 演習問題 */ C++の制御構造を深く理解するために、以下の演習問題に挑戦してみましょう。これらの問題は、基本から応用までをカバーしており、実践的なプログラム作成スキルを高めることができます。
263064
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== 制御構造の重要性 ===
制御構造はプログラミングの基本であり、プログラムの流れを制御するための枠組みです。これにより、条件に応じた処理の分岐や繰り返し処理が可能になります。制御構造を理解することは、効率的でエラーの少ないプログラムを書くための第一歩です。
C++では、豊富な制御構造が提供されています。基本的な制御構造から、C++特有の高度な機能まで幅広くカバーされています。本章では、以下の制御構造について詳しく解説します。
; 制御構造の役割
; [[#条件分岐|条件分岐]] : 特定の条件に基づいて異なる処理を実行する。
:; [[#if文|if文]] : 条件に基づいた分岐を行います。
:; [[#switch文|switch文]] : 複数の条件分岐を効率的に処理します。
; [[#ループ構造|ループ構造]] : 同じ処理を複数回実行する。
:; [[#while文|while文]] : 条件が真である間、繰り返し処理を行います。
:; [[#do-while文|do-while文]] : 最低1回は実行される繰り返し処理を行います。
:; [[#for文|for文]] : 繰り返し処理を効率的に行います。
; [[#制御の移動|制御の移動]] : プログラムの特定の部分に直接ジャンプする。
:; [[#break文|break文]] : イテレーションの中断。
:; [[#continue文|continue文]] : 次のイテレーションへのスキップ。
:; [[#goto文|goto文]] : ラベルへの移動。
; C++特有の制御構造
:; [[#if constexpr|if constexpr]] : コンパイル時に条件分岐を行うことができ、コンパイル時の最適化を支援します。C++17で導入されました。
:; [[#範囲for文 (range-based for loop)|範囲for文 (range-based for loop)]] : コンテナや配列の全要素に対して処理を行うための簡潔な方法です。C++11で導入されました。
これらの制御構造を使うことで、プログラムの可読性が向上し、効率的なコーディングが可能になります。本章では、それぞれの制御構造の使い方と注意点について具体的な例を交えて解説します。
== 条件分岐 ==
条件分岐はプログラムの制御構造の一つで、特定の条件に基づいて異なる処理を実行することができます。C++では、主に<code>if</code>文、<code>else</code>文、<code>else if</code>文を使用して条件分岐を実現します。
=== if文 ===
<code>if</code>文は、条件式が真の場合にのみブロック内のコードを実行します。
==== 基本構文 ====
:<syntaxhighlight lang=c++>
if (条件式) 文
</syntaxhighlight>
複文(ブロック <code>{ ... }</code>)も文であり、条件実行の対象が短文の場合も
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
}
</syntaxhighlight>
のようにブロックとすることが推奨され、しばしばコーディング規約で規定されます。
例えば、ある変数が10より大きいかどうかを確認するコードは次のようになります。
;コード例
:<syntaxhighlight lang=c++>
int number = 15;
if (number > 10) {
std::cout << "Number is greater than 10." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>が10より大きいので、メッセージが表示されます。
==== else節 ====
<code>else</code>節は、前の<code>if</code>の条件が偽の場合に実行されるコードブロックを定義します。
:<syntaxhighlight lang=c++>
if (条件式) {
// 条件式が真のときに実行されるコード
} else {
// 条件式が偽のときに実行されるコード
}
</syntaxhighlight>
==== else if文 ====
<code>else if</code>文は、複数の条件を順にチェックし、条件が真の場合にのみ対応するコードブロックを実行します。
: <code>else if</code> は実際には<code>else</code>節に別の<code>if</code>文をネストした形であり、便宜上 <code>else if</code> 文と呼んでいます。
:<syntaxhighlight lang=c++>
if (条件式1) {
// 条件式1が真のときに実行されるコード
} else if (条件式2) {
// 条件式2が真のときに実行されるコード
} else {
// すべての条件式が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正、負、ゼロのいずれであるかを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = -5;
if (number > 0) {
std::cout << "Number is positive." << std::endl;
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は負の数なので、"Number is negative."が表示されます。
=== ネストしたif文 ===
<code>if</code>文は他の<code>if</code>文の内部にネスト(入れ子)することができます。これにより、複雑な条件分岐を実現できます。
:<syntaxhighlight lang=c++>
if (条件式1) {
if (条件式2) {
// 条件式1および条件式2が真のときに実行されるコード
} else {
// 条件式1が真で条件式2が偽のときに実行されるコード
}
} else {
// 条件式1が偽のときに実行されるコード
}
</syntaxhighlight>
例えば、数値が正の偶数か正の奇数かを判定するコードは次のようになります。
:<syntaxhighlight lang=c++>
int number = 8;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else {
std::cout << "Number is not positive." << std::endl;
}
</syntaxhighlight>
この場合、<code>number</code>は正の偶数なので、"Number is a positive even number."が表示されます。
{{コラム|懸垂If問題|width=100%|2=C++における「懸垂else問題(Dangling else problem)」は、構文解析やコードの意図の明確化に関連する問題で、特にネストされた<code>if-else</code>文において発生します。この問題は、条件分岐が複雑になると、<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる場合に生じます。
以下のコードを見てください:
:<syntaxhighlight lang=c++>
if (condition1)
if (condition2)
// Do something
else
// Do something else
</syntaxhighlight>
この場合、<code>else</code>句が<code>condition2</code>の<code>if</code>文に対応するのか、それとも<code>condition1</code>の<code>if</code>文に対応するのかが問題になります。C++の仕様では、<code>else</code>は常に直前の<code>if</code>文に対応します。
; 正しい解釈
: 上述のコードは次のように解釈されます:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
; 問題の解決策
この問題を解決するためには、コードの意図を明確にするために中括弧 <code>{}</code> を使ってブロックを明示的に指定します。
; 明示的なブロック構造を使用
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
} else {
// Do something else
}
}
</syntaxhighlight>
または、もし<code>else</code>が外側の<code>if</code>文に対応する場合は:
:<syntaxhighlight lang=c++>
if (condition1) {
if (condition2) {
// Do something
}
} else {
// Do something else
}
</syntaxhighlight>
とします。
; インデントの役割
インデントはコンパイラの解釈には影響を与えませんがが、コードの可読性を向上させるために重要です。適切なインデントは、他のプログラマがコードの意図を理解しやすくするための視覚的な助けとなります。しかし、インデントだけでは問題を解決できないため、明示的なブロック構造が必要です。
; まとめ
* '''懸垂else問題'''は、ネストされた<code>if-else</code>文において<code>else</code>句がどの<code>if</code>文に対応するのかが曖昧になる問題です。
* '''解決策'''は、ブロックを明示的にするために中括弧 <code>{}</code> を使用することです。これにより、<code>else</code>句がどの<code>if</code>文に対応するかが明確になります。
* '''インデント'''はコードの可読性を向上させるための視覚的ツールですが、コンパイラはインデントを無視して文法通りにコードを解釈します。
これにより、懸垂else問題を避け、より明確でメンテナブルなコードを書くことができます。
}}
=== サンプルコードと解説 ===
以下に、if文、else節、else if文、ネストしたif文を含むサンプルコードを示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
if (number % 2 == 0) {
std::cout << "Number is a positive even number." << std::endl;
} else {
std::cout << "Number is a positive odd number." << std::endl;
}
} else if (number < 0) {
std::cout << "Number is negative." << std::endl;
} else {
std::cout << "Number is zero." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、ユーザーから入力された数値が正の偶数か正の奇数か、負の数か、ゼロかを判定して適切なメッセージを表示します。
このように、<code>if</code>文、<code>else</code>文、<code>else if</code>文、およびネストした<code>if</code>文を組み合わせることで、複雑な条件分岐を実現し、プログラムの制御を柔軟に行うことができます。
=== if constexpr ===
<code>if constexpr</code>はC++17で導入された新しい条件分岐の形式で、コンパイル時に条件を評価するために使用されます。この機能は、コンパイル時に分岐を解決できるため、メタプログラミングやテンプレートプログラミングで特に有用です。
==== コンパイル時条件分岐 ====
従来の<code>if</code>文は、実行時に条件を評価しますが、<code>if constexpr</code>はコンパイル時に条件を評価します。そのため、<code>if constexpr</code>を使用することで、コンパイル時に条件に基づいたコードの最適化が可能になります。これにより、不要なコードが排除され、コンパイルエラーも未然に防ぐことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
template <typename T>
void foo(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Integer: " << value << std::endl;
} else {
// Tが整数型でない場合の処理
std::cout << "Non-integer: " << value << std::endl;
}
}
</syntaxhighlight>
==== 使用例と解説 ====
次に、<code>if constexpr</code>の具体的な使用例とその解説を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <type_traits>
template <typename T>
void print_type_info(T value) {
if constexpr (std::is_integral_v<T>) {
// Tが整数型の場合の処理
std::cout << "Value is an integer: " << value << std::endl;
} else if constexpr (std::is_floating_point_v<T>) {
// Tが浮動小数点型の場合の処理
std::cout << "Value is a floating-point number: " << value << std::endl;
} else {
// その他の型の場合の処理
std::cout << "Value is of an unknown type" << std::endl;
}
}
auto main() -> int {
print_type_info(42); // 整数型の場合
print_type_info(3.14); // 浮動小数点型の場合
print_type_info("Hello"); // 文字列リテラルの場合
return 0;
}
</syntaxhighlight>
上記の例では、<code>print_type_info</code>関数が異なる型の引数を受け取ります。<code>if constexpr</code>によって、引数の型に応じた処理がコンパイル時に決定されます。
* <code>std::is_integral_v<T></code>が真の場合、整数型に対する処理が実行されます。
* <code>std::is_floating_point_v<T></code>が真の場合、浮動小数点型に対する処理が実行されます。
* どちらの条件も満たさない場合は、その他の型に対する処理が実行されます。
このように、<code>if constexpr</code>を使用することで、コンパイル時に条件を評価し、最適化されたコードを生成することができます。これにより、実行時のオーバーヘッドが減り、プログラムの効率が向上します。また、コンパイル時にエラーを検出できるため、バグの発生を未然に防ぐことができます。
=== switch文 ===
switch文は、変数の値に基づいて複数の分岐を実行するための制御構造です。if文よりも分岐が多い場合や、値に応じて明確に異なる処理を行う場合に使用されます。
==== 基本構文 ====
switch文の基本構文は以下の通りです。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// variable が value1 の場合に実行されるコード
break;
case value2:
// variable が value2 の場合に実行されるコード
break;
// 必要に応じて他の case を追加
default:
// variable がいずれの case にも一致しない場合に実行されるコード
}
</syntaxhighlight>
==== caseとdefault ====
; case : それぞれのcaseキーワードは、<code>variable</code>が特定の値(<code>value1</code>、<code>value2</code>など)と一致する場合に実行されるコードを指定します。
; default : defaultキーワードは、<code>variable</code>がいずれのcaseとも一致しない場合に実行されるコードを指定します。この部分はオプションですが、全ての可能性をカバーするために使われることが多いです。
==== breakの重要性 ====
switch文内で使用される<code>break</code>ステートメントは、現在のcaseブロックの終わりを示し、switch文の外へ制御を移します。<code>break</code>がないと、次のcaseブロックに流れ込み、予期しない動作を引き起こすことがあります。
:<syntaxhighlight lang=c++>
switch (variable) {
case value1:
// value1 の場合の処理
break;
case value2:
// value2 の場合の処理
break;
default:
// どの case にも一致しない場合の処理
}
</syntaxhighlight>
==== サンプルコードと解説 ====
以下に具体的なサンプルコードを示します。このコードは、ユーザーの入力に基づいて曜日を表示する例です。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int day;
std::cout << "曜日を数字で入力してください (1-7): ";
std::cin >> day;
switch (day) {
case 1:
std::cout << "月曜日" << std::endl;
break;
case 2:
std::cout << "火曜日" << std::endl;
break;
case 3:
std::cout << "水曜日" << std::endl;
break;
case 4:
std::cout << "木曜日" << std::endl;
break;
case 5:
std::cout << "金曜日" << std::endl;
break;
case 6:
std::cout << "土曜日" << std::endl;
break;
case 7:
std::cout << "日曜日" << std::endl;
break;
default:
std::cout << "無効な入力です。1から7の数字を入力してください。"
<< std::endl;
break;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーに1から7までの数字を入力させ、その数字に対応する曜日を表示します。<code>switch</code>文を使うことで、各曜日に対応する処理を簡潔に記述できます。<code>break</code>ステートメントを使用することで、各caseブロックの後にswitch文を終了させ、次のcaseブロックに流れ込まないようにしています。
=== 範囲を取る case ===
C++では、switch文で複数のcaseをまとめることができるため、範囲を取るような動作を実現できます。これは、いくつかの値が同じ処理を必要とする場合に便利です。
:<syntaxhighlight lang=c++>
switch (variable) {
case 1 ... 3:
std::cout << "variable は 1, 2, 3 のいずれかです。" << std::endl;
break;
case 4 ... 5:
std::cout << "variable は 4 または 5 です。" << std::endl;
break;
default:
std::cout << "variable は 1 から 5 の範囲外です。" << std::endl;
break;
}
</syntaxhighlight>
この例では、<code>variable</code>が1、2、または3の場合に同じ処理が実行され、4または5の場合に別の処理が実行されます。これにより、コードがシンプルで読みやすくなります。
=== enum と switch の組み合わせのメリット ===
列挙型(enum)とswitch文を組み合わせることで、コードの可読性と保守性が向上します。enumを使用することで、意味のある名前で値を管理でき、switch文でそれらの値に基づく処理を記述することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
enum Color { RED, GREEN, BLUE };
auto main() -> int {
Color color = GREEN;
switch (color) {
case RED:
std::cout << "赤です。" << std::endl;
break;
case GREEN:
std::cout << "緑です。" << std::endl;
break;
case BLUE:
std::cout << "青です。" << std::endl;
break;
}
return 0;
}
</syntaxhighlight>
この例では、<code>Color</code>というenum型を定義し、それを使ってswitch文で色に基づく処理を行っています。enumを使うことで、コードがより直感的で理解しやすくなり、定数を使う場合のような魔法の数字(マジックナンバー)を避けることができます。また、<code>default:</code>を'''書かない'''ことでswicthのenumに対する全称性を担保することが出来ます。
; メリット:
; 可読性の向上 :意味のある名前を使用することで、コードの意図が明確になります。
; 保守性の向上 :enumの定義を変更するだけで、関連するすべてのコードに反映できます。
; エラーの減少 :定数の値を直接使用する場合の入力ミスを防げます。
<code>switch</code>文を適切に使用することで、特定の値に基づく分岐処理を効率的に行うことができます。また、コードの可読性も向上し、保守性の高いプログラムを書くことができます。
=== if文とswitch文での初期化 ===
C++17から、<code>if</code>文や<code>switch</code>文で初期化が可能になりました。これにより、条件式内でローカル変数を宣言し、その変数を条件に基づいて利用することができます。これは、GoやRustのように、条件のスコープ内で変数を定義するスタイルに似ています。
以下にC++17での新しい機能の例を示します。
; if文での初期化
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 42;
if (int result = value * 2; result > 50) {
std::cout << "Result is greater than 50: " << result << std::endl;
} else {
std::cout << "Result is less than or equal to 50: " << result << std::endl;
}
// resultはこのスコープ外では使用できない
// std::cout << result; // エラーになる
return 0;
}
</syntaxhighlight>
: 上記の例では、<code>if</code>文の条件式で<code>result</code>というローカル変数を宣言し、<code>value * 2</code>の結果を代入しています。この変数は<code>if</code>文のブロック内でのみ有効です。
; switch文での初期化
: 同様に、<code>switch</code>文でも初期化が可能です。
:<syntaxhighlight lang=cpp>
#include <iostream>
int main() {
int value = 1;
switch (int squared = value * value; squared) {
case 1:
std::cout << "Value is 1." << std::endl;
break;
case 4:
std::cout << "Value is 2." << std::endl;
break;
default:
std::cout << "Value is not 1 or 2." << std::endl;
break;
}
// squaredはこのスコープ外では使用できない
// std::cout << squared; // エラーになる
return 0;
}
</syntaxhighlight>
; まとめ
: この機能は、コードの可読性を高め、スコープを明確にするために非常に役立ちます。特に、条件分岐で使用する変数をその場で定義できるため、無駄な変数を減らすことができます。
: この新機能を活用することで、C++のプログラミングがさらに柔軟で直感的になります。
== ループ構造 ==
ループ構造は、プログラム内で同じコードを繰り返し実行するための基本的な構造です。C++では、主に<code>while</code>文、<code>do-while</code>文、<code>for</code>文を使用してループを実装します。
=== while文 ===
<code>while</code>文は、指定された条件が真の間、コードブロックを繰り返し実行するループ構造です。条件が偽になると、ループは終了します。
==== 基本構文 ====
<code>while</code>文の基本的な構文は次のとおりです。
:<syntaxhighlight lang=c++>
while (条件式) {
// 条件式が真の間、繰り返し実行されるコード
}
</syntaxhighlight>
例えば、1から10までの数値を順に表示するプログラムは次のように書けます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{1};
while (i <= 10) {
std::cout << i << std::endl;
i++;
}
return 0;
}
</syntaxhighlight>
このプログラムでは、変数<code>i</code>が1から10までの間、<code>while</code>ループが繰り返し実行されます。各反復で<code>i</code>の値が出力され、最後に<code>i</code>がインクリメントされます。
==== 無限ループの作成 ====
条件式が常に真の場合、<code>while</code>ループは無限に繰り返されます。無限ループは、特定の条件が発生するまで繰り返し処理を行う場合に使用されます。無限ループを作成するには、条件式として<code>true</code>を指定します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
while (true) {
std::cout << "This loop will run forever." << std::endl;
}
return 0;
}
</syntaxhighlight>
このプログラムは、"This loop will run forever."というメッセージを無限に表示します。無限ループを使用する際は、ループを適切に終了する手段(例えば、<code>break</code>文)を用意することが重要です。
==== サンプルコードと解説 ====
次に、<code>while</code>文を使った実用的なサンプルコードを示します。このコードは、ユーザーからの入力を受け取り、その値が0でない限りその数値を合計していきます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (true) {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number == 0) {
break;
}
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが0を入力するまで数値の入力を受け付け、その合計を計算します。ユーザーが0を入力すると<code>break</code>文が実行され、<code>while</code>ループが終了します。最後に、合計が表示されます。
このように、<code>while</code>文を使用することで、条件に基づいて繰り返し処理を行うことができます。無限ループを適切に制御し、必要に応じてループを終了する手段を提供することが重要です。
==== スコープ内初期化 ====
C++17のスコープ内初期化を使って、<code>while</code>文を以下のように書き換えることができます。
:<syntaxhighlight lang=cpp>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter numbers to add to the sum. Enter 0 to finish."
<< std::endl;
while (int number{0}; std::cout << "Enter a number: ", std::cin >> number && number != 0) {
sum += number;
}
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
; 改善点と説明
:* <code>while</code>文の初期化部分で<code>int number{0}</code>を宣言しており、この変数は<code>while</code>文のスコープ内で有効です。
:* <code>std::cout << "Enter a number: "</code>がループ条件部分で評価されることで、毎回数値入力のプロンプトが表示されます。
:* 条件部分は<code>std::cin >> number && number != 0</code>として、<code>0</code>が入力されるまでループを続けるようになっています。
=== do-while文 ===
<code>do-while</code>文は、少なくとも一度はループの内容を実行したい場合に使用されるループ構造です。このループは、最初の反復後に条件を評価します。
==== 基本構文 ====
<code>do-while</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
do {
// 実行されるコードブロック
} while (条件式);
</syntaxhighlight>
この構文では、<code>do</code>キーワードの後にコードブロックが続き、その後に<code>while</code>キーワードと条件式が続きます。条件式が真である限り、コードブロックが繰り返し実行されます。
==== while文との違い ====
<code>while</code>文との主な違いは、<code>do-while</code>文が最初に条件を評価せずにコードブロックを一度実行する点です。つまり、<code>do-while</code>文は少なくとも一度は必ず実行されます。一方、<code>while</code>文は条件が真の場合にのみ実行されます。
以下に、<code>while</code>文と<code>do-while</code>文の違いを示す簡単な例を示します。
<code>while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
while (i > 0) {
std::cout << "This will not be printed." << std::endl;
}
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>の値が初めから条件を満たさないため、<code>while</code>ループ内のコードは一度も実行されません。
<code>do-while</code>文の例:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
do {
std::cout << "This will be printed once." << std::endl;
} while (i > 0);
return 0;
}
</syntaxhighlight>
この例では、条件が偽であっても、<code>do-while</code>ループ内のコードが少なくとも一度は実行されます。
==== サンプルコードと解説 ====
次に、<code>do-while</code>文の使用例を示します。このプログラムは、ユーザーから正の数値を入力させ、その数値を合計します。ユーザーが0以下の数値を入力した場合にループが終了します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int sum{0};
std::cout << "Enter positive numbers to add to the sum. Enter 0 or a negative number to finish."
<< std::endl;
do {
int number{0};
std::cout << "Enter a number: ";
std::cin >> number;
if (number > 0) {
sum += number;
}
} while (number > 0);
std::cout << "The total sum is: " << sum << std::endl;
return 0;
}
</syntaxhighlight>
このプログラムでは、ユーザーが正の数値を入力し続ける限り、その数値が合計に加算されます。ユーザーが0または負の数値を入力すると、ループが終了し、最終的な合計が表示されます。
このように、<code>do-while</code>文は、条件を評価する前にコードブロックを少なくとも一度実行したい場合に有効です。これは、ユーザー入力を処理する際や初期化処理を行う際によく使用されます。
=== for文 ===
<code>for</code>文は、反復回数が事前にわかっている場合に使用されるループ構造です。初期化、条件チェック、反復処理を1行で記述できるため、読みやすくコンパクトにループを表現できます。
==== 基本構文 ====
<code>for</code>文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (初期化; 条件式; 反復処理) {
// 実行されるコードブロック
}
</syntaxhighlight>
各部分の意味は次の通りです:
; 初期化 : ループ開始前に1回だけ実行されるコード(通常はループカウンタの初期化)。
; 条件式 : 各反復の前に評価される条件式。条件式が真である限り、ループが続行されます。
; 反復処理 : 各反復の最後に実行されるコード(通常はループカウンタの更新)。
==== 無限ループの作成 ====
<code>for</code>文で無限ループを作成する場合、条件式を省略します:
:<syntaxhighlight lang=c++>
for (;;) {
// 無限に実行されるコードブロック
}
</syntaxhighlight>
この構文は条件が常に真と評価されるため、無限にループが続きます。
==== サンプルコードと解説 ====
次に、<code>for</code>文の基本的な使用例を示します。このプログラムは1から10までの数を順に表示します。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 1; i <= 10; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、初期化部分で<code>int i = 1</code>と宣言し、条件式で<code>i <= 10</code>を評価し、反復処理で<code>i++</code>を実行しています。ループ内のコードブロックが10回実行され、1から10までの数が表示されます。
=== 範囲for文 (range-based for loop) ===
範囲for文は、配列やコンテナなどの全要素を簡潔に反復処理するためにC++11で導入された機能です。
==== 基本構文 ====
範囲for文の基本構文は以下の通りです:
:<syntaxhighlight lang=c++>
for (要素 : コレクション) {
// 各要素に対して実行されるコードブロック
}
</syntaxhighlight>
<code>要素</code>はコレクション内の各要素を表す変数で、<code>コレクション</code>は配列やSTLコンテナなどの反復可能なオブジェクトです。
==== 配列やコンテナでの使用例 ====
範囲for文を使用すると、配列やコンテナの全要素に対して簡潔に処理を行うことができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int {
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (auto number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>std::vector<int></code>内の全要素を順に反復処理し、各要素を出力しています。範囲for文を使うことで、よりシンプルで読みやすいコードになります。
==== サンプルコードと解説 ====
さらに、配列を範囲for文で処理する例を示します:
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int arr[] = {10, 20, 30, 40, 50};
for (auto x : arr) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、配列<code>arr</code>の全要素を範囲for文で処理し、各要素を出力しています。範囲for文を使うことで、明確かつ簡潔に全要素を処理できます。
=== STL ===
STL(Standard Template Library)は、C++の標準ライブラリの一部であり、データ構造とアルゴリズムの集合です。STLは効率的かつ汎用的なプログラムを構築するための強力なツールセットを提供します。ここでは、STLの主要な要素であるコンテナとイテレーションについて説明します。
==== コンテナとイテレーション ====
STLのコンテナは、データの格納および管理を行うデータ構造です。コンテナには、配列、リスト、スタック、キュー、マップなどがあります。これらのコンテナは、データの効率的な操作とアクセスを可能にします。コンテナには主に次のような種類があります。
; シーケンスコンテナ : <code>std::vector</code>, <code>std::list</code>, <code>std::deque</code> など。これらはデータの線形順序を保持します。
; アソシエイティブコンテナ : <code>std::map</code>, <code>std::set</code>, <code>std::unordered_map</code>, <code>std::unordered_set</code> など。これらはキーと値のペアを保持し、効率的な検索をサポートします。
; コンテナアダプタ : <code>std::stack</code>, <code>std::queue</code>, <code>std::priority_queue</code> など。これらは特定の操作を効率化するためのラッパーです。
==== イテレータ ====
イテレータは、コンテナ内の要素を順にアクセスするためのオブジェクトです。イテレータは、ポインタのような振る舞いをし、特定の操作をサポートします。例えば、イテレータを使用すると、コンテナ内の要素を反復処理することができます。
以下に、<code>std::vector</code>を使用したイテレータの基本的な使用例を示します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (auto it = numbers.begin(); it != numbers.end(); it++) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>numbers.begin()</code>はベクターの最初の要素を指すイテレータを返し、<code>numbers.end()</code>は最後の要素の次を指すイテレータを返します。<code>*it</code>はイテレータが指している要素の値を取得します。
==== その他の反復方法 ====
STLには、イテレータ以外にも様々な方法でコンテナの要素を反復処理する手段があります。以下に代表的な方法を紹介します。
===== 範囲for文 (range-based for loop) =====
C++11以降では、範囲for文を使用してコンテナの全要素を簡潔に反復処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
===== std::for_each =====
標準ライブラリのアルゴリズムの一つである<code>std::for_each</code>を使用すると、範囲指定してコンテナの要素を処理することができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
#include <algorithm>
auto main() -> int() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
std::for_each(numbers.begin(), numbers.end(), [](int number) {
std::cout << number << " ";
});
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、ラムダ関数を使用して各要素を処理しています。<code>std::for_each</code>は、指定された範囲内の各要素に対して指定された関数を適用します。
以上が、STLのコンテナとイテレーションに関する基本的な説明です。STLを効果的に利用することで、効率的で読みやすいコードを書くことができます。
== 制御の移動 ==
プログラム内で制御の移動を行うために、C++では<code>break</code>、<code>continue</code>、<code>goto</code>などのキーワードが提供されています。これらを使うことで、ループや条件分岐などの制御構造の中で、特定の条件下で処理を中断したり、次のループに進んだりすることが可能です。
=== break文 ===
<code>break</code>文は、ループや<code>switch</code>文内で使用され、その部分の実行を中断し、ループや<code>switch</code>文を抜けるために使われます。
; ループの中断
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 3) {
break; // iが3のときループを中断
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が3のときにループが中断されます。
=== continue文 ===
<code>continue</code>文は、ループ内で使用され、その時点での処理を中断して、次の繰り返し処理に進みます。
; 次のループへのスキップ
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
for (int i = 0; i < 5; ++i) {
if (i == 2) {
continue; // iが2のとき、次の繰り返し処理へスキップ
}
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>i</code>が2のときに<code>continue</code>が実行され、その時点の処理が中断され、次のループに進みます。
=== goto文 ===
<code>goto</code>文は、特定のラベルにジャンプするために使用されます。ただし、<code>goto</code>文はコードの可読性や保守性を低下させるため、適切に使用する必要があります。
; 基本構文
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int i{0};
loop: // ラベル
if (i < 5) {
std::cout << i << " ";
i++;
goto loop; // loopにジャンプ
}
return 0;
}
</syntaxhighlight>
この例では、<code>goto</code>文を使用して<code>loop</code>というラベルにジャンプし、ループを実行しています。
== まとめ ==
範囲for文を含め、C++の各制御構造について理解することは、効率的で読みやすいコードを書くために非常に重要です。以下は、制御構造の使い分けと効率的なプログラミングのためのガイドです。
=== 各制御構造の比較と使い分け ===
C++では、複数の制御構造が提供されており、それぞれの用途やメリットが異なります。
* '''while文''': 条件が真である間繰り返す処理に適しています。ループの反復回数が事前に決まっていない場合に使うと効果的です。
* '''do-while文''': 少なくとも1回はループを実行したい場合に適しています。条件判定が後置されているため、最初の実行を保証します。
* '''for文''': 明確な初期化、条件、更新を一つの構文で記述でき、カウンタを使用した反復に適しています。ループの回数が決まっている場合に使うと良いでしょう。
* '''範囲for文''': 配列やコンテナの全要素を簡潔に反復処理する場合に便利です。読みやすく、ミスを減らすことができます。C++20以降では、初期化付きの範囲for文も利用でき、スコープの限定に役立ちます。
=== 制御構造を使った効率的なプログラミング ===
効率的なプログラミングのためには、適切な制御構造を選ぶことが重要です。以下のポイントを考慮してください:
* '''範囲for文を使って可読性を向上''': 明示的なインデックスを使用する必要がなく、コードがシンプルになります。配列やSTLコンテナで全要素を反復処理する場合は、範囲for文を検討しましょう。
* '''初期化付きの範囲for文でスコープ管理''': C++20以降では、初期化をループ内に組み込むことで、変数のスコープを制限し、バグを防ぐことができます。
* '''ループ条件を考慮した最適化''': <code>while</code>文や<code>for</code>文では、条件を最適化することでパフォーマンスを向上させることができます。無駄な条件評価を避けるために、条件式を簡潔に保ちましょう。
これらのポイントを活用して、より効率的で可読性の高いプログラムを作成しましょう。
== 演習問題 ==
C++の制御構造を深く理解するために、以下の演習問題に挑戦してみましょう。これらの問題は、基本から応用までをカバーしており、実践的なプログラム作成スキルを高めることができます。
=== 基本的な制御構造を使ったプログラム作成 ===
# '''数値の合計を求めるプログラム''': <code>while</code>文を使用して、ユーザーが入力した正の数値を合計し、<code>0</code>が入力されたら終了するプログラムを作成してください。
# '''九九表の出力''': <code>for</code>文を使って九九表を出力するプログラムを作成してください。
=== 条件分岐やループの応用問題 ===
# '''素数判定プログラム''': <code>for</code>文と<code>if</code>文を組み合わせて、入力された数が素数かどうかを判定するプログラムを作成してください。
# '''フィボナッチ数列の生成''': <code>do-while</code>文を使って、指定された項数分のフィボナッチ数列を出力するプログラムを作成してください。
=== if constexprや範囲for文を使った問題 ===
# '''コンパイル時条件分岐''': <code>if constexpr</code>を使って、テンプレート関数で型に応じた異なる処理を行うプログラムを作成してください。
# '''配列要素の合計''': 範囲for文を使って、配列内の全要素を合計し、その結果を出力するプログラムを作成してください。
# '''初期化付き範囲for文''': C++20以降を使用し、初期化付きの範囲for文で整数のリストを処理し、偶数のみを出力するプログラムを作成してください。
これらの演習を通じて、制御構造の基礎から応用までを身につけ、効率的なプログラミングスキルを習得しましょう。
{{Nav}}
{{DEFAULTSORT:せいきよこうそう}}
[[Category:C++]]
hllvt814w0v90xvbfs7pq944ayqg0hv
C++/C++03(JIS C++)からC++23への移行の手引
0
39752
263081
248718
2024-11-05T03:58:15Z
Ef3
694
/* 新バージョンごとのハイライト (C++11, C++14, C++17, C++20, C++23) */ 校閲と推敲
263081
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== 移行の目的とメリット ===
C++03 から C++23 への移行は、開発者にとって多くのメリットをもたらします。最新の C++ 標準には、プログラムの安全性、効率性、可読性を向上させるための新機能と改良が多数含まれています。以下に、移行の主な目的とメリットを挙げます。
; コードの効率化
: C++11 以降、右辺値参照とムーブセマンティクスが導入され、リソース管理の効率が大幅に向上しました。これにより、不要なコピー操作を削減し、パフォーマンスが向上します。
: C++20 のコルーチンや並列アルゴリズムは、非同期処理や並列処理のパフォーマンスを大幅に向上させます。
; コードの安全性向上
: スマートポインタ (<code>std::shared_ptr</code>, <code>std::unique_ptr</code>) や <code>std::optional</code> などの新しいデータ型により、メモリリークやヌルポインタ参照などのバグを減らすことができます。
: <code>constexpr</code> の強化により、コンパイル時に評価されるコードが増え、ランタイムエラーの発生を防ぐことができます。
; 可読性とメンテナンス性の向上
: ラムダ式、構造化束縛、範囲ベース for ループなど、新しい記法により、コードが簡潔で読みやすくなります。
: モジュール機能の導入により、コードベースの分割と再利用が容易になります。
; 新しいライブラリ機能
: <code>std::filesystem</code>、<code>std::string_view</code>、<code>std::variant</code> などの新しい標準ライブラリが追加され、一般的なプログラミングタスクが簡素化されます。
これらのメリットにより、C++03 から C++23 への移行は、プログラマーの生産性を向上させ、より堅牢で効率的なソフトウェアを開発するための重要なステップとなります。
=== 手引書の構成と読み方 ===
この手引書は、C++03 から C++23 への移行をスムーズに行うためのガイドとして設計されています。以下のように構成されています。
; C++ の進化
: C++03 から C++23 までの各バージョンの主な変更点を概観し、全体像を把握します。
; 各バージョンの新機能
: C++11、C++14、C++17、C++20、C++23 の新機能を詳細に説明し、具体的な使用例を示します。
; 移行の実践
: コードの移行戦略、互換性のチェック、テストと検証、リファクタリングのベストプラクティス、移行を支援するツールとリソースを紹介します。
; 注意点
: 非推奨の機能、既存コードベースへの影響、パフォーマンスへの影響、マルチプラットフォーム対応についての考慮点を説明します。
; ケーススタディ
: 実際の移行プロジェクトの例を通じて、移行プロセスの具体的な問題と解決策を示します。
; 追加リソース
: 参考文献、オンラインリソース、ツールとライブラリを紹介し、学習を助けるための情報を提供します。
; 附録
: 各バージョンの標準ライブラリの追加機能一覧、よくある質問 (FAQ)、用語集をまとめます。
この手引書は、順を追って学ぶことも、特定の章だけを参照することも可能です。特定の新機能や移行の問題に直面した場合、その該当する章を読むことで、必要な情報をすばやく得ることができます。
=== 対象読者 ===
この手引書は、C++03 に精通しているが、C++11 以降の新しい標準にまだ移行していない開発者を対象としています。以下のような読者にとって有用です。
; C++03 を使用している現役の開発者
: C++03 での開発経験があり、最新の C++ 標準に移行したいと考えている方。
; C++ の最新機能に興味がある開発者
: C++11、C++14、C++17、C++20、C++23 の新機能を学び、自分のプロジェクトに適用したいと考えている方。
; 移行プロジェクトを担当している技術リーダーやマネージャー
: チームやプロジェクト全体で C++ のバージョンを移行する際に、具体的な計画と戦略を立てたい方。
; C++ のベストプラクティスを学びたい学生や新入社員
: 最新の C++ 標準に基づいたモダンなプログラミング手法を学びたい方。
この手引書は、初心者から上級者まで、C++ の最新機能とその実践的な適用方法を学びたい全ての開発者に役立つように設計されています。
== C++ の進化 ==
=== C++03 から C++23 までの主な変更点 ===
C++03 から C++23 までの間に、C++ 標準は大幅に進化し、多くの新機能と改良が導入されました。これにより、プログラミングの効率性、可読性、安全性が向上しました。以下は、各バージョンで導入された主な変更点の概要です。
; C++11
: 自動型推論 (auto)
: 範囲ベース for ループ
: スマートポインタ (shared_ptr, unique_ptr)
: ラムダ式
: 右辺値参照とムーブセマンティクス
: 静的アサート (static_assert)
: コンテナの拡張 (例: emplace 系の関数)
; C++14
: 二重引用符で区切られた文字列リテラル
: ジェネリックラムダ
: <code>std::make_unique</code>
: デフォルトパラメータのテンプレート型引数
: コンパイラの強化 (constexpr の改良など)
; C++17
: 構造化束縛
: if と switch の初期化文
: <code>std::optional</code>, <code>std::variant</code>, <code>std::any</code>
: <code>std::string_view</code>
: 並列アルゴリズム (並列 STL)
: ファイルシステムライブラリ (<code>std::filesystem</code>)
: constexpr の拡張
; C++20
: コンセプト (concepts)
: コルーチン (coroutines)
: 範囲ライブラリ (ranges)
: カスタムリテラル
: 三重合併演算子 (三項演算子の拡張)
: モジュール (modules)
: 非同期プログラミングの改善
; C++23
: パターンマッチング
: コンパイル時プログラミングの強化
: ライブラリの改良 (標準ライブラリの追加や変更)
: constexpr のさらなる拡張
これらの変更により、C++ はより強力で表現力豊かなプログラミング言語へと進化しました。
=== 新バージョンごとのハイライト (C++11, C++14, C++17, C++20, C++23) ===
==== C++11 のハイライト ====
; 自動型推論 (auto)
:<syntaxhighlight lang=c++>
auto x = 10; // x の型は int と推論される
</syntaxhighlight>
; 範囲ベース for ループ
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
for (auto& v : vec) {
std::cout << v << std::endl;
}
</syntaxhighlight>
; スマートポインタ
:<syntaxhighlight lang=c++>
std::shared_ptr<int> sp = std::make_shared<int>(10);
std::unique_ptr<int> up = std::make_unique<int>(20);
</syntaxhighlight>
; ラムダ式
:<syntaxhighlight lang=c++>
auto lambda = [](int x) { return x + 1; };
std::cout << lambda(5) << std::endl; // 6 を出力
</syntaxhighlight>
; 右辺値参照とムーブセマンティクス
:<syntaxhighlight lang=c++>
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1 のリソースが v2 にムーブされる
</syntaxhighlight>
; 静的アサート
:<syntaxhighlight lang=c++>
static_assert(sizeof(int) == 4, "int のサイズは 4 バイトでなければならない");
</syntaxhighlight>
==== C++14 のハイライト ====
; 二重引用符で区切られた文字列リテラル
:<syntaxhighlight lang=c++>
auto raw_string = R"(これは "raw" 文字列リテラルです)";
</syntaxhighlight>
; ジェネリックラムダ
:<syntaxhighlight lang=c++>
auto lambda = [](auto x, auto y) { return x + y; };
std::cout << lambda(1, 2) << std::endl; // 3 を出力
</syntaxhighlight>
; std::make_unique
:<syntaxhighlight lang=c++>
auto up = std::make_unique<int>(10);
</syntaxhighlight>
; デフォルトパラメータのテンプレート型引数
:<syntaxhighlight lang=c++>
template<typename T = int>
void func(T value = 0) {
std::cout << value << std::endl;
}
</syntaxhighlight>
; constexpr の改良
:<syntaxhighlight lang=c++>
constexpr int square(int x) {
return x * x;
}
</syntaxhighlight>
==== C++17 のハイライト ====
; 構造化束縛
:<syntaxhighlight lang=c++>
std::tuple<int, double, std::string> t = {1, 2.3, "hello"};
auto [i, d, s] = t;
</syntaxhighlight>
; if と switch の初期化文
:<syntaxhighlight lang=c++>
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second << std::endl;
}
</syntaxhighlight>
; std::optional, std::variant, std::any
:<syntaxhighlight lang=c++>
std::optional<int> opt = 42;
if (opt) {
std::cout << *opt << std::endl;
}
</syntaxhighlight>
; std::string_view
:<syntaxhighlight lang=c++>
std::string_view sv = "Hello, World!";
</syntaxhighlight>
; 並列アルゴリズム
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
std::sort(std::execution::par, vec.begin(), vec.end());
</syntaxhighlight>
; ファイルシステムライブラリ
:<syntaxhighlight lang=c++>
std::filesystem::path path = "/path/to/file";
if (std::filesystem::exists(path)) {
std::cout << "ファイルが存在します" << std::endl;
}
</syntaxhighlight>
==== C++20 のハイライト ====
; コンセプト
:<syntaxhighlight lang=c++>
template<typename T>
concept Addable = requires(T a, T b) {
{ a + b } -> std::convertible_to<T>;
};
Addable auto add(Addable auto a, Addable auto b) {
return a + b;
}
</syntaxhighlight>
; コルーチン
:<syntaxhighlight lang=c++>
std::future<int> async_func() {
co_return 42;
}
</syntaxhighlight>
; 範囲ライブラリ
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
auto result = vec | std::views::filter([](int x) { return x % 2 == 0; });
</syntaxhighlight>
; モジュール
:<syntaxhighlight lang=c++>
// my_module.cpp
export module my_module;
export int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
==== C++23 のハイライト ====
; パターンマッチング
:<syntaxhighlight lang=c++>
std::variant<int, std::string> v = "hello";
std::visit([](auto&& arg) {
if constexpr (std::is_same_v<std::decay_t<decltype(arg)>, int>) {
std::cout << "int: " << arg << std::endl;
} else if constexpr (std::is_same_v<std::decay_t<decltype(arg)>, std::string>) {
std::cout << "string: " << arg << std::endl;
}
}, v);
</syntaxhighlight>
; コンパイル時プログラミングの強化
:<syntaxhighlight lang=c++>
consteval int factorial(int n) {
return (n <= 1) ? 1 : (n * factorial(n - 1));
}
</syntaxhighlight>
; ライブラリの改良
:<syntaxhighlight lang=c++>
// 例: 新しいコンテナやアルゴリズムの追加
</syntaxhighlight>
これらの各バージョンの新機能は、C++ をより強力で柔軟にし、モダンなプログラミング手法を可能にします。この手引書では、これらの変更点とその活用方法を詳細に説明します。
== C++11 の新機能 ==
C++11 は、C++ 言語に数多くの新機能を導入し、プログラミングの効率性、可読性、そして安全性を大幅に向上させました。以下に、C++11 で導入された主要な機能について詳しく説明します。
=== 自動型推論 (auto) ===
C++11 では、<code>auto</code> キーワードを使って、変数の型を自動的に推論することができるようになりました。これにより、コードが簡潔になり、メンテナンス性が向上します。
:<syntaxhighlight lang=c++>
auto x = 10; // x の型は int と推論される
auto y = 3.14; // y の型は double と推論される
auto z = "Hello"; // z の型は const char* と推論される
</syntaxhighlight>
=== 範囲ベース for ループ ===
範囲ベース for ループは、コンテナや配列の要素を簡潔にループ処理するための構文を提供します。従来の for ループよりも可読性が向上します。
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
for (auto& v : vec) {
std::cout << v << std::endl;
}
</syntaxhighlight>
=== スマートポインタ (shared_ptr, unique_ptr) ===
C++11 では、メモリ管理を簡素化し、メモリリークを防ぐためのスマートポインタが導入されました。<code>shared_ptr</code> と <code>unique_ptr</code> は、所有権とライフタイム管理を自動化します。
: <code>auto_ptr</code> は、C++11で非推奨とされ、C++17で削除されました。
:<syntaxhighlight lang=c++>
std::shared_ptr<int> sp = std::make_shared<int>(10);
std::unique_ptr<int> up = std::make_unique<int>(20);
</syntaxhighlight>
=== ラムダ式 ===
ラムダ式は、無名関数を簡潔に定義できる新しい記法です。特に関数オブジェクトやコールバックの定義に便利です。
:<syntaxhighlight lang=c++>
auto add = [](int a, int b) {
return a + b;
};
std::cout << add(2, 3) << std::endl; // 5 を出力
</syntaxhighlight>
=== 右辺値参照とムーブセマンティクス ===
右辺値参照 (<code>&&</code>) とムーブセマンティクスは、リソースの所有権を効率的に移動するための機能です。これにより、不要なコピー操作が削減され、パフォーマンスが向上します。
:<syntaxhighlight lang=c++>
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1 のリソースが v2 にムーブされる
</syntaxhighlight>
=== 静的アサート (static_assert) ===
静的アサートは、コンパイル時に条件をチェックし、条件が満たされない場合にコンパイルエラーを発生させます。これにより、コードの安全性が向上します。
:<syntaxhighlight lang=c++>
static_assert(sizeof(int) == 4, "int のサイズは 4 バイトでなければならない");
</syntaxhighlight>
=== コンテナの拡張 (例: emplace 系の関数) ===
C++11 では、標準コンテナに対して新しいメンバ関数が追加されました。特に <code>emplace</code> 系の関数は、コンテナに要素を直接構築するためのものです。これにより、不要なコピーやムーブが省略されます。
:<syntaxhighlight lang=c++>
std::vector<std::pair<int, std::string>> vec;
vec.emplace_back(1, "one"); // 要素を直接構築
</syntaxhighlight>
=== その他の改良点 ===
C++11 には、上記以外にも多くの改良が加えられています。
; nullptr : 新しい null ポインタリテラル
:<syntaxhighlight lang=c++>
int* p = nullptr;
</syntaxhighlight>
; enum class : 型安全な列挙型
:<syntaxhighlight lang=c++>
enum class Color { Red, Green, Blue };
Color color = Color::Red;
</syntaxhighlight>
; 改良されたテンプレート機能 : 可変長テンプレート引数やテンプレートエイリアス
:<syntaxhighlight lang=c++>
template<typename... Args>
void func(Args... args) { /* ... */ }
template<typename T>
using Vec = std::vector<T>;
</syntaxhighlight>
; ユーザー定義リテラル : リテラルに対するカスタム処理
:<syntaxhighlight lang=c++>
long double operator "" _km(long double val) {
return val * 1000;
}
auto distance = 3.4_km;
</syntaxhighlight>
これらの新機能は、C++ 言語をより強力で使いやすくし、モダンなプログラミング手法を可能にします。次の章では、各新機能の詳細とその実践的な使用例をさらに詳しく説明していきます。
== C++14 の新機能 ==
C++14 は、C++11 で導入された機能を拡張し、さらに使いやすい言語機能を提供します。これにより、プログラミングの効率性と表現力が向上します。以下に、C++14 で導入された主要な機能について詳しく説明します。
=== 二重引用符で区切られた文字列リテラル ===
C++14 では、原文通りの形式で文字列を記述できる「生文字列リテラル」が導入されました。これにより、エスケープシーケンスを使用することなく、複雑な文字列を簡潔に記述できます。
; 使用例
:<syntaxhighlight lang=c++>
auto raw_string = R"(これは "raw" 文字列リテラルです\n
複数行に渡る文字列や特殊文字をそのまま記述できます。)";
std::cout << raw_string << std::endl;
</syntaxhighlight>
=== ジェネリックラムダ ===
C++14 では、ラムダ式の引数の型を自動的に推論する「ジェネリックラムダ」が導入されました。これにより、テンプレート関数のように汎用性の高いラムダ式を記述できます。
; 使用例
:<syntaxhighlight lang=c++>
auto add = [](auto x, auto y) {
return x + y;
};
std::cout << add(1, 2) << std::endl; // 3 を出力
std::cout << add(1.5, 2.5) << std::endl; // 4.0 を出力
</syntaxhighlight>
=== std::make_unique ===
C++14 では、<code>std::unique_ptr</code> を簡単に作成するためのヘルパー関数 <code>std::make_unique</code> が追加されました。これにより、<code>std::unique_ptr</code> の作成がより簡潔で安全になりました。
; 使用例
:<syntaxhighlight lang=c++>
auto up = std::make_unique<int>(10); // 自動的に new を使用してメモリを確保
std::cout << *up << std::endl; // 10 を出力
</syntaxhighlight>
=== デフォルトパラメータのテンプレート型引数 ===
C++14 では、テンプレート型引数にデフォルト値を指定できるようになりました。これにより、テンプレートの柔軟性と使いやすさが向上します。
; 使用例
:<syntaxhighlight lang=c++>
template<typename T = int>
void func(T value = 0) {
std::cout << value << std::endl;
}
func(); // 0 を出力
func(3.14); // 3.14 を出力
</syntaxhighlight>
=== コンパイラの強化 (constexpr の改良など) ===
C++14 では、<code>constexpr</code> 関数の機能が拡張され、より複雑な処理をコンパイル時に実行できるようになりました。これにより、コンパイル時に計算可能な式の範囲が広がりました。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return (n <= 1) ? 1 : (n * factorial(n - 1));
}
static_assert(factorial(5) == 120, "5! は 120 でなければならない");
</syntaxhighlight>
=== その他の改良点 ===
C++14 には、上記以外にも多くの改良が加えられています。
==== 二項演算子の改良 ====
:<syntaxhighlight lang=c++>
template<typename T>
constexpr T pi = T(3.1415926535897932385); // テンプレート変数の定義
double radius = 5.0;
double circumference = 2 * pi<double> * radius; // テンプレート変数を使用
</syntaxhighlight>
==== 戻り値型推論 ====
:<syntaxhighlight lang=c++>
auto square(int x) {
return x * x;
}
std::cout << square(5) << std::endl; // 25 を出力
</syntaxhighlight>
==== より強力な型推論 ====
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
auto it = vec.begin(); // it の型は std::vector<int>::iterator と推論される
</syntaxhighlight>
これらの改良により、C++14 はさらに使いやすく、効率的なプログラミングを支援する多くの新機能を提供します。次の章では、C++17 の新機能について詳しく説明します。
== C++17 の新機能 ==
C++17 は、言語機能と標準ライブラリの両方に多くの改良を加え、より使いやすく強力なプログラミング環境を提供します。以下に、C++17 で導入された主要な機能について詳しく説明します。
=== 構造化束縛 ===
構造化束縛は、複数の値をタプルやペアのような構造から直接変数に展開するための構文です。これにより、コードの可読性が向上します。
; 使用例
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getData() {
return {1, 2.3, "example"};
}
int main() {
auto [i, d, s] = getData();
std::cout << i << ", " << d << ", " << s << std::endl;
return 0;
}
</syntaxhighlight>
=== if と switch の初期化文 ===
C++17 では、<code>if</code> および <code>switch</code> ステートメントの条件式の前に初期化文を追加できるようになりました。これにより、スコープを限定した変数の宣言が可能になります。
; 使用例
:<syntaxhighlight lang=c++>
if (int x = getValue(); x > 0) {
std::cout << "Positive: " << x << std::endl;
} else {
std::cout << "Non-positive: " << x << std::endl;
}
switch (int y = getStatus(); y) {
case 0:
std::cout << "Status is zero" << std::endl;
break;
default:
std::cout << "Status is non-zero" << std::endl;
break;
}
</syntaxhighlight>
=== std::optional, std::variant, std::any ===
C++17 では、新しい型 <code>std::optional</code>, <code>std::variant</code>, <code>std::any</code> が追加され、より柔軟で安全なデータ管理が可能になりました。
==== std::optional ====
<code>std::optional</code> は、値が存在するかどうかを表すための型です。
:<syntaxhighlight lang=c++>
#include <optional>
#include <iostream>
std::optional<int> getOptionalValue(bool giveValue) {
if (giveValue) return 42;
else return std::nullopt;
}
int main() {
auto value = getOptionalValue(true);
if (value) {
std::cout << "Value: " << *value << std::endl;
} else {
std::cout << "No value" << std::endl;
}
return 0;
}
</syntaxhighlight>
==== std::variant ====
<code>std::variant</code> は、異なる型の値を一つにまとめて扱うための型です。
:<syntaxhighlight lang=c++>
#include <variant>
#include <iostream>
std::variant<int, double, std::string> getVariant() {
return 42; // または、2.3 や "example"
}
int main() {
auto v = getVariant();
std::visit([](auto&& arg) { std::cout << arg << std::endl; }, v);
return 0;
}
</syntaxhighlight>
==== std::any ====
<code>std::any</code> は、任意の型の値を保持できる型です。
:<syntaxhighlight lang=c++>
#include <any>
#include <iostream>
int main() {
std::any a = 42;
a = std::string("example");
try {
std::cout << std::any_cast<std::string>(a) << std::endl;
} catch (const std::bad_any_cast& e) {
std::cout << "Bad any cast: " << e.what() << std::endl;
}
return 0;
}
</syntaxhighlight>
=== std::string_view ===
<code>std::string_view</code> は、文字列の一部を効率的に参照するための型です。コピーを伴わないため、パフォーマンスが向上します。
; 使用例
:<syntaxhighlight lang=c++>
#include <string_view>
#include <iostream>
void printString(std::string_view sv) {
std::cout << sv << std::endl;
}
int main() {
std::string str = "Hello, World!";
printString(str);
printString("Temporary string");
return 0;
}
</syntaxhighlight>
=== 並列アルゴリズム (並列 STL) ===
C++17 では、標準ライブラリのアルゴリズムに対して並列実行が可能なオプションが追加されました。これにより、大規模データの処理が高速化されます。
; 使用例
:<syntaxhighlight lang=c++>
#include <algorithm>
#include <vector>
#include <execution>
#include <iostream>
int main() {
std::vector<int> vec(1000000, 1);
std::transform(std::execution::par, vec.begin(), vec.end(), vec.begin(), [](int n) { return n * 2; });
std::cout << vec[0] << std::endl; // 2 を出力
return 0;
}
</syntaxhighlight>
=== ファイルシステムライブラリ (std::filesystem) ===
C++17 では、ファイルやディレクトリの操作を簡潔に行うためのファイルシステムライブラリが追加されました。
; 使用例
:<syntaxhighlight lang=c++>
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main() {
fs::create_directory("example_dir");
for (const auto& entry : fs::directory_iterator(".")) {
std::cout << entry.path() << std::endl;
}
fs::remove_all("example_dir");
return 0;
}
</syntaxhighlight>
=== constexpr の拡張 ===
C++17 では、<code>constexpr</code> 関数の機能がさらに拡張され、より複雑な処理をコンパイル時に実行できるようになりました。これにより、コンパイル時に計算可能な式の範囲がさらに広がりました。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int fibonacci(int n) {
if (n <= 1) return n;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
static_assert(fibonacci(10) == 55, "10番目のフィボナッチ数は55である必要があります");
</syntaxhighlight>
=== その他の改良点 ===
C++17 には、上記以外にも多くの改良が加えられています。
==== テンプレート引数推論の改善 ====
:<syntaxhighlight lang=c++>
std::pair p = std::make_pair(1, 2.5); // 型を明示する必要がない
</syntaxhighlight>
==== fold 式 ====
:<syntaxhighlight lang=c++>
template<typename... Args>
auto sum(Args... args) {
return (args + ...);
}
std::cout << sum(1, 2, 3, 4) << std::endl; // 10 を出力
</syntaxhighlight>
==== inline 変数 ====
:<syntaxhighlight lang=c++>
struct S {
static inline int x = 10;
};
std::cout << S::x << std::endl; // 10 を出力
</syntaxhighlight>
これらの新機能により、C++17 はさらに使いやすく、効率的なプログラミングを支援する多くの新機能を提供します。次の章では、C++20 の新機能について詳しく説明します。
== C++20 の新機能 ==
C++20 は、C++ 言語の歴史の中でも特に多くの革新をもたらしたバージョンです。新しい言語機能とライブラリの改良により、プログラマーはより強力で表現力豊かなコードを書けるようになりました。以下に、C++20 で導入された主要な機能について詳しく説明します。
=== コンセプト (concepts) ===
コンセプトは、テンプレートの引数が満たすべき条件を指定するための新しい機能です。これにより、テンプレートプログラミングがより直感的で、エラーメッセージもわかりやすくなります。
; 使用例
:<syntaxhighlight lang=c++>
#include <concepts>
#include <iostream>
template<typename T>
concept Incrementable = requires(T x) {
++x;
x++;
};
template<Incrementable T>
void increment(T& x) {
++x;
}
int main() {
int a = 1;
increment(a);
std::cout << a << std::endl; // 2 を出力
return 0;
}
</syntaxhighlight>
=== コルーチン (coroutines) ===
コルーチンは、中断と再開が可能な関数の一種で、非同期プログラミングや生成器の実装に使われます。C++20 では、コルーチンのためのサポートが標準ライブラリに追加されました。
; 使用例
:<syntaxhighlight lang=c++>
#include <coroutine>
#include <iostream>
struct Generator {
struct promise_type {
int current_value;
Generator get_return_object() { return Generator{this}; }
std::suspend_always initial_suspend() { return {}; }
std::suspend_always final_suspend() noexcept { return {}; }
std::suspend_always yield_value(int value) {
current_value = value;
return {};
}
void return_void() {}
void unhandled_exception() { std::exit(1); }
};
promise_type* promise;
Generator(promise_type* p) : promise(p) {}
bool move_next() { return !promise->final_suspend().await_ready(); }
int current_value() { return promise->current_value; }
};
Generator counter() {
for (int i = 0; i < 3; ++i)
co_yield i;
}
int main() {
auto gen = counter();
while (gen.move_next()) {
std::cout << gen.current_value() << std::endl;
}
return 0;
}
</syntaxhighlight>
=== 範囲ライブラリ (ranges) ===
範囲ライブラリは、アルゴリズムとデータ構造をより一貫して扱うための新しいフレームワークです。これにより、コードの可読性と保守性が向上します。
; 使用例
:<syntaxhighlight lang=c++>
#include <ranges>
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto result = vec | std::ranges::views::filter([](int i) { return i % 2 == 0; })
| std::ranges::views::transform([](int i) { return i * i; });
for (int v : result) {
std::cout << v << std::endl; // 4 と 16 を出力
}
return 0;
}
</syntaxhighlight>
=== カスタムリテラル ===
C++20 では、ユーザー定義リテラルの記述が簡素化され、より柔軟に扱えるようになりました。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
#include <chrono>
using namespace std::literals::chrono_literals;
int main() {
auto duration = 10s + 2min;
std::cout << "Duration: " << duration.count() << " seconds" << std::endl; // 130 秒を出力
return 0;
}
</syntaxhighlight>
=== 三重合併演算子 (三項演算子の拡張) ===
C++20 では、三項演算子(条件演算子)を拡張し、より柔軟に使えるようになりました。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
int main() {
int a = 5, b = 10;
int min_value = (a <=> b < 0) ? a : b;
std::cout << "Minimum value: " << min_value << std::endl; // 5 を出力
return 0;
}
</syntaxhighlight>
=== モジュール (modules) ===
モジュールは、ヘッダーファイルに依存しない新しいコード構造で、ビルド時間の短縮と依存関係の管理が容易になります。
; 使用例
:; module.cpp
::<syntaxhighlight lang=c++>
export module my_module;
export int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
:; main.cpp
::<syntaxhighlight lang=c++>
import my_module;
#include <iostream>
int main() {
std::cout << add(3, 4) << std::endl; // 7 を出力
return 0;
}
</syntaxhighlight>
=== 非同期プログラミングの改善 ===
C++20 では、非同期プログラミングがさらに改善され、非同期タスクの管理がより簡単になりました。
; 使用例
:<syntaxhighlight lang=c++>
#include <future>
#include <iostream>
int main() {
auto future = std::async([] {
return 42;
});
std::cout << "Result: " << future.get() << std::endl; // 42 を出力
return 0;
}
</syntaxhighlight>
=== その他の改良点 ===
C++20 には、上記以外にも多くの改良が加えられています。
==== スペースシップ演算子 (<=>) ====
スペースシップ演算子を使用すると、比較演算子を簡単に実装できます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <compare>
struct Point {
int x, y;
auto operator<=>(const Point&) const = default;
};
int main() {
Point p1{1, 2}, p2{1, 3};
if (p1 < p2) {
std::cout << "p1 is less than p2" << std::endl;
}
return 0;
}
</syntaxhighlight>
==== 透過的な関数オブジェクト ====
<code>std::less<></code> や <code>std::equal_to<></code> などの透過的な関数オブジェクトが導入され、汎用性が向上しました。
:<syntaxhighlight lang=c++>
#include <map>
#include <iostream>
int main() {
std::map<int, std::string, std::less<>> my_map;
my_map[10] = "ten";
my_map[20] = "twenty";
auto it = my_map.find(15);
if (it != my_map.end()) {
std::cout << "Found: " << it->second << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
</syntaxhighlight>
これらの新機能により、C++20 はさらに強力で使いやすい言語となり、現代のプログラミングニーズに応える多くの新しいツールと機能を提供します。次の章では、C++23 の新機能について詳しく説明します。
== C++23 の新機能 ==
C++23 は、C++ 言語のさらなる進化をもたらし、より強力で使いやすいプログラミング環境を提供します。以下に、C++23 で導入される主要な機能について詳しく説明します。
=== パターンマッチング ===
パターンマッチングは、データ構造や型に対するパターンを記述し、それに基づいて条件分岐を行うための新しい機能です。これにより、より直感的で柔軟な制御フローが可能になります。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
void process_variant(const std::variant<int, double, std::string>& var) {
if (auto value = std::get_if<int>(&var)) {
std::cout << "Integer value: " << *value << std::endl;
} else if (auto value = std::get_if<double>(&var)) {
std::cout << "Double value: " << *value << std::endl;
} else if (auto value = std::get_if<std::string>(&var)) {
std::cout << "String value: " << *value << std::endl;
} else {
std::cout << "Unknown variant" << std::endl;
}
}
int main() {
process_variant(42);
process_variant(3.14);
process_variant("hello");
return 0;
}
</syntaxhighlight>
=== コンパイル時プログラミングの強化 ===
C++23 では、テンプレートメタプログラミングや constexpr 関数など、コンパイル時に実行されるプログラミングの機能がさらに強化されました。これにより、より高度なコンパイル時最適化やメタプログラミングが可能になります。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
if (n <= 1) return 1;
else return n * factorial(n - 1);
}
int main() {
constexpr int result = factorial(5);
static_assert(result == 120, "Factorial of 5 should be 120");
return 0;
}
</syntaxhighlight>
=== ライブラリの改良 ===
C++23 では、標準ライブラリに多くの新しい機能が追加されたり、既存の機能が改良されたりします。これにより、より効率的なプログラミングが可能になります。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
#include <ranges>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto result = vec | std::views::filter([](int i) { return i % 2 == 0; });
for (int v : result) {
std::cout << v << std::endl; // 2 と 4 を出力
}
return 0;
}
</syntaxhighlight>
=== constexpr のさらなる拡張 ===
C++23 では、constexpr 関数や変数の機能がさらに拡張され、より多くのコードがコンパイル時に実行可能になります。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int square(int n) {
return n * n;
}
int main() {
constexpr int result = square(5);
static_assert(result == 25, "Square of 5 should be 25");
return 0;
}
</syntaxhighlight>
=== その他の改良点 ===
C++23 には、上記以外にも多くの改良が加えられています。
==== モジュールの改善 ====
モジュール機能がさらに改善され、ヘッダーファイルに依存しないモダンなコード構造が容易に作成できるようになります。
==== コンパイラの最適化の改善 ====
コンパイラの最適化がさらに強化され、より高速なコードの生成が可能になります。
==== ラムダ式の改善 ====
ラムダ式の機能が拡張され、より使いやすく強力な匿名関数が作成できるようになります。
これらの新機能や改良点により、C++23 はより強力で現代的なプログラミング言語となります。
== 移行の実践 ==
C++03(JIS C++)からC++23への移行は、新しい言語機能やライブラリの導入により、コードの品質、可読性、保守性を向上させる機会です。しかし、効果的な移行を行うには、慎重な計画と実践が必要です。以下では、C++03からC++23への移行の実践について説明します。
=== コードの移行戦略 ===
; 段階的なアプローチ : 一度にすべてのコードを移行するのではなく、段階的に移行を進めることで、リスクを最小限に抑えることができます。まずは新しい機能やライブラリを試験的に導入し、安定性を確認します。
; 最新の言語仕様の理解 : 移行作業を開始する前に、C++11、C++14、C++17、C++20で導入された主要な機能や変更点を理解し、移行の目標を明確にします。
; 互換性の確認 : 移行後のコードが既存のコードと互換性があるかどうかを確認し、必要に応じて修正を行います。
=== 互換性のチェック ===
; コンパイラの警告を活用する : コンパイラは移行に関する警告やヒントを提供します。これらの警告を注意深くチェックし、問題を解決します。
; 静的解析ツールの使用 : 静的解析ツールを使用して、コードの潜在的な問題や互換性のない部分を特定します。これにより、移行作業の効率が向上します。
=== テストと検証 ===
; ユニットテストの作成 : 移行後のコードが期待どおりに動作するかどうかを確認するために、ユニットテストを作成します。特に移行した部分に焦点を当ててテストを実行します。
; 統合テストの実施 : 移行後のコードが他のコンポーネントと適切に統合されているかどうかを確認するために、統合テストを実施します。
=== リファクタリングのベストプラクティス ===
; コードの単純化 : 新しい言語機能やライブラリを使用して、コードをより簡潔で理解しやすい形にリファクタリングします。
; モダンなコーディングスタイルの導入 : C++23の新しい機能やベストプラクティスに従って、コーディングスタイルを更新します。例えば、範囲ベースのforループやスマートポインタの使用を検討します。
=== ツールとリソース ===
; コンパイラのドキュメント : 移行に役立つコンパイラのドキュメントやリファレンスを参照します。コンパイラがサポートする新機能や変更点について理解しましょう。
; オンラインコミュニティとフォーラム : オンラインのコミュニティやフォーラムで他の開発者と情報を共有し、移行に関するアドバイスやベストプラクティスを得ることができます。
; サードパーティのツール : 移行をサポートするサードパーティのツールやリソースを活用します。静的解析ツールや移行支援ツールは、効率的な移行作業を支援します。
これらのベストプラクティスとリソースを活用することで、C++03からC++23への移行作業を効果的に進めることができます。移行のプロセスはチームやプロジェクトによって異なりますが、慎重な計画と適切なリソースの活用によって成功することができます。
=== clang-format ===
clang-format は、C++コードのフォーマットを自動化するツールです。このツールを使用することで、コーディングスタイルの一貫性を保ち、コードの可読性を向上させることができます。clang-format は、GoogleのコーディングスタイルやLLVMのコーディングスタイルなど、さまざまなスタイルガイドに準拠したフォーマットを提供します。
; 使用例
:# コマンドラインツールとしての使用
:#: <syntaxhighlight lang=bash>
clang-format -style=llvm -i example.cpp
</syntaxhighlight>
:#: このコマンドは、<code>example.cpp</code> ファイルを LLVM のスタイルでフォーマットし、ファイルに変更を直接適用します。
:# IDEやエディタのプラグイン
:#: clang-format には、多くのIDEやエディタ向けのプラグインが提供されています。これにより、IDE内でコードを編集する際に自動的にフォーマットを適用することができます。例えば、Visual Studio CodeやClionなどのIDEやエディタは、clang-formatプラグインをサポートしています。
; 利点
:; 一貫性の維持 : チーム全体で統一されたコーディングスタイルを維持することができます。
:; 可読性の向上 : コードのフォーマットが自動化されるため、コードの可読性が向上します。
:; 時間の節約 : 手動でコードをフォーマットする必要がなくなるため、開発者の時間を節約できます。
; 注意点
:; 設定のカスタマイズ : clang-formatは多くのカスタマイズオプションを提供していますが、すべてのスタイルガイドに対応するわけではありません。必要に応じて、フォーマットのルールを調整することができます。
:; 変更の検証 : 自動的なフォーマットは便利ですが、フォーマットの変更がコードの意図しない挙動の変更を引き起こす可能性があります。フォーマットを適用する前に、変更がコードに与える影響を検証することが重要です。
clang-formatは、C++コードのフォーマットに関する標準的なツールの一つであり、プロジェクト全体のコーディングスタイルを簡単に管理できる便利なツールです。
=== clang-tidy ===
clang-tidy は、C++コードの静的解析ツールであり、コードの品質やバグを検出し、修正するのに役立ちます。このツールは、コーディング規約に準拠していないコード、潜在的なバグ、パフォーマンスの問題などを特定し、修正するためのヒントや警告を提供します。clang-tidy は、LLVMプロジェクトに含まれています。
; 使用例
:# コマンドラインツールとしての使用
:#:<syntaxhighlight lang=bash>
clang-tidy source.cpp --checks=-*,modernize-*,-modernize-use-auto,-modernize-use-trailing-return-type
</syntaxhighlight>
:#: このコマンドは、<code>source.cpp</code> ファイルを静的解析し、<code>modernize</code> カテゴリのチェックを有効にして、<code>auto</code> および <code>trailing return type</code> の変換を除外します。
:# IDEやエディタのプラグイン
:#: clang-tidy は、多くのIDEやエディタ向けのプラグインと統合されています。これにより、コードを編集する際に自動的に静的解析を実行し、ヒントや警告を表示することができます。
; 利点
:; コード品質の向上 : 静的解析により、コードの品質が向上し、バグや問題が早期に検出されます。
:; コーディング規約の遵守 : カスタムチェックや既存のチェックを使用して、コーディング規約に準拠することができます。
:; 自動修正のサポート : 一部のチェックは、自動的に修正を提案することができます。
; 注意点
:; チェックの選択 : 過剰なチェックを有効にすると、多くの警告が発生し、開発者の負担が増える可能性があります。必要なチェックのみを有効にすることが重要です。
:; チェックの正確性 : すべての警告やヒントが正確であるわけではありません。開発者は、警告を慎重に検討し、適切な判断をする必要があります。
clang-tidyは、C++コードの静的解析に役立つ強力なツールであり、プロジェクトの品質を向上させるのに貢献します。ただし、適切な設定と選択されたチェックの調整が重要です。
== C++23 への移行における注意点 ==
C++23 への移行は、新しい機能や改良点を導入する一方で、いくつかの注意点や課題が存在します。以下では、移行作業中に留意すべきポイントについて説明します。
=== 非推奨の機能 ===
C++23 では、過去のバージョンで非推奨となった機能が削除されることがあります。したがって、移行作業中には非推奨の機能を使用していないかを確認し、それに対処する必要があります。非推奨の機能は、将来のバージョンで削除される可能性が高いため、早めの対応が重要です。
=== 既存のコードベースへの影響 ===
C++23 への移行は、既存のコードベースに影響を与える可能性があります。新しい言語機能やライブラリの導入により、既存のコードが互換性のない部分を含んでいる場合、修正が必要となります。移行作業中には、既存のコードを注意深く検討し、適切な修正を行う必要があります。
=== パフォーマンスへの影響 ===
新しい機能や改良点の導入により、コードのパフォーマンスに影響を与える可能性があります。特に、新しい言語機能やライブラリの使用方法によって、実行速度やメモリ使用量が変化する場合があります。移行作業中には、パフォーマンスの変化をベンチマークやプロファイリングによって評価し、必要に応じて最適化を行う必要があります。
=== マルチプラットフォーム対応 ===
C++23 の新機能や改良点は、すべてのプラットフォームで完全にサポートされるわけではありません。特定のプラットフォームやコンパイラによっては、一部の機能が利用できない場合があります。移行作業中には、ターゲットとするプラットフォームでのサポート状況を確認し、移行計画を立てる必要があります。
=== __cpp_* マクロによるコア言語とライブラリの実装状況の確認 ===
{{See also|[[C++/機能テストマクロ]]}}
C++23 には、新しい言語機能やライブラリの導入に伴い、__cpp_* マクロが使用されます。これらのマクロを使用することで、コンパイラやライブラリが特定の機能をサポートしているかどうかを確認することができます。移行作業中には、__cpp_* マクロを活用して、移行先の環境が新しい機能をサポートしているかどうかを確認する必要があります。
C++23 への移行は、新しい機能や改良点を活用してプロジェクトをより強力にする機会ですが、注意深い計画と実践が必要です。これらの注意点を把握し、適切な対処を行うことで、効果的な移行作業を行うことができます。
=(執筆中)=
== ケーススタディ ==
=== 具体的な移行プロジェクトの例 ===
=== 問題と解決策の実例 ===
== 追加リソース ==
=== 参考文献 ===
=== オンラインリソースとコミュニティ ===
=== ツールとライブラリ ===
== 附録 ==
=== C++11, C++14, C++17, C++20, C++23 の標準ライブラリの追加機能一覧 ===
=== よくある質問 (FAQ) ===
=== 用語集 ===
{{Nav}}
[[Category:C++]]
ponc5wlrb11zvi7shg6cj3jf3tuqeum
263084
263081
2024-11-05T04:05:06Z
Ef3
694
/* C++03 から C++23 までの主な変更点 */ より詳細なDescriptionを追加
263084
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
=== 移行の目的とメリット ===
C++03 から C++23 への移行は、開発者にとって多くのメリットをもたらします。最新の C++ 標準には、プログラムの安全性、効率性、可読性を向上させるための新機能と改良が多数含まれています。以下に、移行の主な目的とメリットを挙げます。
; コードの効率化
: C++11 以降、右辺値参照とムーブセマンティクスが導入され、リソース管理の効率が大幅に向上しました。これにより、不要なコピー操作を削減し、パフォーマンスが向上します。
: C++20 のコルーチンや並列アルゴリズムは、非同期処理や並列処理のパフォーマンスを大幅に向上させます。
; コードの安全性向上
: スマートポインタ (<code>std::shared_ptr</code>, <code>std::unique_ptr</code>) や <code>std::optional</code> などの新しいデータ型により、メモリリークやヌルポインタ参照などのバグを減らすことができます。
: <code>constexpr</code> の強化により、コンパイル時に評価されるコードが増え、ランタイムエラーの発生を防ぐことができます。
; 可読性とメンテナンス性の向上
: ラムダ式、構造化束縛、範囲ベース for ループなど、新しい記法により、コードが簡潔で読みやすくなります。
: モジュール機能の導入により、コードベースの分割と再利用が容易になります。
; 新しいライブラリ機能
: <code>std::filesystem</code>、<code>std::string_view</code>、<code>std::variant</code> などの新しい標準ライブラリが追加され、一般的なプログラミングタスクが簡素化されます。
これらのメリットにより、C++03 から C++23 への移行は、プログラマーの生産性を向上させ、より堅牢で効率的なソフトウェアを開発するための重要なステップとなります。
=== 手引書の構成と読み方 ===
この手引書は、C++03 から C++23 への移行をスムーズに行うためのガイドとして設計されています。以下のように構成されています。
; C++ の進化
: C++03 から C++23 までの各バージョンの主な変更点を概観し、全体像を把握します。
; 各バージョンの新機能
: C++11、C++14、C++17、C++20、C++23 の新機能を詳細に説明し、具体的な使用例を示します。
; 移行の実践
: コードの移行戦略、互換性のチェック、テストと検証、リファクタリングのベストプラクティス、移行を支援するツールとリソースを紹介します。
; 注意点
: 非推奨の機能、既存コードベースへの影響、パフォーマンスへの影響、マルチプラットフォーム対応についての考慮点を説明します。
; ケーススタディ
: 実際の移行プロジェクトの例を通じて、移行プロセスの具体的な問題と解決策を示します。
; 追加リソース
: 参考文献、オンラインリソース、ツールとライブラリを紹介し、学習を助けるための情報を提供します。
; 附録
: 各バージョンの標準ライブラリの追加機能一覧、よくある質問 (FAQ)、用語集をまとめます。
この手引書は、順を追って学ぶことも、特定の章だけを参照することも可能です。特定の新機能や移行の問題に直面した場合、その該当する章を読むことで、必要な情報をすばやく得ることができます。
=== 対象読者 ===
この手引書は、C++03 に精通しているが、C++11 以降の新しい標準にまだ移行していない開発者を対象としています。以下のような読者にとって有用です。
; C++03 を使用している現役の開発者
: C++03 での開発経験があり、最新の C++ 標準に移行したいと考えている方。
; C++ の最新機能に興味がある開発者
: C++11、C++14、C++17、C++20、C++23 の新機能を学び、自分のプロジェクトに適用したいと考えている方。
; 移行プロジェクトを担当している技術リーダーやマネージャー
: チームやプロジェクト全体で C++ のバージョンを移行する際に、具体的な計画と戦略を立てたい方。
; C++ のベストプラクティスを学びたい学生や新入社員
: 最新の C++ 標準に基づいたモダンなプログラミング手法を学びたい方。
この手引書は、初心者から上級者まで、C++ の最新機能とその実践的な適用方法を学びたい全ての開発者に役立つように設計されています。
== C++ の進化 ==
=== C++03 から C++23 までの主な変更点 ===
C++03 から C++23 までの間に、C++ 標準は大幅に進化し、多くの新機能と改良が導入されました。これにより、プログラミングの効率性、可読性、安全性が向上しました。以下は、各バージョンで導入された主な変更点の概要です。
; C++11
: '''自動型推論 (auto)''':型を明示することなく、コンパイラが型を推論する機能。これにより、冗長なコードを減らし、可読性が向上します。
: '''範囲ベースの for ループ''':コレクションや配列の要素を簡潔にループ処理するための新しい構文を提供します。
: '''スマートポインタ (shared_ptr, unique_ptr)''':メモリ管理の安全性を向上させるための自動的なリソース管理機能。
: '''ラムダ式''':無名関数を定義でき、関数オブジェクトを簡単に作成することが可能になります。
: '''右辺値参照とムーブセマンティクス''':リソースの効率的な移動を可能にし、パフォーマンスを向上させます。
: '''静的アサート (static_assert)''':コンパイル時に条件をチェックし、開発者が早期にエラーを捕捉できる機能です。
: '''コンテナの拡張 (例: emplace 系の関数)''':コンテナに直接要素を配置することで、余分なコピーを避けることができます。
; C++14
: '''二重引用符で区切られた文字列リテラル''':生文字列リテラルをサポートし、特殊文字を含む文字列を簡潔に記述できます。
: '''ジェネリックラムダ''':ラムダ式において、引数の型を推論する機能が追加されました。
: '''<code>std::make_unique</code>''':ユニークポインタを生成するための簡易関数。
: '''デフォルトパラメータのテンプレート型引数''':テンプレートでデフォルトの型引数を指定できるようになりました。
: '''コンパイラの強化 (constexpr の改良など)''':コンパイル時評価の能力が向上し、より多くの構文が constexpr で使用可能になりました。
; C++17
: '''構造化束縛''':複数の値をタプルのように同時にアンパックできる構文が導入されました。
: '''if および switch の初期化文''':if 文や switch 文の中で変数を宣言し、初期化できるようになりました。
: '''<code>std::optional</code>, <code>std::variant</code>, <code>std::any</code>''':型の安全性を向上させるための新しいコンテナ型が追加されました。
: '''<code>std::string_view</code>''':文字列の一部を参照することで、余分なコピーを避けることができます。
: '''並列アルゴリズム (並列 STL)''':並列処理を利用したアルゴリズムが標準ライブラリに追加されました。
: '''ファイルシステムライブラリ (<code>std::filesystem</code>)''':ファイルシステムの操作を行うための便利なAPIが提供されます。
: '''constexpr の拡張''':constexpr の能力が向上し、より多くの関数や構文がコンパイル時に評価できるようになりました。
; C++20
: '''コンセプト (concepts)''':テンプレートの制約を明示するための新しい機能が導入され、テンプレートの可読性とエラーメッセージが向上しました。
: '''コルーチン (coroutines)''':非同期プログラミングを簡素化するための新しい構文が追加されました。
: '''範囲ライブラリ (ranges)''':コレクションに対する操作をより直感的に行うための新しいAPIが提供されます。
: '''カスタムリテラル''':ユーザー定義のリテラルを作成でき、特定の型への変換が簡単になります。
: '''三重合併演算子 (三項演算子の拡張)''':より柔軟な条件式を記述できるようになりました。
: '''モジュール (modules)''':プログラムのモジュール化を促進し、コンパイル時間を短縮するための新しい機能。
: '''非同期プログラミングの改善''':新しい同期および非同期機能が追加され、非同期処理が容易になりました。
; C++23
: '''パターンマッチング''':複雑な条件分岐を簡潔に記述できる新しい機能が導入されました。
: '''コンパイル時プログラミングの強化''':より多くの機能がコンパイル時に利用可能になり、パフォーマンスの向上が図られます。
: '''ライブラリの改良 (標準ライブラリの追加や変更)''':新しいライブラリが追加され、既存のライブラリも強化されました。
: '''constexpr のさらなる拡張''':constexpr がさらに強化され、関数やデータ構造のコンパイル時評価が可能になりました。
これらの変更により、C++ はより強力で表現力豊かなプログラミング言語へと進化しました。
=== 新バージョンごとのハイライト (C++11, C++14, C++17, C++20, C++23) ===
==== C++11 のハイライト ====
; 自動型推論 (auto)
:<syntaxhighlight lang=c++>
auto x = 10; // x の型は int と推論される
</syntaxhighlight>
; 範囲ベース for ループ
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
for (auto& v : vec) {
std::cout << v << std::endl;
}
</syntaxhighlight>
; スマートポインタ
:<syntaxhighlight lang=c++>
std::shared_ptr<int> sp = std::make_shared<int>(10);
std::unique_ptr<int> up = std::make_unique<int>(20);
</syntaxhighlight>
; ラムダ式
:<syntaxhighlight lang=c++>
auto lambda = [](int x) { return x + 1; };
std::cout << lambda(5) << std::endl; // 6 を出力
</syntaxhighlight>
; 右辺値参照とムーブセマンティクス
:<syntaxhighlight lang=c++>
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1 のリソースが v2 にムーブされる
</syntaxhighlight>
; 静的アサート
:<syntaxhighlight lang=c++>
static_assert(sizeof(int) == 4, "int のサイズは 4 バイトでなければならない");
</syntaxhighlight>
==== C++14 のハイライト ====
; 二重引用符で区切られた文字列リテラル
:<syntaxhighlight lang=c++>
auto raw_string = R"(これは "raw" 文字列リテラルです)";
</syntaxhighlight>
; ジェネリックラムダ
:<syntaxhighlight lang=c++>
auto lambda = [](auto x, auto y) { return x + y; };
std::cout << lambda(1, 2) << std::endl; // 3 を出力
</syntaxhighlight>
; std::make_unique
:<syntaxhighlight lang=c++>
auto up = std::make_unique<int>(10);
</syntaxhighlight>
; デフォルトパラメータのテンプレート型引数
:<syntaxhighlight lang=c++>
template<typename T = int>
void func(T value = 0) {
std::cout << value << std::endl;
}
</syntaxhighlight>
; constexpr の改良
:<syntaxhighlight lang=c++>
constexpr int square(int x) {
return x * x;
}
</syntaxhighlight>
==== C++17 のハイライト ====
; 構造化束縛
:<syntaxhighlight lang=c++>
std::tuple<int, double, std::string> t = {1, 2.3, "hello"};
auto [i, d, s] = t;
</syntaxhighlight>
; if と switch の初期化文
:<syntaxhighlight lang=c++>
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second << std::endl;
}
</syntaxhighlight>
; std::optional, std::variant, std::any
:<syntaxhighlight lang=c++>
std::optional<int> opt = 42;
if (opt) {
std::cout << *opt << std::endl;
}
</syntaxhighlight>
; std::string_view
:<syntaxhighlight lang=c++>
std::string_view sv = "Hello, World!";
</syntaxhighlight>
; 並列アルゴリズム
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
std::sort(std::execution::par, vec.begin(), vec.end());
</syntaxhighlight>
; ファイルシステムライブラリ
:<syntaxhighlight lang=c++>
std::filesystem::path path = "/path/to/file";
if (std::filesystem::exists(path)) {
std::cout << "ファイルが存在します" << std::endl;
}
</syntaxhighlight>
==== C++20 のハイライト ====
; コンセプト
:<syntaxhighlight lang=c++>
template<typename T>
concept Addable = requires(T a, T b) {
{ a + b } -> std::convertible_to<T>;
};
Addable auto add(Addable auto a, Addable auto b) {
return a + b;
}
</syntaxhighlight>
; コルーチン
:<syntaxhighlight lang=c++>
std::future<int> async_func() {
co_return 42;
}
</syntaxhighlight>
; 範囲ライブラリ
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
auto result = vec | std::views::filter([](int x) { return x % 2 == 0; });
</syntaxhighlight>
; モジュール
:<syntaxhighlight lang=c++>
// my_module.cpp
export module my_module;
export int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
==== C++23 のハイライト ====
; パターンマッチング
:<syntaxhighlight lang=c++>
std::variant<int, std::string> v = "hello";
std::visit([](auto&& arg) {
if constexpr (std::is_same_v<std::decay_t<decltype(arg)>, int>) {
std::cout << "int: " << arg << std::endl;
} else if constexpr (std::is_same_v<std::decay_t<decltype(arg)>, std::string>) {
std::cout << "string: " << arg << std::endl;
}
}, v);
</syntaxhighlight>
; コンパイル時プログラミングの強化
:<syntaxhighlight lang=c++>
consteval int factorial(int n) {
return (n <= 1) ? 1 : (n * factorial(n - 1));
}
</syntaxhighlight>
; ライブラリの改良
:<syntaxhighlight lang=c++>
// 例: 新しいコンテナやアルゴリズムの追加
</syntaxhighlight>
これらの各バージョンの新機能は、C++ をより強力で柔軟にし、モダンなプログラミング手法を可能にします。この手引書では、これらの変更点とその活用方法を詳細に説明します。
== C++11 の新機能 ==
C++11 は、C++ 言語に数多くの新機能を導入し、プログラミングの効率性、可読性、そして安全性を大幅に向上させました。以下に、C++11 で導入された主要な機能について詳しく説明します。
=== 自動型推論 (auto) ===
C++11 では、<code>auto</code> キーワードを使って、変数の型を自動的に推論することができるようになりました。これにより、コードが簡潔になり、メンテナンス性が向上します。
:<syntaxhighlight lang=c++>
auto x = 10; // x の型は int と推論される
auto y = 3.14; // y の型は double と推論される
auto z = "Hello"; // z の型は const char* と推論される
</syntaxhighlight>
=== 範囲ベース for ループ ===
範囲ベース for ループは、コンテナや配列の要素を簡潔にループ処理するための構文を提供します。従来の for ループよりも可読性が向上します。
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
for (auto& v : vec) {
std::cout << v << std::endl;
}
</syntaxhighlight>
=== スマートポインタ (shared_ptr, unique_ptr) ===
C++11 では、メモリ管理を簡素化し、メモリリークを防ぐためのスマートポインタが導入されました。<code>shared_ptr</code> と <code>unique_ptr</code> は、所有権とライフタイム管理を自動化します。
: <code>auto_ptr</code> は、C++11で非推奨とされ、C++17で削除されました。
:<syntaxhighlight lang=c++>
std::shared_ptr<int> sp = std::make_shared<int>(10);
std::unique_ptr<int> up = std::make_unique<int>(20);
</syntaxhighlight>
=== ラムダ式 ===
ラムダ式は、無名関数を簡潔に定義できる新しい記法です。特に関数オブジェクトやコールバックの定義に便利です。
:<syntaxhighlight lang=c++>
auto add = [](int a, int b) {
return a + b;
};
std::cout << add(2, 3) << std::endl; // 5 を出力
</syntaxhighlight>
=== 右辺値参照とムーブセマンティクス ===
右辺値参照 (<code>&&</code>) とムーブセマンティクスは、リソースの所有権を効率的に移動するための機能です。これにより、不要なコピー操作が削減され、パフォーマンスが向上します。
:<syntaxhighlight lang=c++>
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1 のリソースが v2 にムーブされる
</syntaxhighlight>
=== 静的アサート (static_assert) ===
静的アサートは、コンパイル時に条件をチェックし、条件が満たされない場合にコンパイルエラーを発生させます。これにより、コードの安全性が向上します。
:<syntaxhighlight lang=c++>
static_assert(sizeof(int) == 4, "int のサイズは 4 バイトでなければならない");
</syntaxhighlight>
=== コンテナの拡張 (例: emplace 系の関数) ===
C++11 では、標準コンテナに対して新しいメンバ関数が追加されました。特に <code>emplace</code> 系の関数は、コンテナに要素を直接構築するためのものです。これにより、不要なコピーやムーブが省略されます。
:<syntaxhighlight lang=c++>
std::vector<std::pair<int, std::string>> vec;
vec.emplace_back(1, "one"); // 要素を直接構築
</syntaxhighlight>
=== その他の改良点 ===
C++11 には、上記以外にも多くの改良が加えられています。
; nullptr : 新しい null ポインタリテラル
:<syntaxhighlight lang=c++>
int* p = nullptr;
</syntaxhighlight>
; enum class : 型安全な列挙型
:<syntaxhighlight lang=c++>
enum class Color { Red, Green, Blue };
Color color = Color::Red;
</syntaxhighlight>
; 改良されたテンプレート機能 : 可変長テンプレート引数やテンプレートエイリアス
:<syntaxhighlight lang=c++>
template<typename... Args>
void func(Args... args) { /* ... */ }
template<typename T>
using Vec = std::vector<T>;
</syntaxhighlight>
; ユーザー定義リテラル : リテラルに対するカスタム処理
:<syntaxhighlight lang=c++>
long double operator "" _km(long double val) {
return val * 1000;
}
auto distance = 3.4_km;
</syntaxhighlight>
これらの新機能は、C++ 言語をより強力で使いやすくし、モダンなプログラミング手法を可能にします。次の章では、各新機能の詳細とその実践的な使用例をさらに詳しく説明していきます。
== C++14 の新機能 ==
C++14 は、C++11 で導入された機能を拡張し、さらに使いやすい言語機能を提供します。これにより、プログラミングの効率性と表現力が向上します。以下に、C++14 で導入された主要な機能について詳しく説明します。
=== 二重引用符で区切られた文字列リテラル ===
C++14 では、原文通りの形式で文字列を記述できる「生文字列リテラル」が導入されました。これにより、エスケープシーケンスを使用することなく、複雑な文字列を簡潔に記述できます。
; 使用例
:<syntaxhighlight lang=c++>
auto raw_string = R"(これは "raw" 文字列リテラルです\n
複数行に渡る文字列や特殊文字をそのまま記述できます。)";
std::cout << raw_string << std::endl;
</syntaxhighlight>
=== ジェネリックラムダ ===
C++14 では、ラムダ式の引数の型を自動的に推論する「ジェネリックラムダ」が導入されました。これにより、テンプレート関数のように汎用性の高いラムダ式を記述できます。
; 使用例
:<syntaxhighlight lang=c++>
auto add = [](auto x, auto y) {
return x + y;
};
std::cout << add(1, 2) << std::endl; // 3 を出力
std::cout << add(1.5, 2.5) << std::endl; // 4.0 を出力
</syntaxhighlight>
=== std::make_unique ===
C++14 では、<code>std::unique_ptr</code> を簡単に作成するためのヘルパー関数 <code>std::make_unique</code> が追加されました。これにより、<code>std::unique_ptr</code> の作成がより簡潔で安全になりました。
; 使用例
:<syntaxhighlight lang=c++>
auto up = std::make_unique<int>(10); // 自動的に new を使用してメモリを確保
std::cout << *up << std::endl; // 10 を出力
</syntaxhighlight>
=== デフォルトパラメータのテンプレート型引数 ===
C++14 では、テンプレート型引数にデフォルト値を指定できるようになりました。これにより、テンプレートの柔軟性と使いやすさが向上します。
; 使用例
:<syntaxhighlight lang=c++>
template<typename T = int>
void func(T value = 0) {
std::cout << value << std::endl;
}
func(); // 0 を出力
func(3.14); // 3.14 を出力
</syntaxhighlight>
=== コンパイラの強化 (constexpr の改良など) ===
C++14 では、<code>constexpr</code> 関数の機能が拡張され、より複雑な処理をコンパイル時に実行できるようになりました。これにより、コンパイル時に計算可能な式の範囲が広がりました。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
return (n <= 1) ? 1 : (n * factorial(n - 1));
}
static_assert(factorial(5) == 120, "5! は 120 でなければならない");
</syntaxhighlight>
=== その他の改良点 ===
C++14 には、上記以外にも多くの改良が加えられています。
==== 二項演算子の改良 ====
:<syntaxhighlight lang=c++>
template<typename T>
constexpr T pi = T(3.1415926535897932385); // テンプレート変数の定義
double radius = 5.0;
double circumference = 2 * pi<double> * radius; // テンプレート変数を使用
</syntaxhighlight>
==== 戻り値型推論 ====
:<syntaxhighlight lang=c++>
auto square(int x) {
return x * x;
}
std::cout << square(5) << std::endl; // 25 を出力
</syntaxhighlight>
==== より強力な型推論 ====
:<syntaxhighlight lang=c++>
std::vector<int> vec = {1, 2, 3, 4};
auto it = vec.begin(); // it の型は std::vector<int>::iterator と推論される
</syntaxhighlight>
これらの改良により、C++14 はさらに使いやすく、効率的なプログラミングを支援する多くの新機能を提供します。次の章では、C++17 の新機能について詳しく説明します。
== C++17 の新機能 ==
C++17 は、言語機能と標準ライブラリの両方に多くの改良を加え、より使いやすく強力なプログラミング環境を提供します。以下に、C++17 で導入された主要な機能について詳しく説明します。
=== 構造化束縛 ===
構造化束縛は、複数の値をタプルやペアのような構造から直接変数に展開するための構文です。これにより、コードの可読性が向上します。
; 使用例
:<syntaxhighlight lang=c++>
#include <tuple>
#include <iostream>
std::tuple<int, double, std::string> getData() {
return {1, 2.3, "example"};
}
int main() {
auto [i, d, s] = getData();
std::cout << i << ", " << d << ", " << s << std::endl;
return 0;
}
</syntaxhighlight>
=== if と switch の初期化文 ===
C++17 では、<code>if</code> および <code>switch</code> ステートメントの条件式の前に初期化文を追加できるようになりました。これにより、スコープを限定した変数の宣言が可能になります。
; 使用例
:<syntaxhighlight lang=c++>
if (int x = getValue(); x > 0) {
std::cout << "Positive: " << x << std::endl;
} else {
std::cout << "Non-positive: " << x << std::endl;
}
switch (int y = getStatus(); y) {
case 0:
std::cout << "Status is zero" << std::endl;
break;
default:
std::cout << "Status is non-zero" << std::endl;
break;
}
</syntaxhighlight>
=== std::optional, std::variant, std::any ===
C++17 では、新しい型 <code>std::optional</code>, <code>std::variant</code>, <code>std::any</code> が追加され、より柔軟で安全なデータ管理が可能になりました。
==== std::optional ====
<code>std::optional</code> は、値が存在するかどうかを表すための型です。
:<syntaxhighlight lang=c++>
#include <optional>
#include <iostream>
std::optional<int> getOptionalValue(bool giveValue) {
if (giveValue) return 42;
else return std::nullopt;
}
int main() {
auto value = getOptionalValue(true);
if (value) {
std::cout << "Value: " << *value << std::endl;
} else {
std::cout << "No value" << std::endl;
}
return 0;
}
</syntaxhighlight>
==== std::variant ====
<code>std::variant</code> は、異なる型の値を一つにまとめて扱うための型です。
:<syntaxhighlight lang=c++>
#include <variant>
#include <iostream>
std::variant<int, double, std::string> getVariant() {
return 42; // または、2.3 や "example"
}
int main() {
auto v = getVariant();
std::visit([](auto&& arg) { std::cout << arg << std::endl; }, v);
return 0;
}
</syntaxhighlight>
==== std::any ====
<code>std::any</code> は、任意の型の値を保持できる型です。
:<syntaxhighlight lang=c++>
#include <any>
#include <iostream>
int main() {
std::any a = 42;
a = std::string("example");
try {
std::cout << std::any_cast<std::string>(a) << std::endl;
} catch (const std::bad_any_cast& e) {
std::cout << "Bad any cast: " << e.what() << std::endl;
}
return 0;
}
</syntaxhighlight>
=== std::string_view ===
<code>std::string_view</code> は、文字列の一部を効率的に参照するための型です。コピーを伴わないため、パフォーマンスが向上します。
; 使用例
:<syntaxhighlight lang=c++>
#include <string_view>
#include <iostream>
void printString(std::string_view sv) {
std::cout << sv << std::endl;
}
int main() {
std::string str = "Hello, World!";
printString(str);
printString("Temporary string");
return 0;
}
</syntaxhighlight>
=== 並列アルゴリズム (並列 STL) ===
C++17 では、標準ライブラリのアルゴリズムに対して並列実行が可能なオプションが追加されました。これにより、大規模データの処理が高速化されます。
; 使用例
:<syntaxhighlight lang=c++>
#include <algorithm>
#include <vector>
#include <execution>
#include <iostream>
int main() {
std::vector<int> vec(1000000, 1);
std::transform(std::execution::par, vec.begin(), vec.end(), vec.begin(), [](int n) { return n * 2; });
std::cout << vec[0] << std::endl; // 2 を出力
return 0;
}
</syntaxhighlight>
=== ファイルシステムライブラリ (std::filesystem) ===
C++17 では、ファイルやディレクトリの操作を簡潔に行うためのファイルシステムライブラリが追加されました。
; 使用例
:<syntaxhighlight lang=c++>
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main() {
fs::create_directory("example_dir");
for (const auto& entry : fs::directory_iterator(".")) {
std::cout << entry.path() << std::endl;
}
fs::remove_all("example_dir");
return 0;
}
</syntaxhighlight>
=== constexpr の拡張 ===
C++17 では、<code>constexpr</code> 関数の機能がさらに拡張され、より複雑な処理をコンパイル時に実行できるようになりました。これにより、コンパイル時に計算可能な式の範囲がさらに広がりました。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int fibonacci(int n) {
if (n <= 1) return n;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
static_assert(fibonacci(10) == 55, "10番目のフィボナッチ数は55である必要があります");
</syntaxhighlight>
=== その他の改良点 ===
C++17 には、上記以外にも多くの改良が加えられています。
==== テンプレート引数推論の改善 ====
:<syntaxhighlight lang=c++>
std::pair p = std::make_pair(1, 2.5); // 型を明示する必要がない
</syntaxhighlight>
==== fold 式 ====
:<syntaxhighlight lang=c++>
template<typename... Args>
auto sum(Args... args) {
return (args + ...);
}
std::cout << sum(1, 2, 3, 4) << std::endl; // 10 を出力
</syntaxhighlight>
==== inline 変数 ====
:<syntaxhighlight lang=c++>
struct S {
static inline int x = 10;
};
std::cout << S::x << std::endl; // 10 を出力
</syntaxhighlight>
これらの新機能により、C++17 はさらに使いやすく、効率的なプログラミングを支援する多くの新機能を提供します。次の章では、C++20 の新機能について詳しく説明します。
== C++20 の新機能 ==
C++20 は、C++ 言語の歴史の中でも特に多くの革新をもたらしたバージョンです。新しい言語機能とライブラリの改良により、プログラマーはより強力で表現力豊かなコードを書けるようになりました。以下に、C++20 で導入された主要な機能について詳しく説明します。
=== コンセプト (concepts) ===
コンセプトは、テンプレートの引数が満たすべき条件を指定するための新しい機能です。これにより、テンプレートプログラミングがより直感的で、エラーメッセージもわかりやすくなります。
; 使用例
:<syntaxhighlight lang=c++>
#include <concepts>
#include <iostream>
template<typename T>
concept Incrementable = requires(T x) {
++x;
x++;
};
template<Incrementable T>
void increment(T& x) {
++x;
}
int main() {
int a = 1;
increment(a);
std::cout << a << std::endl; // 2 を出力
return 0;
}
</syntaxhighlight>
=== コルーチン (coroutines) ===
コルーチンは、中断と再開が可能な関数の一種で、非同期プログラミングや生成器の実装に使われます。C++20 では、コルーチンのためのサポートが標準ライブラリに追加されました。
; 使用例
:<syntaxhighlight lang=c++>
#include <coroutine>
#include <iostream>
struct Generator {
struct promise_type {
int current_value;
Generator get_return_object() { return Generator{this}; }
std::suspend_always initial_suspend() { return {}; }
std::suspend_always final_suspend() noexcept { return {}; }
std::suspend_always yield_value(int value) {
current_value = value;
return {};
}
void return_void() {}
void unhandled_exception() { std::exit(1); }
};
promise_type* promise;
Generator(promise_type* p) : promise(p) {}
bool move_next() { return !promise->final_suspend().await_ready(); }
int current_value() { return promise->current_value; }
};
Generator counter() {
for (int i = 0; i < 3; ++i)
co_yield i;
}
int main() {
auto gen = counter();
while (gen.move_next()) {
std::cout << gen.current_value() << std::endl;
}
return 0;
}
</syntaxhighlight>
=== 範囲ライブラリ (ranges) ===
範囲ライブラリは、アルゴリズムとデータ構造をより一貫して扱うための新しいフレームワークです。これにより、コードの可読性と保守性が向上します。
; 使用例
:<syntaxhighlight lang=c++>
#include <ranges>
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto result = vec | std::ranges::views::filter([](int i) { return i % 2 == 0; })
| std::ranges::views::transform([](int i) { return i * i; });
for (int v : result) {
std::cout << v << std::endl; // 4 と 16 を出力
}
return 0;
}
</syntaxhighlight>
=== カスタムリテラル ===
C++20 では、ユーザー定義リテラルの記述が簡素化され、より柔軟に扱えるようになりました。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
#include <chrono>
using namespace std::literals::chrono_literals;
int main() {
auto duration = 10s + 2min;
std::cout << "Duration: " << duration.count() << " seconds" << std::endl; // 130 秒を出力
return 0;
}
</syntaxhighlight>
=== 三重合併演算子 (三項演算子の拡張) ===
C++20 では、三項演算子(条件演算子)を拡張し、より柔軟に使えるようになりました。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
int main() {
int a = 5, b = 10;
int min_value = (a <=> b < 0) ? a : b;
std::cout << "Minimum value: " << min_value << std::endl; // 5 を出力
return 0;
}
</syntaxhighlight>
=== モジュール (modules) ===
モジュールは、ヘッダーファイルに依存しない新しいコード構造で、ビルド時間の短縮と依存関係の管理が容易になります。
; 使用例
:; module.cpp
::<syntaxhighlight lang=c++>
export module my_module;
export int add(int a, int b) {
return a + b;
}
</syntaxhighlight>
:; main.cpp
::<syntaxhighlight lang=c++>
import my_module;
#include <iostream>
int main() {
std::cout << add(3, 4) << std::endl; // 7 を出力
return 0;
}
</syntaxhighlight>
=== 非同期プログラミングの改善 ===
C++20 では、非同期プログラミングがさらに改善され、非同期タスクの管理がより簡単になりました。
; 使用例
:<syntaxhighlight lang=c++>
#include <future>
#include <iostream>
int main() {
auto future = std::async([] {
return 42;
});
std::cout << "Result: " << future.get() << std::endl; // 42 を出力
return 0;
}
</syntaxhighlight>
=== その他の改良点 ===
C++20 には、上記以外にも多くの改良が加えられています。
==== スペースシップ演算子 (<=>) ====
スペースシップ演算子を使用すると、比較演算子を簡単に実装できます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <compare>
struct Point {
int x, y;
auto operator<=>(const Point&) const = default;
};
int main() {
Point p1{1, 2}, p2{1, 3};
if (p1 < p2) {
std::cout << "p1 is less than p2" << std::endl;
}
return 0;
}
</syntaxhighlight>
==== 透過的な関数オブジェクト ====
<code>std::less<></code> や <code>std::equal_to<></code> などの透過的な関数オブジェクトが導入され、汎用性が向上しました。
:<syntaxhighlight lang=c++>
#include <map>
#include <iostream>
int main() {
std::map<int, std::string, std::less<>> my_map;
my_map[10] = "ten";
my_map[20] = "twenty";
auto it = my_map.find(15);
if (it != my_map.end()) {
std::cout << "Found: " << it->second << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
</syntaxhighlight>
これらの新機能により、C++20 はさらに強力で使いやすい言語となり、現代のプログラミングニーズに応える多くの新しいツールと機能を提供します。次の章では、C++23 の新機能について詳しく説明します。
== C++23 の新機能 ==
C++23 は、C++ 言語のさらなる進化をもたらし、より強力で使いやすいプログラミング環境を提供します。以下に、C++23 で導入される主要な機能について詳しく説明します。
=== パターンマッチング ===
パターンマッチングは、データ構造や型に対するパターンを記述し、それに基づいて条件分岐を行うための新しい機能です。これにより、より直感的で柔軟な制御フローが可能になります。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
void process_variant(const std::variant<int, double, std::string>& var) {
if (auto value = std::get_if<int>(&var)) {
std::cout << "Integer value: " << *value << std::endl;
} else if (auto value = std::get_if<double>(&var)) {
std::cout << "Double value: " << *value << std::endl;
} else if (auto value = std::get_if<std::string>(&var)) {
std::cout << "String value: " << *value << std::endl;
} else {
std::cout << "Unknown variant" << std::endl;
}
}
int main() {
process_variant(42);
process_variant(3.14);
process_variant("hello");
return 0;
}
</syntaxhighlight>
=== コンパイル時プログラミングの強化 ===
C++23 では、テンプレートメタプログラミングや constexpr 関数など、コンパイル時に実行されるプログラミングの機能がさらに強化されました。これにより、より高度なコンパイル時最適化やメタプログラミングが可能になります。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int factorial(int n) {
if (n <= 1) return 1;
else return n * factorial(n - 1);
}
int main() {
constexpr int result = factorial(5);
static_assert(result == 120, "Factorial of 5 should be 120");
return 0;
}
</syntaxhighlight>
=== ライブラリの改良 ===
C++23 では、標準ライブラリに多くの新しい機能が追加されたり、既存の機能が改良されたりします。これにより、より効率的なプログラミングが可能になります。
; 使用例
:<syntaxhighlight lang=c++>
#include <iostream>
#include <ranges>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto result = vec | std::views::filter([](int i) { return i % 2 == 0; });
for (int v : result) {
std::cout << v << std::endl; // 2 と 4 を出力
}
return 0;
}
</syntaxhighlight>
=== constexpr のさらなる拡張 ===
C++23 では、constexpr 関数や変数の機能がさらに拡張され、より多くのコードがコンパイル時に実行可能になります。
; 使用例
:<syntaxhighlight lang=c++>
constexpr int square(int n) {
return n * n;
}
int main() {
constexpr int result = square(5);
static_assert(result == 25, "Square of 5 should be 25");
return 0;
}
</syntaxhighlight>
=== その他の改良点 ===
C++23 には、上記以外にも多くの改良が加えられています。
==== モジュールの改善 ====
モジュール機能がさらに改善され、ヘッダーファイルに依存しないモダンなコード構造が容易に作成できるようになります。
==== コンパイラの最適化の改善 ====
コンパイラの最適化がさらに強化され、より高速なコードの生成が可能になります。
==== ラムダ式の改善 ====
ラムダ式の機能が拡張され、より使いやすく強力な匿名関数が作成できるようになります。
これらの新機能や改良点により、C++23 はより強力で現代的なプログラミング言語となります。
== 移行の実践 ==
C++03(JIS C++)からC++23への移行は、新しい言語機能やライブラリの導入により、コードの品質、可読性、保守性を向上させる機会です。しかし、効果的な移行を行うには、慎重な計画と実践が必要です。以下では、C++03からC++23への移行の実践について説明します。
=== コードの移行戦略 ===
; 段階的なアプローチ : 一度にすべてのコードを移行するのではなく、段階的に移行を進めることで、リスクを最小限に抑えることができます。まずは新しい機能やライブラリを試験的に導入し、安定性を確認します。
; 最新の言語仕様の理解 : 移行作業を開始する前に、C++11、C++14、C++17、C++20で導入された主要な機能や変更点を理解し、移行の目標を明確にします。
; 互換性の確認 : 移行後のコードが既存のコードと互換性があるかどうかを確認し、必要に応じて修正を行います。
=== 互換性のチェック ===
; コンパイラの警告を活用する : コンパイラは移行に関する警告やヒントを提供します。これらの警告を注意深くチェックし、問題を解決します。
; 静的解析ツールの使用 : 静的解析ツールを使用して、コードの潜在的な問題や互換性のない部分を特定します。これにより、移行作業の効率が向上します。
=== テストと検証 ===
; ユニットテストの作成 : 移行後のコードが期待どおりに動作するかどうかを確認するために、ユニットテストを作成します。特に移行した部分に焦点を当ててテストを実行します。
; 統合テストの実施 : 移行後のコードが他のコンポーネントと適切に統合されているかどうかを確認するために、統合テストを実施します。
=== リファクタリングのベストプラクティス ===
; コードの単純化 : 新しい言語機能やライブラリを使用して、コードをより簡潔で理解しやすい形にリファクタリングします。
; モダンなコーディングスタイルの導入 : C++23の新しい機能やベストプラクティスに従って、コーディングスタイルを更新します。例えば、範囲ベースのforループやスマートポインタの使用を検討します。
=== ツールとリソース ===
; コンパイラのドキュメント : 移行に役立つコンパイラのドキュメントやリファレンスを参照します。コンパイラがサポートする新機能や変更点について理解しましょう。
; オンラインコミュニティとフォーラム : オンラインのコミュニティやフォーラムで他の開発者と情報を共有し、移行に関するアドバイスやベストプラクティスを得ることができます。
; サードパーティのツール : 移行をサポートするサードパーティのツールやリソースを活用します。静的解析ツールや移行支援ツールは、効率的な移行作業を支援します。
これらのベストプラクティスとリソースを活用することで、C++03からC++23への移行作業を効果的に進めることができます。移行のプロセスはチームやプロジェクトによって異なりますが、慎重な計画と適切なリソースの活用によって成功することができます。
=== clang-format ===
clang-format は、C++コードのフォーマットを自動化するツールです。このツールを使用することで、コーディングスタイルの一貫性を保ち、コードの可読性を向上させることができます。clang-format は、GoogleのコーディングスタイルやLLVMのコーディングスタイルなど、さまざまなスタイルガイドに準拠したフォーマットを提供します。
; 使用例
:# コマンドラインツールとしての使用
:#: <syntaxhighlight lang=bash>
clang-format -style=llvm -i example.cpp
</syntaxhighlight>
:#: このコマンドは、<code>example.cpp</code> ファイルを LLVM のスタイルでフォーマットし、ファイルに変更を直接適用します。
:# IDEやエディタのプラグイン
:#: clang-format には、多くのIDEやエディタ向けのプラグインが提供されています。これにより、IDE内でコードを編集する際に自動的にフォーマットを適用することができます。例えば、Visual Studio CodeやClionなどのIDEやエディタは、clang-formatプラグインをサポートしています。
; 利点
:; 一貫性の維持 : チーム全体で統一されたコーディングスタイルを維持することができます。
:; 可読性の向上 : コードのフォーマットが自動化されるため、コードの可読性が向上します。
:; 時間の節約 : 手動でコードをフォーマットする必要がなくなるため、開発者の時間を節約できます。
; 注意点
:; 設定のカスタマイズ : clang-formatは多くのカスタマイズオプションを提供していますが、すべてのスタイルガイドに対応するわけではありません。必要に応じて、フォーマットのルールを調整することができます。
:; 変更の検証 : 自動的なフォーマットは便利ですが、フォーマットの変更がコードの意図しない挙動の変更を引き起こす可能性があります。フォーマットを適用する前に、変更がコードに与える影響を検証することが重要です。
clang-formatは、C++コードのフォーマットに関する標準的なツールの一つであり、プロジェクト全体のコーディングスタイルを簡単に管理できる便利なツールです。
=== clang-tidy ===
clang-tidy は、C++コードの静的解析ツールであり、コードの品質やバグを検出し、修正するのに役立ちます。このツールは、コーディング規約に準拠していないコード、潜在的なバグ、パフォーマンスの問題などを特定し、修正するためのヒントや警告を提供します。clang-tidy は、LLVMプロジェクトに含まれています。
; 使用例
:# コマンドラインツールとしての使用
:#:<syntaxhighlight lang=bash>
clang-tidy source.cpp --checks=-*,modernize-*,-modernize-use-auto,-modernize-use-trailing-return-type
</syntaxhighlight>
:#: このコマンドは、<code>source.cpp</code> ファイルを静的解析し、<code>modernize</code> カテゴリのチェックを有効にして、<code>auto</code> および <code>trailing return type</code> の変換を除外します。
:# IDEやエディタのプラグイン
:#: clang-tidy は、多くのIDEやエディタ向けのプラグインと統合されています。これにより、コードを編集する際に自動的に静的解析を実行し、ヒントや警告を表示することができます。
; 利点
:; コード品質の向上 : 静的解析により、コードの品質が向上し、バグや問題が早期に検出されます。
:; コーディング規約の遵守 : カスタムチェックや既存のチェックを使用して、コーディング規約に準拠することができます。
:; 自動修正のサポート : 一部のチェックは、自動的に修正を提案することができます。
; 注意点
:; チェックの選択 : 過剰なチェックを有効にすると、多くの警告が発生し、開発者の負担が増える可能性があります。必要なチェックのみを有効にすることが重要です。
:; チェックの正確性 : すべての警告やヒントが正確であるわけではありません。開発者は、警告を慎重に検討し、適切な判断をする必要があります。
clang-tidyは、C++コードの静的解析に役立つ強力なツールであり、プロジェクトの品質を向上させるのに貢献します。ただし、適切な設定と選択されたチェックの調整が重要です。
== C++23 への移行における注意点 ==
C++23 への移行は、新しい機能や改良点を導入する一方で、いくつかの注意点や課題が存在します。以下では、移行作業中に留意すべきポイントについて説明します。
=== 非推奨の機能 ===
C++23 では、過去のバージョンで非推奨となった機能が削除されることがあります。したがって、移行作業中には非推奨の機能を使用していないかを確認し、それに対処する必要があります。非推奨の機能は、将来のバージョンで削除される可能性が高いため、早めの対応が重要です。
=== 既存のコードベースへの影響 ===
C++23 への移行は、既存のコードベースに影響を与える可能性があります。新しい言語機能やライブラリの導入により、既存のコードが互換性のない部分を含んでいる場合、修正が必要となります。移行作業中には、既存のコードを注意深く検討し、適切な修正を行う必要があります。
=== パフォーマンスへの影響 ===
新しい機能や改良点の導入により、コードのパフォーマンスに影響を与える可能性があります。特に、新しい言語機能やライブラリの使用方法によって、実行速度やメモリ使用量が変化する場合があります。移行作業中には、パフォーマンスの変化をベンチマークやプロファイリングによって評価し、必要に応じて最適化を行う必要があります。
=== マルチプラットフォーム対応 ===
C++23 の新機能や改良点は、すべてのプラットフォームで完全にサポートされるわけではありません。特定のプラットフォームやコンパイラによっては、一部の機能が利用できない場合があります。移行作業中には、ターゲットとするプラットフォームでのサポート状況を確認し、移行計画を立てる必要があります。
=== __cpp_* マクロによるコア言語とライブラリの実装状況の確認 ===
{{See also|[[C++/機能テストマクロ]]}}
C++23 には、新しい言語機能やライブラリの導入に伴い、__cpp_* マクロが使用されます。これらのマクロを使用することで、コンパイラやライブラリが特定の機能をサポートしているかどうかを確認することができます。移行作業中には、__cpp_* マクロを活用して、移行先の環境が新しい機能をサポートしているかどうかを確認する必要があります。
C++23 への移行は、新しい機能や改良点を活用してプロジェクトをより強力にする機会ですが、注意深い計画と実践が必要です。これらの注意点を把握し、適切な対処を行うことで、効果的な移行作業を行うことができます。
=(執筆中)=
== ケーススタディ ==
=== 具体的な移行プロジェクトの例 ===
=== 問題と解決策の実例 ===
== 追加リソース ==
=== 参考文献 ===
=== オンラインリソースとコミュニティ ===
=== ツールとライブラリ ===
== 附録 ==
=== C++11, C++14, C++17, C++20, C++23 の標準ライブラリの追加機能一覧 ===
=== よくある質問 (FAQ) ===
=== 用語集 ===
{{Nav}}
[[Category:C++]]
a8h7kfgx2tv7ofuu1gwj0ts6zb2se3b
C++/配列とベクトル
0
39820
263072
249662
2024-11-05T03:46:39Z
Ef3
694
主な変更点: C++23の新機能に関する記述を追加 std::rangesとspanの使用例を拡充 パフォーマンスと最適化に関する情報を追加 エラー処理とメモリ管理のベストプラクティスを追加 モダンC++での推奨パターンを明確化
263072
wikitext
text/x-wiki
{{Nav}}
== 配列とベクトルの基本概念 ==
=== 配列とベクトルの定義と基本的な使い方 ===
配列とベクトルは、複数の要素を格納するための主要なデータ構造です。配列は固定サイズの連続したメモリ領域に要素を格納し、要素の追加や削除が困難です。一方、ベクトルは動的にメモリを確保し、要素の追加や削除が容易です。
C++23では、これらのコンテナに対する操作がさらに強化され、より柔軟な使用が可能になっています。
=== モダンC++における配列とベクトルの選択 ===
モダンC++では、以下の3つの主要な選択肢があります:
; 生の配列(Raw Array)
: 最も基本的だが、機能が限定的
; <code>std::array</code>
: 固定長配列の型安全な実装
; <code>std::vector</code>
: 動的サイズ配列の型安全な実装
== std::arrayの使用 ==
=== C++20以降のstd::array ===
<code>std::array</code>は固定長配列の型安全な実装を提供します:
:<syntaxhighlight lang=cpp>
#include <array>
// C++20からは要素型と要素数の推論が改善
auto arr1 = std::array{1, 2, 3, 4, 5}; // std::array<int, 5>
auto arr2 = std::array<double, 3>{1.0, 2.0, 3.0};
// C++23からは、より柔軟な集成体初期化が可能
std::array<int, 3> arr3{.value = {1, 2, 3}};
</syntaxhighlight>
=== std::arrayの新機能 ===
C++23では、<code>std::array</code>に以下の機能が追加されています:
* <code>constexpr</code>操作の強化
* 要素アクセスの最適化
* パターンマッチングのサポート
== std::vectorの使用 ==
=== C++20以降のstd::vector ===
<code>std::vector</code>は動的配列の型安全な実装を提供し、C++20以降で多くの改善が加えられています:
:<syntaxhighlight lang=cpp>
#include <vector>
// C++20からの型推論と初期化の改善
auto vec1 = std::vector{1, 2, 3, 4, 5};
// C++23からのより柔軟なメモリ管理
std::vector<int> vec2;
vec2.reserve(100); // 最適化されたメモリ予約
vec2.resize(50); // 最適化されたリサイズ
// C++23からの新しいイテレータ操作
auto pos = std::ranges::find(vec2, 3);
if (pos != vec2.end()) {
// 要素が見つかった場合の処理
}
</syntaxhighlight>
=== vectorの新機能 ===
C++23で追加された主な機能:
* コンストラクタの最適化
* メモリ管理の改善
* <code>constexpr</code>対応の強化
* パターンマッチングのサポート
== スパンの活用 ==
=== std::spanによる配列の参照 ===
C++20で導入された<code>std::span</code>は、配列やベクトルの参照を安全に扱うための機能を提供します:
:<syntaxhighlight lang=cpp>
#include <span>
void processArray(std::span<int> data) {
for (int& value : data) {
// 処理
}
}
// 使用例
std::array<int, 5> arr{1, 2, 3, 4, 5};
std::vector<int> vec{1, 2, 3, 4, 5};
processArray(arr);
processArray(vec);
</syntaxhighlight>
== ranges機能の活用 ==
=== C++20のrangesライブラリ ===
C++20で導入された<code>ranges</code>ライブラリは、配列やベクトルの操作をより直感的にします:
:<syntaxhighlight lang=cpp>
#include <ranges>
auto vec = std::vector{1, 2, 3, 4, 5};
// 値の変換
auto transformed = vec
| std::views::transform([](int n) { return n * 2; });
// フィルタリング
auto filtered = vec
| std::views::filter([](int n) { return n % 2 == 0; });
// パイプライン処理
auto result = vec
| std::views::filter([](int n) { return n % 2 == 0; })
| std::views::transform([](int n) { return n * 2; });
</syntaxhighlight>
== コンテナの操作 ==
=== モダンな要素アクセス ===
C++23では、コンテナの要素アクセスが改善されています:
:<syntaxhighlight lang=cpp>
// イテレータを使用した安全なアクセス
for (auto it = vec.begin(); it != vec.end(); ++it) {
*it *= 2; // 要素の変更
}
// 範囲forループによる簡潔なアクセス
for (auto& elem : vec) {
elem *= 2;
}
// std::rangesを使用した宣言的なアプローチ
std::ranges::for_each(vec, [](auto& elem) {
elem *= 2;
});
</syntaxhighlight>
=== パフォーマンスの最適化 ===
C++23では、以下のようなパフォーマンス最適化が可能です:
* Small Buffer Optimization (SBO)の改善
* メモリアロケーションの最適化
* 移動セマンティクスの強化
== 実践的なテクニック ==
=== エラー処理 ===
C++23では、より堅牢なエラー処理が可能になっています:
:<syntaxhighlight lang=cpp>
// 範囲チェック付きアクセス
try {
auto& elem = vec.at(5);
} catch (const std::out_of_range& e) {
// 範囲外アクセスの処理
}
// C++23からのより効率的な例外処理
auto result = vec.try_emplace(5, 42);
if (!result) {
// エラー処理
}
</syntaxhighlight>
=== メモリ管理 ===
効率的なメモリ管理のためのベストプラクティス:
* <code>reserve()</code>による事前メモリ確保
* <code>shrink_to_fit()</code>による未使用メモリの解放
* カスタムアロケータの活用
== 新機能とベストプラクティス ==
=== C++23の新機能 ===
* monadic操作のサポート
* パターンマッチング
* より強力な<code>constexpr</code>サポート
* メモリ管理の最適化
=== 推奨される使用パターン ===
* 固定長配列には<code>std::array</code>を使用
* 動的サイズには<code>std::vector</code>を使用
* 参照には<code>std::span</code>を活用
* アルゴリズムには<code>ranges</code>を使用
{{Nav}}
{{DEFAULTSORT:はいれつとへくとる}}
[[Category:C++]]
hkoxkgsx1286jp0b5vmjrto1l3ehwoz
C++/構造化束縛宣言
0
39843
263051
250072
2024-11-04T22:50:13Z
Ef3
694
校閲と推敲
263051
wikitext
text/x-wiki
{{Nav}}
== 概要 ==
C++17で導入された構造化束縛宣言(''Structured Binding Declaration'')は、タプルや構造体、配列から複数の値を簡単に取り出す機能です。従来はタプルの要素にアクセスするために<code>std::get<>()</code>関数を使用する必要がありましたが、構造化束縛宣言を利用することで、コードがよりシンプルになります。この機能は、タプルや構造体からの値の抽出を簡潔にし、一時的なオブジェクトからの値の取り出しを容易にすることを目的としています。
== 構文 ==
構造化束縛宣言は<code>auto</code>キーワードと角括弧<code>[]</code>を使用して宣言します。以下に基本的な構文と使用例を示します。
:<syntaxhighlight lang=c++>
// タプルの構造化束縛
auto [x, y, z] = getTuple();
// 構造体の構造化束縛
struct Data { int x; double y; };
Data d = ...;
auto [x, y] = d;
// 配列の構造化束縛
int array[] = {1, 2, 3};
auto [a, b, c] = array;
</syntaxhighlight>
== スコープとライフタイム ==
構造化束縛で宣言された変数のスコープは、その変数が定義されたスコープ内になります。ライフタイムは抽出元のオブジェクトによって決まります。
:<syntaxhighlight lang=c++>
std::tuple<int, double> getTuple() {
return {1, 3.14};
}
void process() {
auto [x, y] = getTuple(); // xとyのライフタイムはこの関数内
// xとyの操作...
}
</syntaxhighlight>
参照への束縛も可能で、その場合は抽出元への参照が束縛されます。
:<syntaxhighlight lang=c++>
std::tuple<int, double&> getTuple() {
double d = 3.14;
return {1, d};
}
void process() {
auto &[x, y] = getTuple(); // yはdouble&
// yを変更するとdも変更される
}
</syntaxhighlight>
{{コラム|C++の束縛|width=100%|2=プログラミング言語におけるデータの束縛(Binding)とは、名前(変数)にデータを関連付けることを指します。C++言語でもさまざまな種類の束縛があり、その正確な理解が重要です。
最も基本的な束縛は、変数宣言時の束縛です。
:<syntaxhighlight lang=c++>
int x{42}; // xに42が束縛される
</syntaxhighlight>
値の束縛に加え、C++では参照による束縛も可能です。
:<syntaxhighlight lang=c++>
int y{123};
int& z{y}; // zにyの参照が束縛される
</syntaxhighlight>
この場合、zはyそのものを参照するエイリアスとなり、zを変更するとyの値も変わります。
構造化束縛宣言が導入されるまでは、タプルから値を取り出す際は<code>std::get()</code>関数を使用する必要がありました。
:<syntaxhighlight lang=c++>
std::tuple<int, double> pair = {1, 3.14};
int x = std::get<0>(pair); // 1が取り出される
double y = std::get<1>(pair); // 3.14が取り出される
</syntaxhighlight>
構造化束縛宣言では、この操作が1行で書けます。
:<syntaxhighlight lang=c++>
auto [x, y] = pair; // xに1、yに3.14が束縛される
</syntaxhighlight>
さらに構造化束縛宣言では、束縛する変数に参照を指定できます。
:<syntaxhighlight lang=c++>
auto& [xref, yref] = pair; // xrefとyrefにpairの要素の参照が束縛される
</syntaxhighlight>
この場合、xref、yrefはpairの要素そのものを参照するエイリアスになります。
束縛の概念は、ラムダ式やテンプレートなど、C++のさまざまな仕組みの理解に重要です。構造化束縛宣言ではタプルなどのデータから簡潔に値を取り出せますが、その「束縛」の意味を正しく理解することが肝心です。束縛の概念を確実に身につけることで、C++のコードをよりマスターできるでしょう。}}
== 利点と使用例 ==
構造化束縛宣言の主な利点は以下の通りです。
* 複数の値をシンプルに扱える
* タプルの要素へのアクセスが簡単
* 構造体のメンバー変数への分解が可能
* ネストされた構造から値を簡単に取り出せる
以下に具体的な使用例を示します。
;配列からの値の取り出し:
:<syntaxhighlight lang=c++>
int arr[] = {1, 2, 3};
auto [x, y, z] = arr; // x=1, y=2, z=3
</syntaxhighlight>
; <code>std::tuple</code>からの値の取り出し:
:<syntaxhighlight lang=c++>
std::tuple<int, double, std::string> get_data() {
return {10, 3.14, "hello"};
}
void tuple_usage() {
auto [x, y, str] = get_data();
// x == 10, y == 3.14, str == "hello"
}
</syntaxhighlight>
; 構造体のメンバーへアクセス
:<syntaxhighlight lang=c++>
struct Point {
int x, y;
};
void print_point(Point p) {
auto [x, y] = p; // Point構造体の分解
std::cout << "(" << x << ", " << y << ")\n";
}
</syntaxhighlight>
; ネストされた構造からの値の取り出し
:<syntaxhighlight lang=c++>
std::tuple<int, std::pair<double, char>> get_pair() {
return {1, {3.14, 'x'}};
}
void nested_usage() {
auto [x, p] = get_pair();
auto [y, c] = p; // std::pairからの分解
// x == 1, y == 3.14, c == 'x'
}
</syntaxhighlight>
== 注意点 ==
構造化束縛宣言を使用する際の主な注意点は以下の通りです。
; 非修飾参照の扱い
: 構造化束縛で非修飾参照を宣言した場合、一時オブジェクトから値を抽出する際に未定義動作が発生する可能性があります。
:<syntaxhighlight lang=c++>
std::pair<int, int> get_pair() {
return {1, 2}; // 一時オブジェクト
}
void bad_example() {
auto [x, y] = get_pair(); // OK
auto& [x_ref, y_ref] = get_pair(); // 未定義動作の可能性あり
}
</syntaxhighlight>
; 構造体から値を取り出す際の注意
: 名前付き構造体のメンバーから値を取り出す際、構造化束縛宣言の変数名とメンバー名が同じ場合に問題が発生します。この場合、メンバー呼び出しが優先されるため注意が必要です。
:<syntaxhighlight lang=c++>
struct Point { int x, y; };
void bad_example(Point p) {
int x{10}; // xという名前の変数
auto [x, y] = p; // x == p.x, y == p.yとはならない
}
</syntaxhighlight>
== 他の言語との比較 ==
[[Ruby]]、[[Python]]、[[Swift]]、[[Rust]]などの言語にも構造化束縛と同等の機能があります。特にRustの<code>let (x, y) = point</code>という構文はC++の構造化束縛宣言に似ています。
一方で、C++の構造化束縛宣言には他言語には見られない特徴がいくつかあります。たとえば、C++では変数のスコープやライフタイムが明確で、参照を使用することでオブジェクトの変更が反映されます。
{{Nav}}
{{DEFAULTSORT:こうそうかそくはくせんけん}}
[[Category:C++]]
lu6rcr6k5z4vd9wn04q6tmh5vum03sx
C++/スコープ
0
39868
263071
249283
2024-11-05T03:40:02Z
Ef3
694
主な変更点: C++20の機能(モジュール、コンセプト)に関する新しいセクションを追加 構造化束縛やrange-based forループなど、より最新の機能の例を追加 名前空間の入れ子に関する新しい構文の説明を追加 モダンC++での各スコープの使用例を更新 演習問題を最新の機能を含むものに更新
263071
wikitext
text/x-wiki
{{Nav}}
== 導入 ==
=== スコープとは何か? ===
プログラミングにおける「スコープ」とは、変数や関数が有効な範囲を定義する概念です。スコープは、変数や関数が宣言された場所によって決定され、それによってその変数や関数へのアクセス範囲が決まります。
=== スコープがコード内でどのように機能するかの概要 ===
スコープは、コード内で変数や関数の可視性と生存期間を制御します。これにより、同じ名前の変数や関数が異なる場所で定義された場合でも、それぞれのスコープ内でのみアクセス可能であり、名前の衝突を避けることができます。
== モダンC++におけるスコープ ==
=== 基本的なスコープの種類 ===
C++20以降では、以下の主要なスコープタイプが定義されています:
* ブロックスコープ - 中括弧<code>{}</code>で囲まれた範囲
* 関数スコープ - 関数内全体
* 名前空間スコープ - 名前空間内全体
* クラススコープ - クラス定義内
* ファイルスコープ - ソースファイル内
* モジュールスコープ (C++20以降) - モジュール内
== ブロックスコープ ==
=== ブロックスコープの定義 ===
ブロックスコープは、中括弧<code>{}</code>で囲まれたコードブロック内で有効なスコープです。C++17以降では、初期化文を持つ<code>if</code>文や<code>switch</code>文でも独自のスコープを形成できます。
=== ブロックスコープ内での変数の有効性 ===
ブロックスコープ内で宣言された変数は、そのブロック内でのみ有効です。C++17以降、構造化束縛宣言もブロックスコープに従います。
:<syntaxhighlight lang=c++>
auto main() -> int {
if (auto [x, y] = std::pair{1, 2}; x > 0) { // C++17構造化束縛
// xとyはこのブロック内でのみ有効
}
return 0;
}
</syntaxhighlight>
== for文スコープ ==
=== コード例(forループ内のスコープ) ===
C++20では、<code>range-based for</code>ループでの初期化文もサポートされています:
:<syntaxhighlight lang=c++>
auto main() -> int {
std::vector<int> vec{1, 2, 3};
for (std::size_t i = 0; auto& elem : vec) { // C++20
std::cout << i++ << ": " << elem << '\n';
}
return 0;
}
</syntaxhighlight>
== 名前空間 ==
=== モダンな名前空間の使用 ===
C++17以降では、入れ子名前空間を簡略化して記述できます:
:<syntaxhighlight lang=c++>
namespace MyCompany::MyLibrary::MyFeature { // C++17
// 機能の実装
}
</syntaxhighlight>
また、C++20では、モジュール内での名前空間の扱いも定義されています。
== モジュールスコープ (C++20) ==
=== モジュールスコープの概要 ===
C++20で導入されたモジュールは、新しいスコープレベルを提供します:
:<syntaxhighlight lang=c++>
module; // グローバルモジュールフラグメント
#include <string>
export module my.module; // モジュール宣言
export namespace MyModule {
auto getValue() -> std::string {
return "Hello from module";
}
}
</syntaxhighlight>
== コンセプトとスコープ (C++20) ==
=== コンセプトの可視性 ===
C++20で導入されたコンセプトも、通常の名前空間規則に従います:
:<syntaxhighlight lang=c++>
export module my.concepts;
export template<typename T>
concept Printable = requires(T t) {
{ std::cout << t } -> std::same_as<std::ostream&>;
};
</syntaxhighlight>
== スコープとクラス ==
=== モダンC++でのクラススコープ ===
C++20以降、コンセプトやモジュールとの相互作用を含む、より豊かなクラススコープの機能が利用可能です:
:<syntaxhighlight lang=c++>
export class MyClass {
constexpr static int value = 42;
public:
auto getValue() const -> int requires std::is_constant_evaluated() {
return value;
}
};
</syntaxhighlight>
== 演習問題 ==
# モジュールとクラススコープを組み合わせて使用し、モジュールをエクスポートする例を作成してください。
# C++20のコンセプトを使用して、特定の型に対する要件を定義し、それをテンプレート関数で使用する例を作成してください。
# 構造化束縛を使用して、複数の戻り値を持つ関数の結果を受け取り、それらの値をブロックスコープ内で使用する例を作成してください。
{{Nav}}
{{DEFAULTSORT:すこふ}}
[[Category:C++]]
f23ljx1d1yl8zgghjhv27m2rxe8e7l8
C++/ジェネリックラムダ
0
39869
263046
249687
2024-11-04T22:11:40Z
Ef3
694
校閲と推敲
263046
wikitext
text/x-wiki
{{Nav}}
== ジェネリックラムダの概要 ==
C++11で導入されたラムダ式は、無名の関数オブジェクトを簡潔に記述する機能です。C++14では、これをさらに拡張してジェネリックラムダが導入されました。
ジェネリックラムダは、パラメータの型を自動的に推論し、異なる型に対して汎用的な関数を作成できる機能です。これにより、テンプレート関数のような汎用コードをより簡潔に記述できます。ジェネリックプログラミングは異なる型に同じ処理を適用することが主な目的です。ジェネリックラムダはその理念を具現化し、コードの重複を避けて抽象化を高める手段を提供します。
:<syntaxhighlight lang="c++">
auto lambda = [](auto x, auto y) { return x + y; };
std::cout << lambda(1, 2.3) << std::endl; // 3.3
std::cout << lambda(4, 5) << std::endl; // 9
</syntaxhighlight>
上記の例では、<code>auto</code>キーワードによってパラメータ型が推論され、整数や浮動小数点数など様々な型の組み合わせで同じラムダ式を使用できます。
== ジェネリックラムダの構文 ==
=== パラメータ型の推論 ===
ジェネリックラムダは、<code>auto</code>キーワードでパラメータ型を推論します。
:<syntaxhighlight lang="c++">
[](auto x, auto y) { /* 処理 */ }
</syntaxhighlight>
上記の構文では、<code>auto</code>を付けたパラメータの型は、呼び出し時の実引数から自動的に決まります。
=== 戻り値型の推論 ===
C++14では、ラムダ式の戻り値型も推論できます。<code>-> auto</code>を使うことで、戻り値型が式から推論されます。
:<syntaxhighlight lang="c++">
auto lambda = [](auto x, auto y) -> auto { return x + y; };
</syntaxhighlight>
この場合、<code>x</code>と<code>y</code>の型に基づいて戻り値型が決まります。
== 可変引数の扱い ==
ジェネリックラムダは可変長引数をサポートし、任意の数の引数を受け取ることができます。
:<syntaxhighlight lang="c++">
auto lambda = [](auto&&... args) {
// 可変長引数 args を処理
};
</syntaxhighlight>
例えば、フォールディング式を用いることで、可変長引数の合計を計算することができます。
:<syntaxhighlight lang="c++">
auto sum = [](auto&&... args) {
return (args + ... + 0); // 引数の合計値を返す
};
std::cout << sum(1, 2.3, 4, 5.6) << std::endl; // 12.9
</syntaxhighlight>
<code>(args + ... + 0)</code>は二項フォールディング式で、引数が1つもなかった場合への対策として<code>+ 0</code>が付加されています。
== 実例によるジェネリックラムダの活用 ==
ジェネリックラムダは、簡単な計算から複雑な処理まで幅広く活用できます。
=== 簡単な数値計算 ===
:<syntaxhighlight lang="c++">
auto add = [](auto x, auto y) { return x + y; };
std::cout << add(1, 2.3) << std::endl; // 3.3
std::cout << add(4, 5) << std::endl; // 9
</syntaxhighlight>
=== コンテナアルゴリズムでの利用 ===
STLアルゴリズムと組み合わせることで、ジェネリックラムダを有効に活用できます。
:<syntaxhighlight lang="c++">
std::vector<int> nums = {1, 5, 3, 7, 2};
int sum = std::accumulate(nums.begin(), nums.end(), 0, [](int x, int y) { return x + y; });
</syntaxhighlight>
== ジェネリックラムダとテンプレートの使い分け ==
ジェネリックラムダは一種のテンプレートプログラミングですが、通常の関数テンプレートと異なり、コンパクトな記述を可能にします。ジェネリックラムダは小規模な処理に適し、より複雑なジェネリックコードには関数テンプレートを使用するのが推奨されます。
== 関数オブジェクトとしてのジェネリックラムダ ==
ジェネリックラムダは、関数オブジェクトの代替として使われることが多く、特に短く記述したい場合や柔軟な型推論を活用したい場合に便利です。
=== std::functionとの連携 ===
ジェネリックラムダは<code>std::function</code>型と組み合わせて使用することができます。ただし、パフォーマンスの観点からは、<code>std::function</code>による間接呼び出しはオーバーヘッドが発生する可能性があるため、性能が重要な場面では注意が必要です。
:<syntaxhighlight lang=c++>
std::function<int(int)> func = [](auto x) { return x * 2; };
std::cout << func(10) << std::endl; // 20
</syntaxhighlight>
=== 関数オブジェクトの生成と利用 ===
ラムダ式を用いることで、短いコードで関数オブジェクトを作成できます。これにより、コードの可読性が向上し、手軽にカスタム関数オブジェクトを実装できます。
:<syntaxhighlight lang=c++>
auto multiplier = [](auto x, auto factor) { return x * factor; };
std::cout << multiplier(5, 3.2) << std::endl; // 16.0
</syntaxhighlight>
=== ジェネリックラムダの制限とベストプラクティス ===
ジェネリックラムダは型推論を活用できるため非常に便利ですが、いくつかの制約と注意点があります。
* '''複雑な型制約''': ジェネリックラムダ内でテンプレートパラメータの詳細な制約を記述することはできません。必要な場合は関数テンプレートを使用することが推奨されます。
* '''コンパイラエラーメッセージ''': 型推論に依存することで、コンパイラのエラーメッセージがわかりにくくなることがあります。複雑なコードを作成する際は、型を明示的に指定するなどの対策が必要です。
;まとめ
ジェネリックラムダは、コードの簡潔さと型推論の柔軟性を兼ね備えた非常に強力なツールです。特に、C++14以降の標準ライブラリやテンプレートメタプログラミングと組み合わせることで、汎用的で読みやすいコードを記述できます。
{{Nav}}
[[Category:C++|しえねりつくらむだ]]
n34xk3en2xtvi3awqjifuyn96dy9x5o
C++/フォールディング式
0
39870
263048
249401
2024-11-04T22:30:45Z
Ef3
694
校閲と推敲
263048
wikitext
text/x-wiki
== フォールディング式 ==
フォールディング式(Fold Expressions)は、C++17で導入された機能で、可変引数テンプレートをより簡潔に扱うことができる機能です。フォールディング式には以下の4つの形式があります:
# '''単項右折りたたみ''': <code>(... op pack)</code>
# '''単項左折りたたみ''': <code>(pack op ...)</code>
# '''二項右折りたたみ''': <code>(init op ... op pack)</code>
# '''二項左折りたたみ''': <code>(pack op ... op init)</code>
主な特徴:
* パラメータパックの要素に対して二項演算子を適用します。
* 算術演算子、比較演算子、論理演算子などが使用可能です。
* コードの簡潔さと可読性が向上します。
* コンパイル時の処理が可能です。
=== 使用例 ===
以下に、各形式の具体的な使用例を示します。
==== 二項右折りたたみ ====
二項右折りたたみは、初期値を指定し、パラメーターパックの要素に演算子を適用する方法です。以下は、すべての引数の積を計算する関数の例です。
:<syntaxhighlight lang="c++">
#include <iostream>
// 初期値を持つ二項右折りたたみの例
template<typename... Args>
auto multiply_all(Args... args) {
return (1 * ... * args); // 二項右折りたたみ
}
auto main() -> int {
std::cout << "Product: " << multiply_all(2, 3, 4) << std::endl; // 出力: 24
return 0;
}
</syntaxhighlight>
==== 二項左折りたたみ ====
二項左折りたたみは、パラメーターパックの要素に演算子を左から右に適用し、初期値と一緒に演算を行います。以下は、数値の合計を計算する関数の例です。
:<syntaxhighlight lang="c++">
#include <iostream>
// 二項左折りたたみの例
template<typename... Args>
auto sum(Args... args) {
return (0 + ... + args); // 二項左折りたたみ
}
auto main() -> int {
std::cout << "Sum: " << sum(1, 2, 3, 4, 5) << std::endl; // 出力: 15
return 0;
}
</syntaxhighlight>
==== その他のフォールディング式の例 ====
以下のコードは、フォールディング式の他の形式の使用例を示しています。
:<syntaxhighlight lang="c++">
// 単項右折りたたみの例
template<typename... Args>
bool all_positive(Args... args) {
return (... && (args > 0)); // 単項右折りたたみ
}
// 単項左折りたたみの例
template<typename... Args>
void print_all(Args... args) {
(std::cout << ... << args) << std::endl; // 単項左折りたたみ
}
// カンマ演算子を使用した右折りたたみの例
template<typename... Args>
void process_all(Args... args) {
(..., (std::cout << args << " ")); // 単項右折りたたみ
std::cout << std::endl;
}
auto main() -> int {
// all_positive の使用例
std::cout << "All positive: " << all_positive(1, 2, 3) << std::endl; // 出力: true
std::cout << "All positive: " << all_positive(1, -2, 3) << std::endl; // 出力: false
// print_all の使用例
print_all("Hello", ' ', "World", '!'); // 出力: Hello World!
// process_all の使用例
process_all(1, 2.5, "test"); // 出力: 1 2.5 test
return 0;
}
</syntaxhighlight>
;まとめ
フォールディング式は、可変引数を簡潔に扱うための強力な機能です。これにより、再帰的なテンプレートメタプログラミングを避けつつ、パラメータパックを効率的に操作できます。これにより、コードがより読みやすく、メンテナンスしやすくなります。
{{Nav}}
{{DEFAULTSORT:ふおるていんく}}
[[Category:C++]]
22boxy5oeoe10rqqz2wkx9qzqt2pgp0
C++/ムーブキャプチャ
0
39874
263047
249688
2024-11-04T22:17:53Z
Ef3
694
校閲と推敲
263047
wikitext
text/x-wiki
{{Nav}}
== はじめに ==
この章では、C++のラムダ式におけるムーブキャプチャの概念とその使い方について学びます。ムーブキャプチャは、リソース管理の効率化やパフォーマンス向上に貢献する重要な技術です。本章を通じて、ムーブキャプチャの基本から応用例までを理解し、実際のプログラムで活用できるようになることを目指します。
== 基本概念の復習 ==
ムーブキャプチャを理解するためには、ラムダ式とムーブセマンティクスについての基本を知っておくことが大切です。
=== ラムダ式とは ===
{{See also|C++/ラムダ式}}
ラムダ式は、匿名関数とも呼ばれ、コード内で簡潔に関数を定義できる構文です。基本的な例は次の通りです:
:<syntaxhighlight lang="c++">
auto lambda = [](int x) { return x + 1; };
</syntaxhighlight>
=== キャプチャの基本 ===
ラムダ式は、外部の変数をキャプチャすることができます。キャプチャには、値キャプチャと参照キャプチャの2種類があります。
* 値キャプチャ (<code>[=]</code>):外部の変数をコピーしてキャプチャします。
* 参照キャプチャ (<code>[&]</code>):外部の変数を参照でキャプチャします。
=== 初期化キャプチャとは ===
C++14で導入された初期化キャプチャは、ラムダ式内で新しい変数を作成・初期化し、それを使用できる機能です。
:<syntaxhighlight lang="c++">
int x{10};
auto lambda = [v = x + 1]() {
std::cout << v << std::endl;
};
lambda(); // 11
</syntaxhighlight>
この機能は特に、キャプチャリストで変数を初期化したい場合や、外部変数を変換して使用したい場合に有効です。
=== ムーブセマンティクスの復習 ===
{{See also|C++/ムーブセマンティクス}}
C++11で導入されたムーブセマンティクスは、オブジェクトのリソースを効率的に移動するための機能です。これにより、リソースを再利用しつつパフォーマンスを向上させることができます。
:<syntaxhighlight lang="c++">
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // v1のリソースをv2に移動
</syntaxhighlight>
== ムーブキャプチャとは ==
ムーブキャプチャを使用すると、ムーブオンリーのオブジェクト(例:<code>std::unique_ptr</code>)をラムダ式内でキャプチャすることができます。
=== ムーブキャプチャの構文 ===
ムーブキャプチャはキャプチャリストで<code>std::move</code>を明示的に使うことで行います。
:<syntaxhighlight lang="c++">
auto ptr = std::make_unique<int>(10);
auto lambda = [ptr = std::move(ptr)]() {
std::cout << *ptr << std::endl;
};
</syntaxhighlight>
== ムーブキャプチャの使い方 ==
ムーブキャプチャの使い方について、いくつかの例を紹介します。
=== 基本的な構文 ===
ムーブオンリーオブジェクトをラムダ式にムーブキャプチャする例です。
:<syntaxhighlight lang="c++">
#include <iostream>
#include <memory>
void example() {
auto ptr = std::make_unique<int>(42);
auto lambda = [ptr = std::move(ptr)]() {
std::cout << *ptr << std::endl;
};
lambda(); // 42
}
</syntaxhighlight>
=== スレッドでのムーブキャプチャ ===
非同期処理やスレッドを使用する場合にも、ムーブキャプチャは有効です。
:<syntaxhighlight lang="c++">
#include <iostream>
#include <memory>
#include <thread>
void threadExample() {
auto ptr = std::make_unique<int>(456);
std::thread t([ptr = std::move(ptr)]() {
std::cout << *ptr << std::endl;
});
t.join(); // 456
}
</syntaxhighlight>
== パフォーマンスと最適化 ==
ムーブキャプチャを利用すると、オブジェクトのコピーを避けてリソースの所有権を移動できるため、効率的なリソース管理が可能になります。
=== パフォーマンス比較 ===
ムーブキャプチャとコピーキャプチャのパフォーマンスを比較した例です。
:<syntaxhighlight lang="c++">
#include <iostream>
#include <vector>
#include <chrono>
void performanceComparison() {
std::vector<int> largeData(1000000, 1);
// コピーキャプチャ
auto startCopy = std::chrono::high_resolution_clock::now();
auto copyLambda = [largeData]() {
return largeData.size();
};
std::cout << "Copy size: " << copyLambda() << std::endl;
auto endCopy = std::chrono::high_resolution_clock::now();
// ムーブキャプチャ
auto startMove = std::chrono::high_resolution_clock::now();
auto moveLambda = [largeData = std::move(largeData)]() {
return largeData.size();
};
std::cout << "Move size: " << moveLambda() << std::endl;
auto endMove = std::chrono::high_resolution_clock::now();
auto copyDuration = std::chrono::duration_cast<std::chrono::microseconds>(endCopy - startCopy).count();
auto moveDuration = std::chrono::duration_cast<std::chrono::microseconds>(endMove - startMove).count();
std::cout << "Copy duration: " << copyDuration << "us" << std::endl;
std::cout << "Move duration: " << moveDuration << "us" << std::endl;
}
</syntaxhighlight>
== トラブルシューティングとベストプラクティス ==
ムーブキャプチャを使用する際に気をつけるべき点と解決策を紹介します。
=== 一般的な問題 ===
* キャプチャ後に元のオブジェクトを参照してクラッシュする。
* ムーブキャプチャしたオブジェクトがラムダ式のスコープ外で破棄される。
=== ベストプラクティス ===
* キャプチャ後は元のオブジェクトを参照しない。
* キャプチャするオブジェクトは、ラムダ式外で不要になっていることを確認する。
* キャプチャリストを明示的に書いて意図しないキャプチャを防ぐ。
== まとめ ==
ムーブキャプチャは、オブジェクトのリソース管理を効率化し、プログラムのパフォーマンスを向上させます。ムーブキャプチャの基本を理解し、正しく活用することで、より効率的なC++プログラムを作成できるようになります。
{{Nav}}
{{DEFAULTSORT:むふきやふちや}}
[[Category:C++]]
2qlpeszewmkg0snqbbinrt2kkxpg2b3
C++/テンプレートメタプログラミング
0
39906
263052
249446
2024-11-04T22:58:37Z
Ef3
694
校閲と推敲
263052
wikitext
text/x-wiki
{{Nav}}
== テンプレートメタプログラミングの概要 ==
=== テンプレートメタプログラミングとは ===
テンプレートメタプログラミングとは、C++のテンプレート機能を利用して、コンパイル時にプログラムの処理を実行する技術です。通常のプログラムはコンパイル時に機械語に変換されるだけですが、テンプレートメタプログラミングではコンパイル時に計算や処理を行うことができます。
例えば、以下のようなコードを考えてみましょう。
:<syntaxhighlight lang=c++>
template<int N>
struct Factorial {
static const int value = N * Factorial<N-1>::value;
};
template<>
struct Factorial<0> {
static const int value = 1;
};
</syntaxhighlight>
ここで、<code>Factorial</code>という構造体テンプレートは、テンプレート引数<code>N</code>の階乗の値を<code>value</code>としてコンパイル時に計算します。<code>Factorial<5>::value</code>は、5*4*3*2*1=120となり、コンパイル時にこの計算が実行されます。
このように、テンプレートメタプログラミングはコンパイル時にプログラムを「実行」し、その結果を基にプログラムを生成します。したがって、実行時のオーバーヘッドは発生しません。
=== コンパイル時プログラミングの利点 ===
テンプレートメタプログラミングによるコンパイル時プログラミングの利点は次の通りです。
* '''型安全性の向上''': コンパイル時にプログラムのエラーを検出できるため、型の安全性が高まります。
* '''最適化の可能性''': コンパイル時に計算を行うことで、実行時のオーバーヘッドを削減できます。
* '''ゼロコストのアブストラクション''': テンプレート機能を利用することで、抽象化を実現しながらも実行時コストを最小限に抑えられます。
* '''ジェネリックプログラミング''': テンプレートを活用することで、コードの再利用性が向上します。
このように、テンプレートメタプログラミングはパフォーマンスと抽象化の両立を実現します。
=== C++におけるテンプレートメタプログラミングの役割 ===
C++ではテンプレートメタプログラミングが様々な用途で活用されています。
* 標準ライブラリ内での利用
* 型traitsの実装(型情報の取得)
* 静的アサート
* 小規模なDSL(ドメイン特化言語)の実装
* 数値計算のテンプレート化
* ユーティリティコードの実装
これらは、C++における重要な概念やテクニックがテンプレートメタプログラミングに支えられていることを示しています。高度な技術でありながら、C++を深く理解するためには欠かせない概念です。つまり、テンプレートメタプログラミングは単なる技術ではなく、C++の核となる機能の一つです。
次に、基礎的な文法やテクニックについて見ていきましょう。
== テンプレートメタプログラミングの基礎 ==
この章では、テンプレートメタプログラミングを理解するために必要な基礎的な文法やテクニックを説明します。
=== テンプレート型パラメータ ===
テンプレートメタプログラミングの基礎として、テンプレートの型パラメータについて確認しましょう。
:<syntaxhighlight lang=c++>
template<typename T>
struct Example {
// ...
};
</syntaxhighlight>
ここで<code>T</code>はテンプレート型パラメータで、任意の型を受け取ることができます。特殊化して具象型を指定することも可能です。
:<syntaxhighlight lang=c++>
template<>
struct Example<int> {
// int型の特殊化
};
</syntaxhighlight>
型パラメータはそれ自体が値を持つわけではありませんが、テンプレートメタプログラミングではこの型パラメータを操作の対象とすることができます。
例えば、サイズを保持する<code>Array</code>クラスを次のように実装できます。
:<syntaxhighlight lang=c++>
template<typename T, int N>
class Array {
T data[N];
public:
// ...
};
</syntaxhighlight>
ここで<code>N</code>はコンパイル時に評価される定数式となり、<code>data</code>配列のサイズを決定します。<code>Array<int, 10></code>なら、<code>int</code>型の要素数10の配列となります。このように、型パラメータを使用してコンパイル時にサイズや値を決定できることがテンプレートメタプログラミングの基礎です。
=== 値パラメータ ===
テンプレートには型パラメータ以外にも値パラメータを指定できます。
:<syntaxhighlight lang=c++>
template<typename T, int Value>
struct IntValue {
static const int value = Value;
};
</syntaxhighlight>
<code>IntValue<int, 42>::value</code>は42となります。値パラメータはコンパイル時の定数式として使用でき、テンプレートメタプログラミングの基礎となります。
値パラメータは整数型に限らず、列挙型や組み込みの型でも指定できます。
:<syntaxhighlight lang=c++>
template<char...>
struct CharValue {};
CharValue<'a', 'b', 'c'> cv;
</syntaxhighlight>
ここでは、<code>'a'</code>、<code>'b'</code>、<code>'c'</code>という文字リテラルをパック展開して渡しています。このようにして、コンパイル時に様々な値を表現することが可能です。
=== テンプレートメタ関数 ===
テンプレートメタプログラミングでは、関数のように呼び出せるテンプレートを定義できます。これをテンプレートメタ関数と呼びます。
:<syntaxhighlight lang=c++>
template<typename T, typename U>
struct Sum {
using type = /* Tとの組み合わせによるUの型 */;
};
</syntaxhighlight>
この<code>Sum</code>テンプレートは2つの型を受け取り、その組み合わせによる型を<code>type</code>に指定します。関数のように以下のように使用します。
:<syntaxhighlight lang=c++>
using IntType = Sum<int, double>::type; // doubleになる
</syntaxhighlight>
このように、テンプレートメタ関数を使用してコンパイル時に型計算を行うことができます。型計算の具体的な方法は、メタプログラミングのテクニックとして後述します。
また、テンプレートメタ関数は値の計算にも使用できます。
:<syntaxhighlight lang=c++>
template<int N, int M>
struct Add {
static const int value = N + M;
};
</syntaxhighlight>
この<code>Add</code>テンプレートは2つの整数値を受け取り、その和を<code>value</code>に格納します。使用例は以下の通りです。
:<syntaxhighlight lang=c++>
int x = Add<20, 22>::value; // x = 42
</syntaxhighlight>
テンプレートメタ関数では、このように値の計算を関数のように記述できます。メタプログラミングでは、これらのテンプレートメタ関数を組み合わせて複雑な計算を行います。
テンプレートメタ関数には再帰的な定義も可能です。
:<syntaxhighlight lang=c++>
template<int N>
struct Factorial {
static const int value = N * Factorial<N-1>::value;
};
template<>
struct Factorial<0> {
static const int value = 1;
};
</syntaxhighlight>
ここでは<code>Factorial</code>テンプレートが再帰的に定義されており、<code>N</code>の階乗がコンパイル時に計算されます。
== まとめ ==
テンプレートメタプログラミングは、C++において強力かつ柔軟なプログラミング手法です。型や値をコンパイル時に計算し、実行時のパフォーマンスを向上させることができます。これを活用することで、より効率的で安全なプログラムを作成できます。今後の章では、具体的なテクニックや応用例について詳しく説明していきます。
{{Nav}}
{{DEFAULTSORT:てんふれとめたふろくらみんく}}
[[Category:C++]]
rlfmtfdkg9ca7vovlq44sp0r4jiv7hp
C++/構文の基礎
0
39911
263054
250037
2024-11-05T00:57:41Z
Ef3
694
/* C++の歴史と標準化 */ 校閲と推敲
263054
wikitext
text/x-wiki
{{Nav}}
= C++の構文の基礎 =
== C++の歴史と標準化 ==
=== C++の誕生と歴史 ===
C++はC言語の延長線上にある、マルチパラダイムプログラミング言語です。1979年にBjarne Stroustrupによって開発が開始され、1983年には「C with Classes」という名称で公開されました。1985年に正式にC++と命名され、産業界で広く利用されるようになりました。
C++は手続き型、オブジェクト指向、ジェネリック、メタプログラミングなど、さまざまなプログラミングスタイルをサポートしています。低レベルなシステムプログラミングから、ゲームやグラフィックスなどの高レベルなアプリケーションまで、幅広い分野で利用されています。
=== C++標準の策定経緯 ===
1998年にC++の最初の標準規格であるC++98が発行されました。その後、以下のように規格が改訂されてきました。
* '''C++03''' : 2003年に小さな修正が加えられた規格
* '''C++11''' : 1998年以来の大きな改訂で、多くの新機能が追加された
* '''C++14''' : C++11の小さな拡張
* '''C++17''' : 並列プログラミングやプログラミングモデルの改良が行われた
* '''C++20''' : モジュール、コンセプト、範囲for文の拡張、コルーチンなどの新機能が導入された
最新の規格はC++20ですが、現在はC++23の策定作業が進行中であり、さらなる機能強化や改善が期待されています。
=== C++11の概要 ===
C++11は、C++98からかなり大規模な改訂が行われた規格です。主な新機能は以下の通りです。
* '''ラムダ式''' : 無名関数を簡潔に記述できる
* '''auto''' : 型の自動推論が可能
* '''範囲ベースfor文''' : 範囲から要素を順に取り出せる
* '''nullptr''' : ヌルポインタを表す専用キーワード
* '''新しいコンテナ''' : array, unordered_map, unordered_setなど
* '''スマートポインタ''' : unique_ptr, shared_ptr, weak_ptrなど
* '''移動セマンティクス''' : リソースの所有権を効率よく移動できる
* '''一貫した初期化構文''' : 中括弧({ })で初期化できる
* '''関数オブジェクト''' : std::functionで関数ポインタを置き換え可能
C++11以降、標準ライブラリが大幅に強化されただけでなく、言語機能自体も多数追加されています。
== C++プログラムの構造 ==
=== ソースファイル ===
C++のプログラムは1つ以上のソースファイル(.ccや.Cなど)で構成されます。ソースファイルにはプログラムのコードが記述されています。通常、メインとなる関数やクラスは個別のソースファイルに分割されます。
; main.cc
:<syntaxhighlight lang=c++>
#include "myclass.h"
auto main() -> int {
MyClass obj;
obj.doSomething();
return 0;
}
</syntaxhighlight>
=== プリプロセッサ ===
C++のソースファイルには、プリプロセッサディレクティブと呼ばれる特別な指令が書かれています。これらはヘッダーをインクルードしたり、マクロを定義したりするのに使われます。
:<syntaxhighlight lang=c++>
#include <iostream> // iostreamヘッダをインクルード
#define PI 3.14159 // PIという名前でマクロを定義
</syntaxhighlight>
=== main関数 ===
C++プログラムのエントリーポイント(開始点)は<code>main</code>関数です。<code>main</code>関数から制御が開始され、プログラムが実行されていきます。
:<syntaxhighlight lang=c++>
auto main() -> int {
// 処理を記述
return 0; // 通常は0を返してプログラムを終了する
}
</syntaxhighlight>
<code>main</code>関数は整数型を返す必要があり、返り値は正常終了時は0、エラー時は0以外の値を返します。
=== 名前空間 ===
名前空間は、同じ名前の関数やクラスなどが衝突するのを防ぐための機能です。たとえば、std名前空間はC++の標準ライブラリの機能を含みます。
:<syntaxhighlight lang=c++>
#include <iostream>
int value = 10; // グローバル変数
auto main() -> int {
int value = 20; // ローカル変数
std::cout << "Global value: " << ::value << std::endl; // 10
std::cout << "Local value: " << value << std::endl; // 20
return 0;
}
</syntaxhighlight>
この例では、<code>::value</code>とするとグローバル変数の<code>value</code>が参照され、そうでない場合はローカル変数の<code>value</code>が参照されます。
=== コメント ===
C++にはコードの説明を記述するためのコメント機能があります。
:<syntaxhighlight lang=c++>
// 単一行コメント
/*
複数行に渡る
コメント
*/
// 注釈つきのコード
int x = 5; // xに5を代入
</syntaxhighlight>
コメントは実行時には無視されます。
== データ型 ==
=== 基本データ型 ===
C++には以下の基本データ型があります。
; 真理値型 : <code>bool</code>
; 文字型 : <code>char</code>, <code>wchar_t</code>, <code>char8_t</code>, <code>char16_t</code>, <code>char32_t</code>
; 整数型 : <code>short</code>, <code>int</code>, <code>long</code>, <code>long long</code>
; 浮動小数点型 : <code>float</code>, <code>double</code>, <code>long double</code>
整数型と文字型にはさらにその型の修飾子として、<code>signed</code>(符号つき)、<code>unsigned</code>(符号なし)があります。
:<syntaxhighlight lang=c++>
bool flag = true;
char x = 'A';
int num = 42;
double pi = 3.14159;
</syntaxhighlight>
=== リテラル ===
リテラルとは、プログラム中に直接記述された定数値のことです。
:<syntaxhighlight lang=c++>
42 // 整数リテラル
3.14 // 浮動小数点リテラル
'A' // 文字リテラル
"Hello" // 文字列リテラル
</syntaxhighlight>
==== ユーザーリテラル ====
C++11から追加されたユーザーリテラルを使うと、カスタムのリテラル接尾辞を定義できます。
:<syntaxhighlight lang=c++>
#include <cstddef>
#include <exception>
#include <iostream>
#include <stdexcept>
#include <string>
// ユーザーリテラルの定義
auto operator""_gb(const char *s) -> unsigned long long {
std::string const str{s};
try {
size_t pos = 0;
unsigned long long const result = std::stoull(str, &pos);
if (pos < str.size()) {
throw std::invalid_argument("stringToULL: invalid argument");
}
return result;
} catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
throw std::invalid_argument("stringToULL: invalid argument");
}
}
auto main() -> int {
unsigned long long const data = 10_gb; // 10ギガバイトのデータサイズ
std::cout << data << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>_gb</code>というリテラル接尾辞が定義されています。これを使うと、<code>10_gb</code>のように単位をリテラルに組み込むことができます。
=== 型の変換 ===
C++ではデータ型の異なる値を代入する際に、自動的に型変換が行われる場合があります。このとき、値が失われたり予期せぬ動作になる可能性があります。
:<syntaxhighlight lang=c++>
int x = 5; // xは整数型5
float y = x; // yは浮動小数点型5.0 (安全な暗黙の型変換)
int sum = x + y; // sumは10 (yは一時的に整数型に変換される)
</syntaxhighlight>
上の例では、xからyへの代入は暗黙の型変換で安全に行われますが、sumの計算ではyが一時的に整数型に変換されるので、少数部分が失われます。
このような問題を防ぐため、明示的な型キャストを行うことができます。
:<syntaxhighlight lang=c++>
int x = 5, y = 2;
float div = static_cast<float>(x) / y; // div = 2.5
</syntaxhighlight>
この例では、xを明示的に<code>float</code>型にキャストしているので、割り算の結果が正しく浮動小数点数になります。C++には様々な型キャストがあり、それぞれ異なる動作をします。
; <code>static_cast</code> : コンパイル時に検査されるキャスト。基本的なキャスト
; <code>const_cast</code> : <code>const</code>の付加/除去に使う
; <code>reinterpret_cast</code> : 低レベルの再解釈に使う(危険)
; <code>dynamic_cast</code> : 多態的なキャストで、安全性チェックが行われる
適切なキャストを使うことで、意図しない型変換を防ぐことができます。
=== オートデータ型(C++11) ===
C++11からはオートデータ型(<code>auto</code>)を使って、右辺値の型から左辺値の型を推論することができます。
:<syntaxhighlight lang=c++>
auto value = 3.14; // <code>double</code>と推論される
auto flag = true; // <code>bool</code>と推論される
</syntaxhighlight>
<code>auto</code>を使うと、冗長な型指定を省略でき、可読性の向上につながります。特に複雑なジェネリックコードでは便利です。
== 演算子 ==
C++には多くの演算子がありますが、ここでは主要な演算子について説明します。
=== 算術演算子 ===
<code>+</code>(加算)、<code>-</code>(減算)、<code>*</code>(乗算)、<code>/</code>(除算)、<code>%</code>(剰余)の演算子を利用できます。
:<syntaxhighlight lang=c++>
int x = 10 + 2; // 12
int y = 10 - 5; // 5
double z = 10.0 / 3; // 3.33333...
int a = 11 % 3; // 2 (剰余)
</syntaxhighlight>
=== ビット演算子 ===
ビット単位の論理演算を行うビット演算子があります。
:<syntaxhighlight lang=c++>
int x = 0b1010; // 2進数リテラル(C++14)
int y = ~x; // y = 0b0101 (ビット否定)
int z = x & 0b1100; // z = 0b1000 (ビット積)
int w = x | 0b0011; // w = 0b1011 (ビット和)
</syntaxhighlight>
=== 代入演算子 ===
<code>=</code>は右辺の値を左辺に代入する代入演算子です。複合代入演算子も便利に使えます。
:<syntaxhighlight lang=c++>
int x = 10;
x += 5; // x = x + 5; と同じ(x = 15)
x /= 3; // x = x / 3; と同じ(x = 5)
</syntaxhighlight>
=== インクリメント/デクリメント演算子 ===
<code>++</code>はインクリメント演算子、<code>--</code>はデクリメントです。前置/後置による違いに注意が必要です。
:<syntaxhighlight lang=c++>
int x = 10;
int y = x++; // x = 11, y = 10 (後置)
int z = ++x; // x = 12, z = 12 (前置)
</syntaxhighlight>
=== 比較演算子 ===
値の大小を比較する<code><</code>(未満)、<code>></code>(より大きい)、<code><=</code>(以下)、<code>>=</code>(以上)などの演算子があります。
:<syntaxhighlight lang=c++>
int x = 5, y = 10;
bool res = (x < y); // res = true
</syntaxhighlight>
=== 論理演算子 ===
<code>&&</code>(論理積)、<code>||</code>(論理和)、<code>!</code>(論理否定)の論理演算子があり、条件分岐の制御などによく使われます。
:<syntaxhighlight lang=c++>
bool res = (5 > 3) && (10 != 5); // res = true
bool flag = !(5 == 5); // flag = false
</syntaxhighlight>
=== 条件演算子 ===
<code>?:</code>は三項演算子とも呼ばれる条件演算子で、条件式の値に応じて値を返します。
:<syntaxhighlight lang=c++>
int max = x > y ? x : y; // xとyの大きい方をmaxに代入
</syntaxhighlight>
== 制御構文 ==
プログラムの実行フローを制御するための構文があります。
=== if文 ===
<code>if</code>文は条件によって実行するブロックを分岐できます。<code>else</code>節、<code>else if</code>節も利用できます。
:<syntaxhighlight lang=c++>
int x = 10;
if (x > 5) {
// xは5より大きい
} else if (x < 0) {
// xは0未満
} else {
// xは0以上5以下
}
</syntaxhighlight>
=== switch文 ===
<code>switch</code>文は、整数値や<code>enum</code>型に対する多岐に渡る分岐処理に使えます。
:<syntaxhighlight lang=c++>
int value = 2;
switch (value) {
case 1:
// value が 1 の場合
break;
case 2:
// value が 2 の場合
break;
default:
// どのcaseにも当てはまらない場合
break;
}
</syntaxhighlight>
<code>default</code>節はどのケースにも当てはまらなかった場合に実行されます。<code>break</code>を入れ忘れるとフォールスルーが発生しますので注意が必要です。
=== for文 ===
<code>for</code>文は反復処理に使う構文です。通常のカウンタ変数を使った記述の他、範囲for文を使うこともできます。
:<syntaxhighlight lang=c++>
// 通常のfor文
for (int i = 0; i < 5; i++) {
// 処理を繰り返す
}
// 範囲for文 (C++11)
std::vector<int> values = {1, 2, 3, 4, 5};
for (int value : values) {
// valuesの各要素に対する処理
}
</syntaxhighlight>
範囲for文では、コンテナや配列の各要素を順に参照できます。
=== while文とdo-while文 ===
<code>while</code>文と<code>do-while</code>文は条件式の真偽値で反復処理を制御します。
:<syntaxhighlight lang=c++>
int count = 0;
while (count < 5) { // 条件を先に評価
// 処理を繰り返す
count++;
}
do { // 最初は無条件で処理を1回実行する
// 処理を繰り返す
count++;
} while (count < 5); // 条件を後に評価
</syntaxhighlight>
<code>while</code>文は条件式を先に評価し、<code>do-while</code>文は処理を1回実行した後に条件式を評価するという違いがあります。
=== break、continue ===
<code>break</code>文はループから抜け出す際に使い、<code>continue</code>文は次のループ反復に進む際に使います。
:<syntaxhighlight lang=c++>
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // iが5の場合ループを抜ける
}
if (i % 2 == 0) {
continue; // 偶数の場合は処理をスキップ
}
// 奇数の場合のみここが実行される
}
</syntaxhighlight>
=== ラムダ式 (C++11) ===
C++11から追加されたラムダ式を使うと、匿名関数オブジェクトを簡潔に記述できます。
:<syntaxhighlight lang=c++>
#include <algorithm>
#include <iostream>
#include <vector>
auto main() -> int {
auto values = std::vector{2, 3, 5, 7, 11};
// 2倍にする処理をラムダ式で記述
std::transform(values.begin(), values.end(), values.begin(),
[](int x) { return x * 2; });
// 値を出力
for (int const value : values) {
std::cout << value << " "; // 4 6 10 14 22 と出力される
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
ラムダ式は無名関数オブジェクトを生成し、その場で関数を定義して渡せるので、関数ポインタよりも柔軟で expressvie なコードが書けます。
== 関数 ==
C++ではプログラムを関数の集合として構造化できます。
=== 関数の定義と呼び出し ===
関数は<code>戻り値の型 関数名(引数の型 引数名, ...)</code>のように定義します。
:<syntaxhighlight lang=c++>
// 2つの整数の大きい方を返す関数
int getMax(int x, int y) {
return x > y ? x : y;
}
auto main() -> int {
int a = 3, b = 7;
int maxValue = getMax(a, b); // maxValueは7
return 0;
}
</syntaxhighlight>
この例では、<code>getMax</code>関数が定義され、<code>main</code>関数から呼び出されています。
=== スコープルール ===
C++ではスコープルールに従って、変数や関数の有効範囲が決まります。
:<syntaxhighlight lang=c++>
int globalVar = 10; // グローバルスコープ
int functionScope() {
int x = 20; // 関数スコープ
if (true) {
int y = 30; // ブロックスコープ
// xとyはここで有効
}
// yはここでは無効
return x;
}
</syntaxhighlight>
ブロックの外側で宣言された変数は、そのブロック内で参照できますが、逆は許されません。
=== デフォルト引数 ===
関数の引数にはデフォルト値を設定できます。この機能を使うと、引数の一部または全部を省略して関数を呼び出せます。
:<syntaxhighlight lang=c++>
int getValue(int x, int y = 20, int z = 30) {
return x + y + z;
}
auto main() -> int {
int res1 = getValue(5); // x=5, y=20, z=30 より res=55
int res2 = getValue(1, 2); // x=1, y=2, z=30 より res=33
return 0;
}
</syntaxhighlight>
デフォルト引数は右から順に設定しなければなりません。
=== 参照渡し ===
通常の引数渡しは値渡しですが、参照渡しも可能です。参照渡しを行うと、関数内での値の変更が外でも有効になります。
:<syntaxhighlight lang=c++>
void swap(int& x, int& y) {
int temp = x;
x = y;
y = temp;
}
auto main() -> int {
int a = 1, b = 2;
swap(a, b); // aとbの値が入れ替わる
return 0;
}
</syntaxhighlight>
参照渡しは、大きなデータ構造を渡す際に便利ですが、側効果に注意が必要です。
=== オーバーロード ===
C++では同じ関数名で引数の型や個数が異なる関数(オーバーロード関数)を定義できます。
:<syntaxhighlight lang=c++>
auto add(int x, int y) -> int { return x + y; }
auto add(double x, double y) -> double { return x + y; }
auto main() -> int {
int const sum1 = add(1, 2); // 整数版のaddが呼ばれる
double const sum2 = add(1.2, 3.4); // 浮動小数点数版のaddが呼ばれる
return 0;
}
</syntaxhighlight>
この機能を使うと、同じ概念の操作を同じ名前で表現できるので、プログラムの可読性が向上します。
=== 関数ポインタ ===
C++では関数もポインタとして扱えます。関数ポインタを使うと、実行時に関数を動的に切り替えられるメリットがあります。
:<syntaxhighlight lang=c++>
auto add(int x, int y) -> int { return x + y; }
auto operation(int a, int b, int (*func)(int, int)) -> int {
return func(a, b); // funcで指定された関数を実行する
}
auto main() -> int {
int const res = operation(3, 4, add); // resは7になる
return 0;
}
</syntaxhighlight>
関数ポインタは、コールバック関数を渡すときなどに役立ちますが、可読性が悪くなる場合もあります。C++11以降ではラムダ式を使うことでこの問題が緩和されます。
=== 関数オブジェクト (C++11) ===
C++11では<code>std::function</code>を使って関数オブジェクトを扱えるようになりました。これにより、関数ポインタよりも型安全で表現力の高いコードが書けるようになりました。
:<syntaxhighlight lang=c++>
#include <functional>
auto add(int x, int y) -> int { return x + y; }
auto main() -> int {
auto const ops = std::function{add};
int const res = ops(3, 4); // resは7
return 0;
}
</syntaxhighlight>
<code>std::function</code>オブジェクトには関数ポインタだけでなく、ラムダ式やバインドされた関数オブジェクトなども代入できます。
== 配列 ==
配列は複数の同じ型の要素を格納するデータ構造です。
=== 配列の基本 ===
配列は<code>型 配列名[要素数]</code>のように定義します。
:<syntaxhighlight lang=c++>
int data[5]; // 要素数5の配列
data[0] = 10; // 最初の要素に10を代入
data[4] = 50; // 最後の要素に50を代入
int arr[] = {1, 2, 3, 4, 5}; // 初期化子リストから要素数が決まる
</syntaxhighlight>
配列の添字(インデックス)は0から始まり、<code>arr[0]</code>が先頭要素、<code>arr[4]</code>が最後尾要素になります。初期化子リストを使うと、要素数を明示する必要がありません。
配列名そのものはその配列の先頭要素を指すポインタのように振る舞います。
:<syntaxhighlight lang=c++>
int ary[] = {1, 2, 3};
int* ptr = ary; // aryは&arr[0]を表す
</syntaxhighlight>
=== 多次元配列 ===
C++では多次元配列も使えます。多次元配列は、要素が配列であるような配列です。
:<syntaxhighlight lang=c++>
int matrix[2][3] = { {1, 2, 3},
{4, 5, 6} };
matrix[0][1] = 10; // matrix[0]の2番目の要素に10を代入
</syntaxhighlight>
この例では<code>matrix</code>は2x3の2次元配列です。多次元配列は、メモリ上では単一の配列として確保されることに注意が必要です。
=== 可変長配列 (C++11) ===
C++11からは、可変長配列(<code>VLA: Variable Length Array</code>)がサポートされました。可変長配列は、実行時に決まるサイズで配列を確保できます。
:<syntaxhighlight lang=c++>
int size = 10;
double data[size]; // サイズ10の配列を確保
</syntaxhighlight>
ただし、可変長配列には制限もあり、グローバル変数や<code>static</code>変数では使えず、クラスのメンバー変数としても使えません。また、一部の環境ではサポートされていない可能性があります。
== ポインタ ==
ポインタはメモリ上のデータの位置を表す値です。C++ではポインタを広範に使います。
=== ポインタの基礎 ===
ポインタ変数は<code>*</code>演算子を使って宣言します。<code>&</code>演算子は変数のアドレスを取得します。
:<syntaxhighlight lang=c++>
int x = 5;
int* ptr = &x; // ptrにxのアドレスを代入
*ptr = 10; // xの値が10になる
int y = *ptr; // yは10になる
</syntaxhighlight>
<code>nullptr</code>はC++11で追加された、ヌルポインタを表す安全なリテラルです。
=== ポインタと配列 ===
配列名はその配列の先頭要素のアドレスを指すポインタとして振る舞います。
:<syntaxhighlight lang=c++>
int data[] = {1, 2, 3, 4, 5};
int* ptr = data; // dataはdata[0]のアドレスを指す
for (int i = 0; i < 5; i++) {
std::cout << ptr[i] << " "; // ptrを配列のように使用
std::cout << *(ptr + i) << " "; // 別の記述方法
}
</syntaxhighlight>
これにより、配列要素へのアクセスにポインタの算術演算を利用できます。
=== ポインタの算術演算 ===
ポインタに対して算術演算を行うと、そのポインタの指す型のサイズ分をバイト単位で移動します。
:<syntaxhighlight lang=c++>
int data[] = {1, 2, 3};
int* ptr = data; // ptrはdata[0]を指す
ptr++; // ptrはdata[1]を指す
ptr += 2; // ptrはdata[3]を指す(存在しない領域)
</syntaxhighlight>
この性質を利用して、動的メモリ確保した領域を順にアクセスしていくことができます。
=== ダイナミックメモリ管理 ===
C++ではヒープ領域からメモリを動的に確保・解放できます。
:<syntaxhighlight lang=c++>
int* data = new int[5]; // 整数型の配列を動的に確保
data[0] = 10; // 配列の使用
// ...
delete[] data; // 確保したメモリを解放
</syntaxhighlight>
<code>new</code>演算子でメモリを確保し、<code>delete</code>演算子で解放します。メモリリークを避けるため、確保したメモリは必ず解放する必要があります。
=== スマートポインタ (C++11) ===
C++11で導入されたスマートポインタを使うと、メモリリークのリスクを軽減できます。
:<syntaxhighlight lang=c++>
#include <memory>
auto main() -> int {
std::unique_ptr<int> ptr(new int(10)); // int型を動的に確保
// ...
return 0; // ptrの破棄時に自動で解放される
}
</syntaxhighlight>
<code>unique_ptr</code>はスコープを出ると自動的に<code>delete</code>が呼ばれるので、手動での解放が不要になります。<code>shared_ptr</code>などのスマートポインタも利用できます。
== 構造体と共用体 ==
構造体と共用体を使うと、異なる型のデータを1つにグループ化できます。
=== 構造体の定義 ===
<code>struct</code>キーワードを使って構造体を定義します。
:<syntaxhighlight lang=c++>
struct Point {
int x;
int y;
};
auto main() -> int {
Point p1; // {x=0, y=0}
p1.x = 2;
p1.y = 3;
Point p2 = {5, 7}; // {x=5, y=7}
return 0;
}
</syntaxhighlight>
構造体のメンバーにはドット(<code>.</code>)を使ってアクセスします。構造体の初期化も可能です。
=== ビットフィールド ===
構造体のメンバーにビットフィールドを使うと、メモリ利用効率が上がります。
:<syntaxhighlight lang=c++>
struct Flags {
unsigned int flag1 : 1; // 1ビット
unsigned int flag2 : 2; // 2ビット
unsigned int flag3 : 3; // 3ビット
// ...
};
</syntaxhighlight>
ビットフィールドメンバーには、利用するビット数を指定します。
=== 共用体 ===
共用体(<code>union</code>)では、メンバーが共有のメモリ領域を使い、1つのメンバーしか有効にできません。
:<syntaxhighlight lang=c++>
union Value {
int x;
double y;
};
auto main() -> int {
Value v;
v.x = 5; // vには整数値が入る
v.y = 3.14; // vには浮動小数点数が入る(xは上書きされる)
return 0;
}
</syntaxhighlight>
共用体はメモリを節約したい場合に便利ですが、安全性には注意が必要です。
=== 無名共用体 (C++11) ===
:<syntaxhighlight lang=c++>
struct Data {
int x;
union { // 無名共用体
int y;
double z;
};
};
auto main() -> int {
Data d;
d.x = 1;
d.y = 2; // yかzのどちらか一方にしかアクセスできない
return 0;
}
</syntaxhighlight>
無名共用体は構造体のメンバーとして振る舞いますが、メンバー自体には名前がありません。無名共用体のメンバーにはドット(.)を使ってアクセスします。
無名共用体は匿名ユニオンとも呼ばれ、構造体のメモリレイアウトを最適化したり、互換性のない機能をまとめたりするのに役立ちます。
== クラス ==
クラスはオブジェクト指向プログラミングにおける中心的な概念です。
=== クラスの定義 ===
<code>class</code>キーワードを使ってクラスを定義します。
:<syntaxhighlight lang=c++>
class Rectangle {
private:
int width, height;
public:
Rectangle(int w, int h) : width{w}, height{h} {}
auto getArea() const -> int const { return width * height; }
};
</syntaxhighlight>
この<code>Rectangle</code>クラスには、<code>width</code>と<code>height</code>という2つのメンバー変数と、コンストラクタと<code>getter</code>メソッドが定義されています。
=== コンストラクタ/デストラクタ ===
コンストラクタはオブジェクトの生成時に呼び出される特殊なメンバー関数です。デストラクタはオブジェクトの破棄時に呼び出されます。
:<syntaxhighlight lang=c++>
class Example {
public:
Example() { /* コンストラクタの処理 */ }
~Example() { /* デストラクタの処理 */ }
};
</syntaxhighlight>
コンストラクタ/デストラクタを使って、オブジェクトのライフサイクルに合わせたリソース管理が可能になります。
=== メンバー関数 ===
メンバー関数はクラスのオブジェクトに対して操作を行う関数です。
:<syntaxhighlight lang=c++>
class Counter {
private:
int count{0};
public:
Counter() = default;
void increment() { count++; }
auto getCount() const -> int const { return count; }
};
</syntaxhighlight>
オブジェクトに対してメンバー関数を呼び出すには、ドット(.)を使います。
:<syntaxhighlight lang=c++>
auto main() -> int {
Counter c;
c.increment(); // countが1になる
std::cout << c.getCount(); // 1が出力される
return 0;
}
</syntaxhighlight>
=== アクセス指定子 ===
<code>public</code>、<code>private</code>、<code>protected</code>というアクセス指定子を使って、メンバーへのアクセス権を制御できます。
; <code>public</code> : どこからでもアクセス可能
; <code>private</code> : そのクラスの内部からのみアクセス可能
; <code>protected</code> : そのクラスとその派生クラスの内部からアクセス可能
一般に、メンバー変数は<code>private</code>、メンバー関数は<code>public</code>として設計されます。
=== フレンド関数/クラス ===
<code>friend</code>宣言を使うと、クラス外の関数またはクラスに対して、クラスのプライベートメンバーへのアクセス権を付与できます。
:<syntaxhighlight lang=c++>
class Truck; // 前方宣言が必要
class Engine {
friend class Truck; // Truckクラスをフレンドに設定
int horsepower;
public:
explicit Engine(int hp) : horsepower{hp} {}
};
class Truck {
Engine eng;
public:
explicit Truck(int hp) : eng{hp} {}
[[nodiscard]] auto getHorsePower() const -> int const {
return eng.horsepower;
} // エンジンの馬力を取得
};
</syntaxhighlight>
この例では、<code>Engine</code>クラスは<code>Truck</code>クラスをフレンドとして設定しています。これにより、<code>Truck</code>クラスは<code>Engine</code>クラスのプライベートメンバーである<code>horsepower</code>にアクセスできます。
=== 演算子のオーバーロード ===
C++ではユーザ定義の型に対して、演算子をオーバーロードすることができます。演算子オーバーロードにより、既存の演算子に新しい意味を持たせることができます。
:<syntaxhighlight lang=c++>
class Vector2D {
double x, y;
public:
Vector2D(double _x, double _y) : x{_x}, y{_y} {}
auto operator+(const Vector2D& other) const -> Vector2D {
return {x + other.x, y + other.y};
}
};
auto main() -> int {
Vector2D const v1{1.0, 2.0};
Vector2D const v2{3.0, 4.0};
Vector2D const v3 = v1 + v2; // v3は(4.0, 6.0)となる
return 0;
}
</syntaxhighlight>
この例では、<code>+</code>演算子をオーバーロードして、<code>Vector2D</code>クラスのインスタンス同士の加算を定義しています。
=== 継承 ===
継承を使うと、既存のクラスを拡張して新しいクラスを作ることができます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <string>
#include <utility>
class Animal {
protected:
std::string name;
public:
explicit Animal(std::string n) : name{std::move(n)} {}
void setName(const std::string& n) { name = n; }
virtual void makeSound() = 0; // 純粋仮想関数
};
class Dog : public Animal {
public:
explicit Dog(const std::string& n) : Animal{n} {}
void makeSound() override { std::cout << "Woof!" << std::endl; }
};
</syntaxhighlight>
この例では、<code>Dog</code>クラスが<code>Animal</code>クラスを公開継承しています。<code>Animal</code>クラスの<code>makeSound</code>関数は純粋仮想関数として宣言されており、派生クラスでオーバーライドされる必要があります。
継承によりコードの再利用性が高まりますが、過剰な継承は設計を複雑にする可能性があるので注意が必要です。
== テンプレート ==
テンプレートを使うと、型パラメータを持つジェネリックなコードを書くことができます。
=== 関数テンプレート ===
関数テンプレートは、あらゆる型に対して働く関数を定義できます。
:<syntaxhighlight lang=c++>
template <typename T>
auto max(T a, T b) -> T {
return a > b ? a : b;
}
auto main() -> int {
int const x = max(3, 7); // int版のmaxが呼ばれる
double const y = max(2.5, 9.8); // double版のmaxが呼ばれる
return 0;
}
</syntaxhighlight>
この例では、<code>max</code>関数が関数テンプレートとして定義されています。<code>max</code>関数は、テンプレート引数<code>T</code>の型に基づいたバージョンがコンパイル時に自動的に生成されます。
=== クラステンプレート ===
同様にして、クラスもテンプレート化することができます。
:<syntaxhighlight lang=c++>
#include <numbers>
#include <vector>
template <typename T>
class Stack {
private:
std::vector<T> data;
public:
void push(T value) { data.push_back(value); }
auto pop() -> T {
T value = data.back();
data.pop_back();
return value;
}
};
auto main() -> int {
Stack<int> intStack;
intStack.push(3);
intStack.push(7);
Stack<double> doubleStack;
doubleStack.push(3.14);
doubleStack.push(std::numbers::e);
return 0;
}
</syntaxhighlight>
この例では、<code>Stack</code>クラスがテンプレート化されています。テンプレートにより、<code>Stack</code>クラスは任意の型<code>T</code>の要素を格納できるようになります。<code>main</code>関数内で、<code>int</code>型と<code>double</code>型の<code>Stack</code>オブジェクトが作成されています。
=== テンプレートの特殊化 ===
特定の型に対してテンプレートの振る舞いを変更したい場合、特殊化を行うことができます。
:<syntaxhighlight lang=c++>
// 標準の実装
template <typename T>
class Vector {
public:
Vector(int n, const T& value) { /* ... */ }
// ...
};
// int型の場合の特殊化
template <>
class Vector<int> {
public:
Vector(int n) { /* int型の場合の特別な実装 */ }
// ...
};
</syntaxhighlight>
この例では、<code>Vector</code>クラステンプレートの<code>int</code>型に対する特殊化が行われています。<code>Vector<int></code>の場合のみ、コンストラクタの引数が異なる特別な実装が行われます。
=== 部分特殊化 ===
クラステンプレートに対しては部分特殊化も可能です。これにより、いくつかのテンプレート引数に対してのみ振る舞いを変更できます。
:<syntaxhighlight lang=c++>
// 標準の実装
template <typename T, typename U>
class Pair {
public:
Pair(const T& first, const U& second) { /* ... */ }
// ...
};
// ポインタ型の場合の部分特殊化
template <typename T, typename U>
class Pair<T*, U*> {
public:
Pair(T* first, U* second) { /* ポインタの場合の特別な実装 */ }
// ...
};
</syntaxhighlight>
この例では、<code>Pair</code>クラステンプレートのテンプレート引数が両方ともポインタ型の場合に、部分特殊化が行われています。
部分特殊化は柔軟性が高い反面、誤った実装をしやすいので注意が必要です。
=== テンプレートメタプログラミング ===
テンプレートは実行時だけでなく、コンパイル時にも様々な計算を行えます。これをテンプレートメタプログラミングと呼びます。
:<syntaxhighlight lang=c++>
template <int N>
struct Factorial {
static const int value = N * Factorial<N - 1>::value;
};
template <>
struct Factorial<0> {
static const int value = 1;
};
auto main() -> int {
constexpr int n = 5;
constexpr int fact = Factorial<n>::value; // fact = 120
return 0;
}
</syntaxhighlight>
この例では、再帰的にファクトリアルを計算するためのクラステンプレートが定義されています。<code>Factorial</code>クラステンプレートの<code>value</code>は、コンパイル時の定数として計算されます。
このようなメタプログラミングは、コンパイル時に値や型に関する様々な処理を行うことができるため、柔軟でパフォーマンスの高いジェネリックコードを書くことができます。
== 名前空間 ==
名前空間は、グローバルスコープの名前の衝突を防ぐためのメカニズムです。
=== 名前空間の基本 ===
<code>namespace</code>キーワードを使って名前空間を定義します。名前空間内に関数やクラスなどを入れることができます。
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int value = 10;
void print(int x) {
std::cout << x << std::endl;
}
}
auto main() -> int {
MyNamespace::print(MyNamespace::value); // 10が出力される
return 0;
}
</syntaxhighlight>
名前空間に所属する名前は、スコープ解決演算子(<code>::</code>)を使ってアクセスします。
=== 名前空間の分割 ===
名前空間は複数のソースファイルに分割して定義することができます。
; file1.cc
:<syntaxhighlight lang=c++>
namespace MyNamespace {
int value = 10;
}
</syntaxhighlight>
; file2.cc
:<syntaxhighlight lang=c++>
namespace MyNamespace {
void print(int x) {
std::cout << x << std::endl;
}
}
auto main() -> int {
MyNamespace::print(MyNamespace::value); // 10が出力される
return 0;
}
</syntaxhighlight>
これにより、名前空間の定義を複数のファイルに分散できるので、プロジェクトの規模が大きくなった時に便利です。
=== 無名名前空間 ===
名前が付けられていない無名の名前空間も使えます。無名名前空間は内部リンケージを持つため、その名前空間に所属する名前は同一の翻訳単位内でのみ可視となります。
; file1.cc
:<syntaxhighlight lang=c++>
namespace {
int value = 10; // この値は他のファイルから見えない
}
auto main() -> int {
// value++; // エラー
return 0;
}
</syntaxhighlight>
; file2.cc
:<syntaxhighlight lang=c++>
namespace {
int value = 20; // file1.ccとは別の値
}
</syntaxhighlight>
無名名前空間は特定のソースファイル内部でのみ可視な、名前の衝突を防ぐ手段として用いられます。
=== 名前空間のエイリアス (C++11) ===
C++11から、名前空間に別名をつけることができるようになりました。
:<syntaxhighlight lang=c++>
namespace LongName {
// ...
}
namespace ShortName = LongName;
auto main() -> int {
ShortName::someFunction(); // LongName::someFunctionと同じ
return 0;
}
</syntaxhighlight>
名前空間のエイリアスを使うと、長い名前を短い別名で参照できるので便利です。
== 例外処理 ==
例外処理は、プログラムの実行時にエラー状況が発生した際の対処機構です。
=== try、catch、throw ===
例外の送出には<code>throw</code>を、例外の捕捉には<code>try</code>と<code>catch</code>を使います。
:<syntaxhighlight lang=c++>
#include <exception>
#include <iostream>
#include <stdexcept>
auto divideNumber(double a, double b) -> double {
if (b == 0) {
throw std::runtime_error("Division by zero!");
}
return a / b;
}
auto main() -> int {
try {
double const result = divideNumber(10.0, 0.0);
std::cout << result << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
return 1;
}
return 0;
}
</syntaxhighlight>
この例では、<code>divideNumber</code>関数内で0による除算が行われると例外<code>std::runtime_error</code>が送出されます。<code>main</code>関数の<code>try</code>ブロック内でその例外が捕捉され、<code>catch</code>ブロックで適切な処理が行われます。
<code>throw</code>式の後には任意の型の値を指定でき、<code>catch</code>節でその型を指定して例外を捕捉することができます。
=== 例外階層 ===
C++には標準で<code>std::exception</code>を根本とする例外クラスの階層が用意されています。
<syntaxhighlight lang=text>
std::exception
+-- std::logic_error
| +-- std::domain_error
| +-- std::invalid_argument
| +-- std::length_error
| +-- std::out_of_range
+-- std::runtime_error
+-- std::overflow_error
+-- std::underflow_error
+-- std::range_error
</syntaxhighlight>
特定の種類の例外を捕捉したい場合は、適切な例外クラスの<code>catch</code>節を記述します。
:<syntaxhighlight lang=c++>
try {
// 処理
} catch (const std::logic_error& e) {
// 論理的な例外を捕捉
} catch (const std::runtime_error& e) {
// 実行時の例外を捕捉
}
</syntaxhighlight>
<code>catch</code>節は上から順に評価されるので、一般的な例外から特殊な例外の順に記述する必要があります。
=== 例外安全性 ===
例外安全性とは、例外が発生した際にオブジェクトやリソースがどの程度安全な状態に残るかを表す概念です。一般に、以下の3つのレベルがあります。
; 基本的な例外安全性 : データ構造がおかしくなる可能性はあるが、リソースリークは起こさない
; 強い例外安全性 : 例外が発生してもデータ構造やリソースが変更される前の状態に残る
; ノースロー保証 : 例外が発生しない(そもそも例外を送出しない)
適切な例外処理を行い、例外安全性を確保することが重要です。C++11のスマートポインタなどの機能を活用することも有効な手段です。
== その他の機能 ==
=== プリプロセッサマクロ ===
プリプロセッサマクロは、コンパイル前にソースコードに対して文字置換などの処理を行う機能です。<code>#define</code>で定義されます。
:<syntaxhighlight lang=c++>
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int x = MAX(5, 10); // xは10になる
</syntaxhighlight>
この例では、<code>MAX(a, b)</code>がコンパイル前に<code>((a) > (b) ? (a) : (b))</code>に置換されます。マクロは単純な置換処理しか行えませんが、コンパイル時の最適化などに使われます。
=== インラインアセンブラ ===
C++ではインラインアセンブラを使ってアセンブリ言語を直接記述できます(環境依存)。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int value = 0;
// インラインアセンブラでxレジスタに10を設定する
asm ("movl $10, %eax"
: "=a"(value) // xレジスタの値をvalueに出力
);
std::cout << value << std::endl; // 10が出力される
return 0;
}
</syntaxhighlight>
インラインアセンブラは低レベルの最適化などの目的で使われますが、ポータビリティが失われるデメリットがあります。
=== アトリビュート (C++11) ===
C++11では、クラス、関数、変数などにアトリビュートを指定できるようになりました。アトリビュートは、プログラムに関する追加的な情報を伝えるために使われます。
:<syntaxhighlight lang=c++>
[[nodiscard]] int someFunction() { /* ... */ }
auto main() -> int {
someFunction(); // 警告が出る
return 0;
}
</syntaxhighlight>
この例では、<code>[[nodiscard]]</code>アトリビュートによって、<code>someFunction</code>の戻り値が無視されると警告が出力されます。これにより、不注意なミスを防ぐことができます。
アトリビュートは将来的に拡張される可能性があり、C++20ではコンセプトなどの新機能でアトリビュートが使われています。
=== 可変引数テンプレート (C++11) ===
C++11から、可変数の引数をテンプレートパラメータパックとして受け取れるようになりました。
:<syntaxhighlight lang=c++>
#include <iostream>
template <typename T, typename... Args>
void print(T first, Args... args) {
std::cout << first << std::endl;
if constexpr (sizeof...(args) > 0) {
print(args...);
}
}
auto main() -> int {
print(10, "hello", 3.14, true);
// 出力: 10
// hello
// 3.14
// 1
return 0;
}
</syntaxhighlight>
この<code>print</code>関数は、最初の引数と残りの可変長引数を別々に受け取ることができます。<code>sizeof...</code>は引数パックの要素数を返します。パターン分割を使うと、再帰的に残りの引数を処理することができます。
可変引数テンプレートは、テンプレートメタプログラミングにおいて重要な役割を果たします。
これらは、C++における主要な機能の一部を紹介しました。言語・標準ライブラリの機能は年々拡張されており、最新の規格を確認することが重要です。また、実務でC++を使う際は、コーディング規約やベストプラクティスに従うことも大切です。
{{Nav}}
[[Category:C++|こうふんのきそ]]
pe9fuyxj16s6r39mzsn9xiu2uzxmprn
C++/トレイト
0
39984
263039
250075
2024-11-04T21:18:55Z
Ef3
694
校閲と推敲
263039
wikitext
text/x-wiki
```wikitext
{{Nav}}
= C++のトレイト =
== Traitの概要 ==
Traitは、C++において型の性質や特性を表現するための重要な概念です。この章では、Traitの基本的な定義と概念を紹介し、Traitが提供する利点や目的についても解説します。
=== Traitの定義と概念 ===
Traitとは、プログラム内の型に関する情報を静的に表現するメカニズムです。型が持つ特定の特性や振る舞いを定義し、テンプレートやジェネリックコード内でその情報を利用するための手段です。Traitは型の特性に対する抽象化を提供し、コードの再利用性や柔軟性を向上させます。
=== Traitの利点と目的 ===
Traitが提供する利点は、型の特性を静的に表現することで、コンパイル時に型情報を使用できることです。これにより、コンパイル時の型チェックや最適化が可能になり、安全性や効率性が向上します。Traitを使用することで、コードの再利用性が高まり、保守性や拡張性も向上します。
== C++におけるTraitの歴史 ==
Traitの概念がいかにして発展してきたかを探り、C++11以降のバージョンでのTraitの進化についても解説します。
=== Traitの概念の起源 ===
Traitの概念は、オブジェクト指向プログラミングやジェネリックプログラミングの分野で広く使用されてきました。初期のアイデアはSmalltalkから始まり、再利用可能なメソッドのセットを表現する手法として使われていました。その後、Traitは他の言語にも広がり、さまざまな形で実装されました。
=== C++11以降のTraitの進化 ===
C++11で導入された可変テンプレート引数や<code>constexpr</code>関数はTraitの実装をより柔軟にしました。C++14やC++17でも言語機能やライブラリが改良され、Traitの使用がより効果的になっています。C++20ではコンセプトが導入され、Traitと組み合わせた型制約の表現が可能になりました。
== 基本的なTraitの実装 ==
Traitの基本的な実装方法について、静的メンバ変数や静的メンバ関数を使用して解説します。
=== Traitの実装方法の基礎 ===
Traitの実装はテンプレートメタプログラミングと密接に関連しています。Traitを実装する際は、SFINAE(Substitution Failure Is Not An Error)やテンプレート特殊化を用いて型情報を操作します。
=== 静的メンバ変数と静的メンバ関数を使用した基本的なTrait ===
静的メンバ変数や静的メンバ関数を使用したTraitの実装例を示します。以下に型が特定のプロパティを持つかを確認するTraitを定義します。
:<syntaxhighlight lang="cpp">
#include <iostream>
template <typename T>
struct HasSizeTrait {
template <typename U>
struct SizeChecker {
static constexpr bool value = sizeof(U) > 0;
};
static constexpr bool value = SizeChecker<T>::value;
};
struct A {
int data[10];
};
struct B {
char c;
};
auto main() -> int {
std::cout << std::boolalpha;
std::cout << "A has size: " << HasSizeTrait<A>::value << std::endl;
std::cout << "B has size: " << HasSizeTrait<B>::value << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>HasSizeTrait</code>というTraitを定義し、型のサイズが0より大きいかを判定しています。
== 標準ライブラリにおけるTrait ==
C++標準ライブラリのTrait使用例を紹介します。特に、<code>std::iterator_traits</code>や<code>std::type_traits</code>などを取り上げます。
=== std::iterator_traits ===
<code>std::iterator_traits</code>はイテレータの特性情報を取得するTraitです。ジェネリックコード内でイテレータの特性に依存した処理に使用されます。
:<syntaxhighlight lang="cpp">
#include <iostream>
#include <vector>
#include <iterator>
#include <typeinfo>
auto main() -> int {
using IterType = std::vector<int>::iterator;
using ValueType = typename std::iterator_traits<IterType>::value_type;
std::cout << "The type pointed by the iterator is: " << typeid(ValueType).name() << std::endl;
return 0;
}
</syntaxhighlight>
=== std::type_traits ===
<code>std::type_traits</code>は型情報を条件に基づき判定や変換するためのTraitです。以下に、<code>std::is_pointer</code>を用いてポインタ型を判定する例を示します。
:<syntaxhighlight lang="cpp">
#include <iostream>
#include <type_traits>
auto main() -> int {
std::cout << std::boolalpha;
std::cout << "int* is a pointer: " << std::is_pointer<int*>::value << std::endl;
std::cout << "int is a pointer: " << std::is_pointer<int>::value << std::endl;
return 0;
}
</syntaxhighlight>
標準ライブラリのTraitは、型安全性やコードの柔軟性を向上させるために不可欠な要素です。
== Traitの活用 ==
Traitの活用方法と、ジェネリックプログラミングにおける応用例を解説します。
=== Traitの活用方法 ===
Traitを使うことで、型情報を静的に操作し、コードの柔軟性や保守性を高めることができます。
=== 応用例: ジェネリックプログラミング ===
Traitを使用することで、汎用的なアルゴリズムやデータ構造が型特性に依存した動作を実現できます。特に、メタプログラミングと組み合わせることで、複雑な型判定や動的なコード分岐がコンパイル時に可能となります。
{{Nav}}
{{DEFAULTSORT:とれいと}}
[[Category:C++]]
cjniwoixrkz6qgz58n88b57p20603lb
C++/コンセプト
0
39990
263040
250117
2024-11-04T21:39:16Z
Ef3
694
校閲と推敲
263040
wikitext
text/x-wiki
```wikitext
{{Nav}}
== コンセプトの概要 ==
=== コンセプトとは何か ===
コンセプト (concept) は、C++20から導入された新しい言語機能です。コンセプトは、型が満たすべき一連の要件を定義するもので、これによりジェネリックプログラミングにおいてテンプレート引数として渡される型がその要件を満たしているかどうかをコンパイル時に検査できるようになります。
=== コンセプトの役割と目的 ===
コンセプトの主な役割は、ジェネリックコードの安全性と表現力を高めることです。安全性の向上は、不適切な型がテンプレート引数として渡された場合にコンパイルエラーを発生させることで実現されます。表現力の向上は、コンセプトによってコードの意図がより明確に表現できるためです。
コンセプトの目的は次の3点に集約されます。
# コンパイル時の型検査を可能にする。
# ジェネリックコードの意図を明確に表現する。
# 適切なエラーメッセージを出力する。
=== コンセプトによるジェネリックプログラミングの利点 ===
コンセプトを使うことで、以下のような利点が得られます。
; 安全性の向上 : コンパイル時に型の要件を検査できるため、実行時エラーを減少させることができます。
; 表現力の向上 : コンセプトによって要件を明示的に表現することで、コードの意図がより明確になります。
; エラーメッセージの改善 : コンセプトに基づいたエラーメッセージがコンパイラによって生成され、エラーの原因を特定しやすくなります。
; コード再利用性の向上 : 要件をコンセプトとして抽出することで、異なる場所で再利用が可能になります。
; 拡張性の向上 : 新しいコンセプトを定義して要件を追加することで、ジェネリックコードの柔軟性を高めることができます。
== コンセプトの種類 ==
C++20には、多くの標準コンセプトが用意されています。以下に主なコンセプトの分類を示します。
=== 簡単なコンセプト (EqualityComparable、LessThanComparable など) ===
簡単なコンセプトは、型が等値比較や大小比較をサポートするかを示します。代表的なコンセプトは次のとおりです。
; <code>EqualityComparable</code> : <code>==</code> と <code>!=</code> 演算子をサポートする型。
; <code>EqualityComparableWith</code> : 2つの型の間で <code>==</code> と <code>!=</code> 演算子がサポートされる。
; <code>LessThanComparable</code> : <code><</code> 演算子をサポートする型。
; <code>LessThanComparableWith</code> : 2つの型の間で <code><</code> 演算子がサポートされる。
これらは、ソート済みコンテナやアルゴリズムの実装で用いられます。
=== コンテナ向けのコンセプト (Sequence、AssociativeContainer など) ===
コンテナ向けのコンセプトは、型がコンテナの要件を満たすかどうかを示します。代表例は次のとおりです。
; <code>Sequence</code> : 順序付きコンテナ (例: <code>vector</code>、<code>deque</code>) の要件を満たす型。
; <code>RandomAccessRange</code> : ランダムアクセス可能な範囲をサポートする型。
; <code>AssociativeContainer</code> : 値に対する関数射影を提供するコンテナ (例: <code>map</code>、<code>set</code>) の要件を満たす型。
; <code>UnorderedAssociativeContainer</code> : ハッシュを使用するコンテナの要件を満たす型。
これらは、関数テンプレートのパラメータとしてコンテナを使用する際に適用されます。
=== イテレータ向けのコンセプト (InputIterator、BidirectionalIterator など) ===
イテレータ向けのコンセプトは、特定のイテレータ型が満たすべき要件を定義します。代表的なものは次のとおりです。
; <code>InputIterator</code> : 単方向イテレータの要件を満たす型。
; <code>OutputIterator</code> : 出力イテレータの要件を満たす型。
; <code>ForwardIterator</code> : 前方向イテレータの要件を満たす型。
; <code>BidirectionalIterator</code> : 双方向イテレータの要件を満たす型。
; <code>RandomAccessIterator</code> : ランダムアクセスイテレータの要件を満たす型。
これらは、標準アルゴリズム (例: <code>std::copy</code>、<code>std::sort</code>) で広く使用されています。
=== その他のコンセプト (Callable、Predicate など) ===
その他の汎用コンセプトも存在します。
; <code>Callable</code> : 関数呼び出し可能な型。
; <code>Predicate</code> : 真偽値を返す関数オブジェクトとして使用される型。
; <code>Range</code> : 範囲をサポートする型。
; <code>Semiregular</code> : コピー構築可能かつデフォルト構築可能な型。
; <code>Regular</code> : 値の等値比較ができ、コピー代入可能な型。
これらのコンセプトはアルゴリズムやユーティリティ関数で使用されます。例えば、<code>std::all_of</code> や <code>std::find_if</code> では <code>Predicate</code> コンセプトが使われます。
== コンセプトの定義方法 ==
=== 概念的制約 (concept constraints) の記述 ===
コンセプトは、型が満たすべき制約を表現します。制約は次のように記述されます。
:<syntaxhighlight lang="cpp">
template<typename T>
concept concept_name = /* 制約条件 */;
</syntaxhighlight>
たとえば、<code>EqualityComparable</code> は次のように定義されます。
:<syntaxhighlight lang="cpp">
template<class T>
concept EqualityComparable = requires(T a, T b) {
{ a == b } -> std::convertible_to<bool>; // a == b の結果がブール値に変換可能
{ a != b } -> std::convertible_to<bool>; // a != b の結果もブール値に変換可能
};
</syntaxhighlight>
この定義は型 <code>T</code> が <code>==</code> と <code>!=</code> 演算子をサポートすることを表しています。
=== コンセプト定義の構文 ===
コンセプトは以下の構文で定義されます。
:<syntaxhighlight lang="cpp">
concept concept_name = constraint_expression;
</syntaxhighlight>
* <code>concept_name</code>: コンセプトの名前
* <code>constraint_expression</code>: 型が満たすべき制約条件を記述する論理式
制約条件の例:
; 型トレイト : <code>std::is_integral<T></code>, <code>std::is_default_constructible<T></code> など
; 簡単な要件 : <code>sizeof(T) <= 16</code>, <code>std::has_virtual_destructor<T></code> など
; 合成要件 : <code>EqualityComparable<T></code>, <code>std::derived_from<T, Base></code> など
; 演算子要件 : <code>a == b</code>, <code>a != b</code>, <code>a < b</code> など
; メンバ関数要件 : <code>a.empty()</code>, <code>a.size()</code>, <code>T::value_type</code> など
=== コンパウンドコンセプト (compound concepts) ===
複数のコンセプトを組み合わせて新しいコンセプトを作成することもできます。例として次に、複数のコンセプトを組み合わせる方法を示します。
:<syntaxhighlight lang="cpp">
template<typename T>
concept Hashable = requires(T a) {
{ std::hash<T>{}(a) } -> std::convertible_to<std::size_t>;
};
template<typename T>
concept CustomConcept = EqualityComparable<T> && Hashable<T>;
</syntaxhighlight>
この例では、<code>CustomConcept</code> という新しいコンセプトが <code>EqualityComparable</code> と <code>Hashable</code> の両方を満たす型として定義されています。このように、コンパウンドコンセプトはジェネリックコードの柔軟性を高めるために使用されます。
== コンセプトの使用方法 ==
=== テンプレート宣言におけるコンセプトの使用 ===
テンプレート関数やクラスの定義において、コンセプトを使用することで、型パラメータの制約を明示的に指定できます。これにより、意図しない型の使用を防ぐことができます。
以下に、コンセプトを使用したテンプレート関数の例を示します。
:<syntaxhighlight lang="cpp">
template<EqualityComparable T>
bool are_equal(const T& a, const T& b) {
return a == b;
}
</syntaxhighlight>
この例では、テンプレート引数 <code>T</code> が <code>EqualityComparable</code> コンセプトを満たす型であることを要求しています。この関数は、<code>==</code> 演算子が使用できる型のみ受け入れます。
=== <code>requires</code> 式の使用 ===
コンセプトは <code>requires</code> 式を用いて関数内で直接使用することもできます。これにより、関数内で特定の条件を満たしているかどうかを柔軟にチェックできます。
:<syntaxhighlight lang="cpp">
template<typename T>
requires std::integral<T>
T add(T a, T b) {
return a + b;
}
</syntaxhighlight>
この例では、<code>T</code> が <code>std::integral</code> コンセプトを満たす場合にのみ、<code>add</code> 関数が使用できるようになっています。<code>requires</code> キーワードを使用することで、テンプレート宣言に制約を簡潔に追加できます。
=== 概念ベースのオーバーロード ===
コンセプトを使用すると、関数のオーバーロードを簡単に定義できます。たとえば、異なるコンセプトを持つ型に対して異なる処理を提供することが可能です。
:<syntaxhighlight lang="cpp">
template<typename T>
requires std::integral<T>
void print_info(const T& value) {
std::cout << "Integral value: " << value << '\n';
}
template<typename T>
requires std::floating_point<T>
void print_info(const T& value) {
std::cout << "Floating-point value: " << value << '\n';
}
</syntaxhighlight>
この例では、<code>print_info</code> 関数は <code>std::integral</code> 型と <code>std::floating_point</code> 型で異なる出力を行います。コンセプトに基づいて関数のオーバーロードを選択できるため、コードの意図がより明確になります。
; まとめ
C++20 のコンセプトは、型パラメータに制約を与えることでジェネリックプログラミングをより安全かつ表現力豊かにします。コンセプトを用いることで、意図しない型の使用を防ぎ、コードの可読性と保守性を向上させることができます。また、エラーメッセージも改善され、開発者は問題の原因を特定しやすくなります。
コンセプトは今後の C++ プログラミングにおいて、ますます重要な役割を果たしていくでしょう。これにより、ジェネリックコードをより安全で強力なものにするための道が開かれます。
{{Nav}}
[[Category:C++|こんせぷと]]
5nijsowfcbikrh2ktuwxiswqnt85710
古典ラテン語/数詞
0
40100
263029
263008
2024-11-04T13:40:19Z
Linguae
449
/* 数詞の一覧表 */ +12
263029
wikitext
text/x-wiki
== ラテン語の数詞 ==
ラテン語で数を表わす'''数詞'''([[w:la:Nomen numerale|Nomen numerale]])はバラエティーに富んでおり、以下のものがある。
:数副詞以外は、名詞([[wikt:en:nomen#Latin|nōmen]] [[wikt:en:numeralis#Latin|numerāle]])・形容詞(nōmen [[wikt:en:adiectivus#Latin|adiectīvum]] numerāle)として用いられる。
{| class="wikitable sortable"
|-
|
!ラテン語名
|英語名
| rowspan="10" |
!数詞の例(1桁)
|英訳例
|
!訳例
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |[[#基数詞|基数詞]]
|numerus [[wikt:en:cardinalis#Noun|cardinālis]] <ref group="n">(nōmen) adiectīvum numerāle [[wikt:en:cardinalis#Adjective|cardināle]] (基数の形容詞)</ref>
| style="font-size:9pt;" |[[w:en:Latin_numerals#Cardinal_numerals|Cardinal numerals]]
| style="font-size:13pt;" |[[wikt:en:unus#Latin|ūnus]], [[wikt:en:duo#Latin|duo]], [[wikt:en:tres#Latin|trēs]],
| style="font-size:9pt;" |[[wikt:en:one#English|one]], [[wikt:en:two#English|two]], [[wikt:en:three#English|three]],
|
|一つ、二つ、三つ、
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |[[#序数詞|序数詞]]
|numerus [[wikt:en:ordinalis#Latin|ōrdinālis]] <ref group="n">(nōmen) adiectīvum numerāle [[wikt:en:ordinalis#Latin|ōrdināle]] (序数の形容詞)</ref>
| style="font-size:9pt;" |[[w:en:Latin_numerals#Ordinal_numerals|Ordinal numerals]]
| style="font-size:13pt;" |[[wikt:en:primus#Latin|prīmus]], [[wikt:en:secundus#Latin|secundus]], [[wikt:en:tertius#Latin|tertius]],
| style="font-size:9pt;" |[[wikt:en:first#English|first]], [[wikt:en:second#English|second]], [[wikt:en:third#English|third]],
|
| style="font-size:11pt;" |第一の、第二の、第三の、
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |[[#数副詞|数副詞]]
|numerus [[wikt:en:adverbialis#Latin|adverbiālis]]
| style="font-size:9pt;" |[[w:en:Latin_numerals#Adverbial_numerals|Adverbial numerals]]
| style="font-size:13pt;" |[[wikt:en:semel#Latin|semel]], [[wikt:en:bis#Latin|bis]], [[wikt:en:ter#Latin|ter]],
| style="font-size:9pt;" |[[wikt:en:once#English|once]], [[wikt:en:twice#English|twice]], [[wikt:en:thrice#English|thrice]],
|
|一回、二回、三回、
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |[[#配分数詞|配分数詞]]
|numerus ''[[wikt:fr:distributivus#la|distributīvus]]'' <ref group="n">(nōmen) adiectīvum numerāle [[wikt:fr:distributivus#la|distributīvum]] (配分数の形容詞)</ref>
| style="font-size:9pt;" |[[w:en:Latin_numerals#Distributive_numerals|Distributive numerals]]
| style="font-size:13pt;" |[[wikt:en:singuli#Latin|singulī]], [[wikt:en:bini#Latin|bīnī]], [[wikt:en:terni#Latin|ternī]],
| style="font-size:8pt;" |one each,two each,three each,
|
| style="font-size:9pt;" |一つずつ、二つずつ、三つずつ、
|- style="font-family:Times New Roman;"
! style="font-size:9pt;" |[[#比例数詞|比例数詞]]
|numerus [[wikt:en:proportionalis#Latin|prōportiōnālis]] <ref group="n">(nōmen) adiectīvum numerāle [[wikt:en:proportionalis#Latin|prōportiōnāle]] (比例数の形容詞)</ref>
| style="font-size:9pt;" |[[w:en:Latin_numerals#Proportional_numerals|Proportional numerals]]
| style="font-size:13pt;" |[[wikt:en:simplus#Latin|simplus]], [[wikt:en:duplus#Latin|duplus]], [[wikt:en:triplus#Latin|triplus]],
| style="font-size:9pt;" |[[wikt:en:simple#English|simple]], [[wikt:en:double#English|double]], [[wikt:en:triple#English|triple]],
|
| style="font-size:11pt;" |単一の、二倍の、三倍の、
|- style="font-family:Times New Roman;"
! style="font-size:9pt;" |[[#倍数詞|倍数詞]]
|numerus [[wikt:en:multiplicativus#Latin|multiplicātīvus]] <ref group="n">(nōmen) adiectīvum numerāle [[wikt:en:multiplicativus#Latin|multiplicātīvum]] (倍数の形容詞)</ref>
| style="font-size:9pt;" |[[w:en:Latin_numerals#Multiplicative_numerals|Multiplicative numerals]]
| style="font-size:13pt;" |[[wikt:en:simplex#Latin|simplex]], [[wikt:en:duplex#Latin|duplex]], [[wikt:en:triplex#Latin|triplex]],
| style="font-size:9pt;" |[[wikt:en:onefold#English|onefold]], [[wikt:en:twofold#English|twofold]], [[wikt:en:threefold#English|threefold]],
|
| style="font-size:11pt;" |一重の、二重の、三重の、
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |[[#集合数詞|集合数詞]]
|numerus [[wikt:en:collectivus#Latin|collēctīvus]]
| style="font-size:9pt;" |
| style="font-size:13pt;" |[[wikt:en:unio#Etymology_1|ūniō]], [[wikt:en:binio#Latin|bīniō]], [[wikt:en:ternio#Latin|terniō]],
| style="font-size:9pt;" |
|
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |[[#分数詞|分数詞]]
|numerus partitīvus
| style="font-size:9pt;" |
| style="font-size:13pt;" |[[wikt:en:semis#Latin|sēmis]], [[wikt:en:triens#Latin|triēns]],
| style="font-size:9pt;" |
|
|
|- style="font-family:Times New Roman;"
! style="font-size:13pt;" |
|
| style="font-size:9pt;" |
| style="font-size:13pt;" |
| style="font-size:9pt;" |
|
|}
;数詞名のラテン語表記
<references group="n"/>
== 数詞の一覧表 ==
'''数副詞''' 以外は、形容詞・名詞として用いられる。
{| class="wikitable sortable"
|-
! colspan="2" | 数
! style="font-size:9pt;" |[[#基数詞|基数詞]]
! style="font-size:9pt;" |[[#序数詞|序数詞]]
! style="font-size:9pt;" |[[#数副詞|数副詞]]
! style="font-size:9pt;" |[[#配分数詞|配分数詞]]
! style="font-size:9pt;width:5em;" |[[#比例数詞|比例数詞]];<br>[[#倍数詞|倍数詞]]
! style="font-size:9pt;" |[[#集合数詞|集合<br>数詞]]
! style="font-size:9pt;" |[[#分数詞|分数詞]]
! colspan="2" | 意 味
! 備 考
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❶】-->1
! style="font-size:18pt;" |I
! style="background-color:#cfc; font-size:21pt;" |<!--基数詞-->[[wikt:en:unus#Latin|ūnus]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:primus#Latin|prīmus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:semel#Latin|semel]]
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:singulus#Latin|singulī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->[[wikt:en:simplus#Latin|simplus]] ;<br>[[wikt:en:simplex#Latin|simplex]]
| style="font-size:12pt;" |<!--集合数詞-->[[wikt:en:unio#Etymology_1|ūniō]]
| style="background-color:#ddd; font-size:12pt;" |<!--分数詞-->
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❷】-->2
! style="font-size:18pt;" |II
! style="background-color:#cfc; font-size:21pt;" |<!--基数詞-->[[wikt:en:duo#Latin|duo]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:secundus#Latin|secundus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:bis#Latin|bis]]
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:binus#Latin|bīnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->[[wikt:en:duplus#Latin|duplus]] ;<br>[[wikt:en:duplex#Latin|duplex]]
| style="font-size:12pt;" |<!--集合数詞-->[[wikt:en:binio#Latin|bīniō]]
| style="font-size:12pt;" |<!--分数詞-->[[wikt:en:dimidius#Latin|dīmidius]],<br>[[wikt:en:semis#Latin|sēmis]]
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❸】-->3
! style="font-size:18pt;" |III
! style="background-color:#cfc; font-size:21pt;" |<!--基数詞-->[[wikt:en:tres#Latin|trēs]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:tertius#Latin|tertius]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:ter#Latin|ter]]
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:ternus#Latin|ternī]] <ref>[[wikt:la:terni|la: ternī]]</ref>,<br>''[[wikt:trinus#Latin|trīnī]] <ref>[[wikt:la:trini#Latine|la: trīnī]]</ref>
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->[[wikt:en:triplus#Latin|triplus]] ;<br>[[wikt:en:triplex#Latin|triplex]]
| style="font-size:12pt;" |<!--集合数詞-->[[wikt:en:ternio#Latin|terniō]],<br>''[[wikt:la:trinio#Latine|trīniō]]''
| style="font-size:12pt;" |<!--分数詞-->[[wikt:en:triens#Latin|triēns]]
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❹】-->4
! style="font-size:18pt;" |IV
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:quattuor#Latin|quattuor]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:quartus#Latin|quārtus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:quater#Latin|quater]]
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:quaternus#Latin|quaternī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->[[wikt:en:quadruplus#Latin|quadruplus]] ;<br>[[wikt:en:quadruplex#Latin|quadruplex]]
| style="font-size:12pt;" |<!--集合数詞-->[[wikt:en:quaternio#Latin|quaterniō]]
| style="font-size:12pt;" |<!--分数詞-->[[wikt:en:quadrans#Latin|quadrāns]],
| style="" |
| style="" |
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❺】-->5
! style="font-size:18pt;" |V
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:quinque#Latin|quīnque]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:quintus#Latin|quīntus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:quinquies#Latin|quīnquiēs]]<br>([[wikt:en:quinquiens|quīnquiēns]])
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:quinus#Latin|quīnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->[[wikt:en:quintuplus#Latin|quīntuplus]] ;<br>[[wikt:en:quintuplex|quintuplex]]
| style="font-size:12pt;" |<!--集合数詞-->[[wikt:en:quinio#Latin|quīniō]]
| style="font-size:12pt;" |<!--分数詞-->[[wikt:en:quintans#Latin|quīntāns]]
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❻】-->6
! style="font-size:18pt;" |VI
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:sex#Latin|sex]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:sextus#Latin|sextus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:sexies#Latin|sexiēs]]<br>(sexiēns)
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:senus#Latin|sēnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->''[[wikt:fr:sextuplus|sextuplus]] ;<br>[[wikt:fr:sextuplex|sextuplex]]''
| style="font-size:12pt;" |<!--集合数詞-->[[wikt:en:senio#Latin|sēniō]]
| style="font-size:12pt;" |<!--分数詞-->[[wikt:en:sextans#Latin|sextāns]]
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❼】-->7
! style="font-size:18pt;" |VII
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:septem#Latin|septem]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:septimus#Latin|septimus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:septies#Latin|septiēs]]<br>([[wikt:en:septiens#Latin|septiēns]])
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:septenus#Latin|septēnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->septuplus ;<br>[[wikt:en:septuplex|septuplex]]
| style="font-size:12pt;" |<!--集合数詞-->-
| style="font-size:12pt;" |<!--分数詞-->septāns
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❽】-->8
! style="font-size:18pt;" |VIII
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:octo#Latin|octō]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:octavus#Latin|octāvus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:octies|octiēs]]<br>(octiēns)
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:octonus#Latin|octōnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->octuplus ;<br>octuplex
| style="font-size:12pt;" |<!--集合数詞-->-
| style="font-size:12pt;" |<!--分数詞-->[[wikt:en:octans#Latin|octāns]]
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❾】-->9
! style="font-size:18pt;" |VIIII,<br>IX
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:novem#Latin|novem]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:nonus#Latin|nōnus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:novies#Latin|noviēs]]<br>(noviēns)
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:novenus#Latin|novēnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->nōnuplus ;<br> novemplex
| style="font-size:12pt;" |<!--集合数詞-->-
| style="font-size:12pt;" |<!--分数詞-->''nōnus''
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【❿】-->10
! style="font-size:18pt;" |X
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:decem#Latin|decem]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:decimus#Latin|decimus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:decies|deciēs]]<br>([[wikt:en:deciens|deciēns]])
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:en:denus#Latin|dēnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->[[wikt:en:decuplus#Latin|decuplus]] ;<br>[[wikt:en:decemplex#Latin|decemplex]]
| style="font-size:12pt;" |<!--集合数詞-->-
| style="font-size:12pt;" |<!--分数詞-->?
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【⓫】-->11
! style="font-size:18pt;" |XI
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:undecim#Latin|ūndecim]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:undecimus#Latin|ūndecimus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:undecies#Latin|ūndeciēs]]<br>(ūndeciēns)
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:la:undeni|ūndēnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->ūndecuplus ;<br>ūndecimplex
| style="font-size:12pt;" |<!--集合数詞--> -
| style="font-size:12pt;" |<!--分数詞-->([[wikt:en:undecimus#Latin|ūndecimus]])
| style="" |
| style="" |
|
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【⓬】-->12
! style="font-size:18pt;" |XII
! style="font-size:21pt;" |<!--基数詞-->[[wikt:en:duodecim#Latin|duodecim]]
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->[[wikt:en:duodecimus#Latin|duodecimus]]
| style="font-size:18pt;" |<!--数副詞-->[[wikt:en:duodecies#Latin|duodeciēs]]<br>(duodeciēns)
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->[[wikt:la:duodeni|duodēnī]]
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->duodecuplus ;<br>duodecimplex
| style="font-size:12pt;" |<!--集合数詞--> -
| style="font-size:12pt;" |<!--分数詞-->([[wikt:en:uncia#Latin|ū̆ncia]])
| style="" |
| style="" |
|
<!--【●編集中●】-->
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【】-->
! style="font-size:18pt;" |
! style="font-size:21pt;" |<!--基数詞-->
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->
| style="font-size:18pt;" |<!--数副詞-->
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->
| style="font-size:12pt;" |<!--集合数詞-->
| style="font-size:12pt;" |<!--分数詞-->
| style="" |
| style="" |
|
<!--【●編集中●】-->
|- style="font-family:Times New Roman;"
| style="font-size:18pt;" |<!--【】-->
! style="font-size:18pt;" |
| style="background-color:#dfd; font-size:21pt;" |<!--基数詞-->
| style="background-color:#dfd; font-size:21pt;" |<!--序数詞-->
| style="font-size:18pt;" |<!--数副詞-->
| style="font-size:18pt; background-color:#efe;" |<!--配分数詞-->
| style="font-size:12pt;" |<!--比例数詞・倍数詞-->
| style="font-size:12pt;" |<!--集合数詞-->
| style="font-size:12pt;" |<!--分数詞-->
| style="" |
| style="" |
|
|}
<span style="font-family:Times New Roman;font-size:18pt;"></span>
<span style="font-family:Times New Roman;"></span>
<span style="font-size:18pt;"></span>
{{Wikipedia|la:Categoria:Numeri Latini|la:Cat:Numeri Latini}}
*[[wikt:en:viginti unus|vīgintī ūnus]]
*[[wikt:la:viginti duo|vīgintī duo]]
*[[wikt:en:viginti tres|vīgintī trēs]]
*<!--400 基数-->[[wikt:en:quadringenti#Latin|quadringentī]]
<!--
===semel===
===bis===
:'''参考''':「再び、もう一度」を意味する単語
<span style="font-family:Times New Roman;font-size:18pt;">
</span>
===ter===
===quater===
===vīciēs, vīciēns===
:<span style="font-family:Times New Roman;font-size:18pt;">[[wikt:en:vicies#Latin|vīciēs]], [[wikt:en:viciens|vīciēns]]</span>:20回・20倍(''twenty times'')
===quīnquiēs, quīnquiēns===
===sexiēs, sexiēns===
-->
== 関連する数詞 ==
====基数詞====
*基数詞 ([[wikt:en:cardinalis#Noun|cardinālis]]):関連 '''[[w:en:Latin_numerals#Cardinal_numerals|w:Cardinal numerals]]''', [[wikt:en:Category:Latin cardinal numbers|wikt:Category:Latin cardinal numbers]]
===数形容詞===
*数形容詞 :関連 [[wikt:fr:Catégorie:Adjectifs numéraux en latin]]
====序数詞====
*序数詞 (ordinālis):関連 '''[[w:en:Latin_numerals#Ordinal_numerals|w:Ordinal numerals]]''', [[wikt:en:Category:Latin ordinal numbers|wikt:Category:Latin ordinal numbers]]
====数副詞====
====配分数詞====
*配分数詞 (distributīvus):関連 '''[[w:en:Latin_numerals#Distributive_numerals|w:Distributive numerals]]'''
**[[wikt:en:deni#Latin|dēnī]] (ten each: 10ずつ)
**[[wikt:en:duodeni#Latin|duodēnī]] (twelve each: 12ずつ)
====比例数詞====
*比例数詞 ([[wikt:en:proportionalis#Latin|prōportiōnālis]]):関連 '''[[w:en:Latin_numerals#Proportional_numerals|w:Proportional numerals]]'''
====倍数詞====
*倍数詞 ([[wikt:en:multiplicativus|multiplicātīvus]]):関連 '''[[w:en:Latin_numerals#Multiplicative_numerals|w:Multiplicative numerals]]'''
====集合数詞====
*集合数詞 ([[wikt:en:collectivus#Latin|collēctīvus]])
====分数詞====
*分数詞 (部分数詞, partitīvus, ''[[wikt:en:partitive#Noun|partitive]]''):関連 [[w:en:Partitive]]
== 脚注 ==
<references />
== 関連項目 ==
*[[古典ラテン語/副詞]]
**[[古典ラテン語/副詞/数副詞]]
== 関連記事 ==
*英語版ウィキペディア
**[[w:en:Latin numerals]](ラテン語の数詞)
*日本語版ウィキペディア
**[[w:ラテン語の数詞]]
*ラテン語版ウィキペディア
**[[w:la:Numeri Romani]]
*仏語版ウィキペディア
**''[[w:fr:Adverbe multiplicatif]]''(数副詞)
**''[[w:fr:Adjectif distributif]]''(配分数詞)
*英語版ウィクショナリー
**[[wikt:en:Module:number list/data/la]](数詞の表)
*独語版ウィクショナリー
**[[wikt:de:Kategorie:Numerale (Latein)]](数詞のカテゴリ)
*仏語版ウィクショナリー
**''[[wikt:fr:unus#la]]''(数表 "Nombres en latin")
*ラテン語版ウィクショナリー
**[[wikt:la:Auxilium:Numeri Latini]](数詞のカテゴリ)
[[Category:古典ラテン語|数]]
[[Category:ラテン語学習モジュール|数]]
[[カテゴリ:数詞]]
4i6d782x53ptctwvcmieb17qxt9hg3v
ガリア戦記 第6巻/注解/7節
0
43101
263035
262998
2024-11-04T16:07:44Z
Linguae
449
/* 整形テキスト */ 修整
263035
wikitext
text/x-wiki
<div style="font-family:Arial Black;font-style:normal;font-size:15pt;color:#990033;text-align:center;">C · IVLII · CAESARIS · COMMENTARIORVM · BELLI · GALLICI</div>
<div style="font-family:Arial Black;font-style:normal;font-size:30pt;color:#990033;text-align:center;">LIBER · SEXTVS</div>
<br>
{| id="toc" style="align:center;clear:all;" align="center" cellpadding="5"
|-
! style="background:#bbf; text-align:center;" | [[ガリア戦記/注解編|ガリア戦記 注解編]]
| style="background:#ccf; text-align:center;" | [[ガリア戦記 第6巻/注解|第6巻]]
| style="background:#eef; text-align:center;"|
[[ガリア戦記 第6巻/注解/6節|6節]] |
[[ガリア戦記 第6巻/注解/7節|7節]] |
[[ガリア戦記 第6巻/注解/8節|8節]]
|}
__notoc__
== 原文テキスト ==
<div style="font-family:Times New Roman;font-style:normal;font-size:15pt;color:#333;text-align:left;"><ref>原文テキストについては[[ガリア戦記/注解編#原文テキスト]]を参照。</ref> 7.
<!--❶--><sup>1</sup>Dum haec a Caesare geruntur, Treveri magnis coactis peditatus equitatusque copiis Labienum cum una legione, quae in eorum finibus <!--(α) -->hiemaverat<!--(β) hiemabat--><!--(Seel) hiemarat-->, adoriri parabant, <!--◆--> <!--❷--><sup>2</sup>iamque ab eo non longius bidui via aberant, cum duas venisse legiones missu Caesaris cognoscunt. <!--◆--> <!--❸--><sup>3</sup>Positis castris a milibus passuum quindecim<!--XV--> auxilia Germanorum exspectare constituunt. <!--◆--> <!--❹--><sup>4</sup>Labienus, hostium cognito consilio, sperans temeritate eorum fore aliquam dimicandi facultatem, praesidio quinque cohortium impedimentis relicto cum XXV<!--viginti quinque--> cohortibus magnoque equitatu contra hostem proficiscitur et mille passuum intermisso spatio castra communit. <!--◆--> <!--❺--><sup>5</sup>Erat inter Labienum atque hostem difficili transitu flumen ripisque praeruptis. <!--◆--> Hoc neque ipse transire habebat in animo neque hostis<!--hostes--> transituros existimabat. <!--◆--> <!--❻--><sup>6</sup>Augebatur auxiliorum cotidie spes. Loquitur <!--(ω) -->in consilio<!--(Aldus) in concilio--><!--(Heckert) consulto--> palam:<!--,--> <!--◆--> quoniam Germani appropinquare<!--adpropinquare--> dicantur, sese suas exercitusque fortunas in dubium non devocaturum et postero die prima luce castra moturum. <!--◆--> <!--❼--><sup>7</sup>Celeriter haec ad hostis<!--hostes--> deferuntur, ut ex magno Gallorum equitum numero <!--(α) -->non nullos Gallos Gallicis<!--(β) non nullos Gallicis--> rebus favere natura cogebat. <!--◆--> <!--❽--><sup>8</sup>Labienus noctu tribunis militum primisque ordinibus <!--(α) -->convocatis<!--(β) coactis--><!--,--> quid sui sit consili<!--consilii--> proponit et, quo facilius hostibus timoris det suspicionem, maiore strepitu et tumultu<!--,--> quam populi Romani fert consuetudo castra moveri iubet. <!--◆--> His rebus fugae similem profectionem effecit. <!--◆--> <!--❾--><sup>9</sup>Haec quoque per exploratores ante lucem in tanta propinquitate castrorum ad hostis<!--hostes--> deferuntur. </div>
<span style="background-color:#ffc;"></span>
----
;テキスト引用についての注記
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;"></span>
== 整形テキスト ==
<div style="font-family:Times New Roman;font-style:normal;font-size:15pt;color:#333;text-align:left;"><ref>整形テキストについては[[ガリア戦記/注解編#凡例]]を参照。</ref> VII. <!--❶--><sup>①</sup>Dum haec ā Caesare geruntur, Trēverī magnīs coāctīs peditātūs equitātūsque cōpiīs Labiēnum cum ūnā legiōne, quae in eōrum fīnibus <!--(α) --><u>hiemāverat</u><!--(β) hiemābat--><!--(Seel) hiemārat-->, adorīrī parābant, <!--◆--> <!--❷--><sup>②</sup>iamque ab eō nōn longius bīduī viā aberant, cum duās vēnisse legiōnēs missū Caesaris cognōscunt. <!--◆--> <!--❸--><sup>③</sup>Positīs castrīs ā mīlibus passuum quīndecim<!--XV--> auxilia Germānōrum exspectāre cōnstituunt. <!--◆--> <!--❹--><sup>④</sup>Labiēnus, hostium cognitō cōnsiliō, spērāns temeritāte eōrum fore aliquam dīmicandī facultātem, praesidiō quīnque cohortium impedīmentīs relictō cum <span style="color:#800;">vīgintī quīnque</span><sub> (XXV)</sub> cohortibus magnōque equitātū contrā hostem proficīscitur et mīlle passuum intermissō spatiō castra commūnit. <!--◆--> <!--¶--><!--❺--><sup>⑤</sup>Erat inter Labiēnum atque hostem difficilī trānsitū flūmen rīpīsque praeruptīs. <!--◆--> Hoc<!--Hōc--> neque ipse trānsīre habēbat in animō neque <span style="color:#800;">hostēs</span><!--hostīs--> trānsitūrōs exīstimābat. <!--◆--> <!--❻--><sup>⑥</sup>Augēbatur auxiliōrum cotīdiē spēs. <!--◆--> Loquitur <!--(ω) --><u>in cōnsiliō</u><!--(Aldus) in conciliō--><!--(Heckert) cōnsultō--><!--副--> palam:<!--,--> <!--◆--> quoniam Germānī <span style="color:#800;">adpropinquāre</span><!--appropinquāre--> dīcantur, sēsē suās exercitūsque fortūnās in dubium nōn dēvocātūrum et posterō diē prīmā lūce castra mōtūrum. <!--◆--> <!--❼--><sup>⑦</sup>Celeriter haec ad <span style="color:#800;">hostēs</span><!--hostīs--> dēferuntur, ut ex magnō Gallōrum equitum numerō <!--(α) -->nōn nūllōs <u>Gallōs</u> Gallicīs<!--(β) nōn nūllōs Gallicīs--> rēbus favēre nātūra cōgēbat. <!--◆--> <!--¶--><!--❽--><sup>⑧</sup>Labiēnus<!--,--> noctū tribūnīs mīlitum prīmīsque ōrdinibus <!--(α) --><u>convocātīs</u><!--(β) coāctīs--><!--,--> quid suī sit <span style="color:#800;">cōnsiliī</span><!--cōnsilī--><!--,--> prōpōnit et, quō facilius hostibus timōris det suspīciōnem, maiōre strepitū et tumultū<!--,--> quam populī Rōmānī fert cōnsuētūdō castra movērī iubet. <!--◆--> Hīs rēbus fugae similem profectiōnem effēcit. <!--◆--> <!--❾--><sup>⑨</sup>Haec quoque per explōrātōrēs ante lūcem in tantā propinquitāte castrōrum ad <span style="color:#800;">hostēs</span><!--hostīs--> dēferuntur. </div>
<span style="color:#800;"></span>
----
;注記
*原文の <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[wikt:en:appropinquare#Latin|appropinquāre]], [[wikt:en:consili|cōnsilī]], [[wikt:en:hostis#Latin|hostīs]] <!--[[wikt:en:accommodatae|accommodātae]], [[wikt:en:allatis|allātīs]], [[wikt:en:Aduatuci|Aduatucī]], [[wikt:en:Aduatucis|Aduatucīs]], [[wikt:en:Aduatucos|Aduatucōs]], [[wikt:en:Aeduae|Aeduae]], [[wikt:en:Aedui#Latin|Aeduī]], [[wikt:en:Aeduis|Aeduīs]], [[wikt:en:Aeduorum|Aeduōrum]], [[wikt:en:Aeduos|Aeduōs]], [[wikt:en:Aeduus#Latin|Aeduus]], [[wikt:en:aequinocti|aequinoctī]], [[wikt:en:affectus#Participle|affectus]], [[wikt:en:aggregabat|aggregābat]], [[wikt:en:allato|allātō]], [[wikt:en:Alpis#Latin|Alpīs]], [[wikt:en:appelluntur|appelluntur]], [[wikt:en:apportari|apportārī]], [[wikt:en:appropinquabat|appropinquābat]], [[wikt:en:appropinquarent|appropinquārent]], [[wikt:en:appropinquaverunt|appropinquāvērunt]] ([[wikt:en:appropinquarunt|appropinquārunt]]), [[wikt:en:appropinquavit|appropinquāvit]], [[wikt:en:appulso#Latin|appulsō]], [[wikt:en:arripere|arripere]], [[wikt:en:ascendissent#Latin|ascendissent]], [[wikt:en:ascensu#Noun|ascēnsū]], [[wikt:en:assuefacti|assuēfactī]], [[wikt:en:auxili#Latin|auxilī]], [[wikt:en:cedentis|cēdentīs]], [[wikt:en:cohortis|cohortīs]], [[wikt:en:coicere|coicere]], [[wikt:en:coicerent|coicerent]], [[wikt:en:coici|coicī]], [[wikt:en:coiciant|coiciant]], [[wikt:en:coiciebant|coiciēbant]], [[wikt:en:coiciunt|coiciunt]], [[wikt:en:coiecerant|coiēcerant]], [[wikt:en:coiecerunt|coiēcērunt]], [[wikt:en:coiecisse|coiēcisse]], [[wikt:en:coiecta|coiecta]], [[wikt:en:coiectis|coiectīs]], [[wikt:en:collatis|collātīs]], [[wikt:en:collaudat|collaudat]], [[wikt:en:collaudatis#Participle|collaudātīs]], [[wikt:en:collis#Latin|collīs]], [[wikt:en:collocabant|collocābant]], [[wikt:en:collocabat|collocābat]], [[wikt:en:collocandis|collocandīs]], [[wikt:en:collocant#Latin|collocant]], [[wikt:en:collocarat|collocārat]], [[wikt:en:collocare#Latin|collocāre]], [[wikt:en:collocaret|collocāret]], [[wikt:en:collocari|collocārī]], [[wikt:en:collocatas|collocātās]], [[wikt:en:collocati#Latin|collocātī]], [[wikt:en:collocatis#Participle|collocātīs]], [[wikt:en:collocavit|collocāvit]], [[wikt:en:collocuti|collocūtī]], [[wikt:en:colloquantur|colloquantur]], [[wikt:en:colloquendi|colloquendī]], [[wikt:en:colloqui#Latin|colloquī]], [[wikt:en:colloquium#Latin|colloquium]], [[wikt:en:compluris|complūrīs]], [[wikt:en:conantis|cōnantīs]], [[wikt:en:egredientis#Etymology_2|ēgredientīs]], [[wikt:en:ei#Latin|eī]], [[wikt:en:eis#Latin|eīs]], [[wikt:en:ferventis#Latin|ferventīs]], [[wikt:en:finis#Latin|fīnīs]], [[wikt:en:glandis#Latin|glandīs]], [[wikt:en:immittit|immittit]], [[wikt:en:imperi#Latin|imperī]], [[wikt:en:incolumis#Latin|incolumīs]], [[wikt:en:irridere#Latin|irrīdēre]], [[wikt:en:irrumpit|irrumpit]], [[wikt:en:irruperunt|irrūpērunt]], [[wikt:en:laborantis#Etymology_2|labōrantīs]], [[wikt:en:montis|montīs]], [[wikt:en:navis#Latin|nāvīs]], [[wikt:en:negoti|negōtī]], nōn nūllae, nōn nūllōs, [[wikt:en:offici#Noun_2|officī]], [[wikt:en:omnis#Latin|omnīs]], [[wikt:en:partis#Latin|partīs]], [[wikt:en:periclum#Latin|perīclum]], plūrīs, [[wikt:en:praesidi|praesidī]], [[wikt:en:proeli|proelī]], proficīscentīs, [[wikt:en:resistentis|resistentīs]], [[wikt:en:singularis#Latin|singulārīs]], [[wikt:en:spati#Latin|spatī]], [[wikt:en:subeuntis|subeuntīs]], [[wikt:en:suffossis|suffossīs]], [[wikt:en:sumministrata|sumministrāta]], [[wikt:en:summissis|summissīs]], [[wikt:en:summittebat|summittēbat]], [[wikt:en:summittit|summittit]], [[wikt:en:summoveri|summovērī]], [[wikt:en:Trinobantes#Latin|Trinobantēs]], trīs, [[wikt:en:turris#Latin|turrīs]], [[wikt:en:utilis#Latin|ūtilīs]], [[wikt:en:vectigalis#Latin|vectīgālīs]] --></span> などは、<br>それぞれ <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[wikt:en:adpropinquare|adpropinquāre]], [[wikt:en:consilii|cōnsiliī]], [[wikt:en:hostes#Latin|hostēs]] <!--[[wikt:en:adcommodatae|adcommodātae]], [[wikt:en:adlatis|adlātīs]], [[wikt:de:Atuatuci|Atuatucī]], Atuatucīs, Atuatucōs, Haeduae, Haeduī, Haeduīs, Haeduōrum, Haeduōs, Haeduus, [[wikt:en:aequinoctii|aequinoctiī]], [[wikt:en:adfectus#Adjective|adfectus]], [[wikt:en:adgregabat|adgregābat]], [[wikt:en:adlato|adlātō]], [[wikt:en:Alpes#Latin|Alpēs]], [[wikt:en:adpelluntur|adpelluntur]], [[wikt:en:adportari|adportārī]], [[wikt:en:adpropinquabat|adpropinquābat]], [[wikt:en:adpropinquarent|adpropinquārent]], [[wikt:en:adpropinquaverunt|adpropinquāvērunt]] ([[wikt:en:adpropinquarunt|adpropinquārunt]]), [[wikt:en:adpropinquavit|adpropinquāvit]], [[wikt:en:adpulso|adpulsō]], [[wikt:en:adripere|adripere]], [[wikt:en:adscendissent|adscendissent]], [[wikt:en:adscensu#Noun|adscēnsū]], [[wikt:en:adsuefacti|adsuēfactī]], [[wikt:en:auxilii|auxiliī]], [[wikt:en:cedentes#Latin|cēdentēs]], [[wikt:en:cohortes#Latin|cohortēs]], [[wikt:en:conicere|conicere]], [[wikt:en:conicerent|conicerent]], [[wikt:en:conici#Latin|conicī]], [[wikt:en:coniciant|coniciant]], [[wikt:en:coniciebant|coniciēbant]], [[wikt:en:coniciunt|coniciunt]], [[wikt:en:coniecerant|coniēcerant]], [[wikt:en:coniecerunt|coniēcērunt]], [[wikt:en:coniecisse|coniēcisse]], [[wikt:en:coniecta|coniecta]], [[wikt:en:coniectis|coniectīs]], [[wikt:en:conlatis|conlātīs]], [[wikt:en:conlaudat|conlaudat]], [[wikt:en:conlaudatis#Participle|conlaudātīs]], [[wikt:en:colles#Latin|collēs]], [[wikt:en:conlocabant|conlocābant]], [[wikt:en:conlocabat|conlocābat]], [[wikt:en:conlocandis|conlocandīs]], [[wikt:en:conlocant|conlocant]], [[wikt:en:conlocarat|conlocārat]], [[wikt:en:conlocare|conlocāre]], [[wikt:en:conlocaret|conlocāret]], [[wikt:en:conlocari|conlocārī]], [[wikt:en:conlocatas|conlocātās]], [[wikt:en:conlocati|conlocātī]], [[wikt:en:conlocatis#Participle|conlocātīs]], [[wikt:en:conlocavit|conlocāvit]], [[wikt:en:conlocuti|conlocūtī]], [[wikt:en:conloquantur|conloquantur]], [[wikt:en:conloquendi|conloquendī]], [[wikt:en:conloqui#Latin|conloquī]], [[wikt:en:conloquium#Latin|conloquium]], [[wikt:en:complures#Latin|complūrēs]], [[wikt:en:conantes|cōnantēs]], [[wikt:en:egredientes|ēgredientēs]], [[wikt:en:ii#Latin|iī]], [[wikt:en:iis#Latin|iīs]], [[wikt:en:ferventes#Latin|ferventēs]], [[wikt:en:fines#Latin|fīnēs]], [[wikt:en:glandes#Latin|glandēs]], [[wikt:en:inmittit|inmittit]], [[wikt:en:imperii#Latin|imperiī]], [[wikt:en:incolumes|incolumēs]], [[wikt:en:inridere|inrīdēre]], [[wikt:en:inrumpit|inrumpit]], [[wikt:en:inruperunt|inrūpērunt]], [[wikt:en:laborantes#Latin|labōrantēs]], [[wikt:en:montes#Latin|montēs]], [[wikt:en:naves#Latin|nāvēs]], [[wikt:en:negotii|negōtiī]], [[wikt:en:nonnullae|nōnnūllae]], [[wikt:en:nonnullos|nōnnūllōs]], [[wikt:en:officii#Latin|officiī]], [[wikt:en:omnes#Latin|omnēs]], [[wikt:en:partes#Latin|partēs]], [[wikt:en:periculum#Latin|perīculum]], [[wikt:en:plures|plūrēs]], [[wikt:en:praesidii|praesidiī]], [[wikt:en:proelii|proeliī]], [[wikt:en:proficiscentes|proficīscentēs]], [[wikt:en:resistentes#Latin|resistentēs]], [[wikt:en:singulares#Latin|singulārēs]], [[wikt:en:spatii#Latin|spatiī]], [[wikt:en:subeuntes|subeuntēs]], [[wikt:en:subfossis|subfossīs]], [[wikt:en:subministrata|subministrāta]], [[wikt:en:submissis|submissīs]], [[wikt:en:submittebat|submittēbat]], [[wikt:en:submittit|submittit]], [[wikt:en:submoveri|submovērī]], [[wikt:en:Trinovantes#Latin|Trinovantēs]], [[wikt:en:tres#Latin|trēs]], [[wikt:en:turres#Latin|turrēs]], [[wikt:en:utiles#Latin|ūtilēs]], [[wikt:en:vectigales|vectīgālēs]] --></span> などとした。
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
<span style="color:#b00;"></span>
<span style="color:#800;"></span>
<span style="font-size:10pt;"></span>
<span style="background-color:#ff0;"></span>
== 注解 ==
=== 1項 ===
<span style="font-family:Times New Roman;font-size:20pt;"></span>
;語釈
<span style="font-family:Times New Roman;font-size:15pt;background-color:#fff;"></span>
<span style="font-family:Times New Roman;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-size:15pt;"></span>
<span style="background-color:#ccffcc;"></span>
<!--
;対訳
《 》 内は、訳者が説明のために補った語。<span style="font-family:Times New Roman;font-size:30pt;">{</span> <span style="font-family:Times New Roman;font-size:30pt;">}</span> 内は関係文。
<span style="font-family:Times New Roman;font-size:15pt;"></span>
-->
== 訳文 ==
*<span style="background-color:#dff;">訳文は、[[ガリア戦記_第6巻#7節]]</span>
== 脚注 ==
{{Reflist}}
== 解説 ==
<!--
{| class="wikitable" style="text-align:center"
|- style="height:23em;"
|
|
|}
-->
== 関連項目 ==
*[[ガリア戦記]]
**[[ガリア戦記/注解編]]
***[[ガリア戦記 第6巻/注解]]
**[[ガリア戦記/用例集]]
== 関連記事 ==
== 外部リンク ==
*[https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=222 #222 - C. Iuli Caesaris De bello gallico libri VII : Caesar's Gallic ... - Full View | HathiTrust Digital Library]
[[Category:ガリア戦記 第6巻|07節]]
2c40miku9x4osk1y09wj9sjj7id83f6
高等学校日本史探究/飛鳥文化・白鳳文化
0
43194
263025
263015
2024-11-04T12:50:23Z
Kwawe
68789
/* 白鳳文化 */ 仏像について記述。
263025
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>飛鳥文化・白鳳文化
本節は、文化史を扱います。
== 飛鳥文化 ==
女性の推古天皇の時代が<span style="color:#f29100">'''飛鳥文化'''</span>の中心になります。仏教は、最初に外国人や有力な豪族(蘇我氏)の間だけで広まりました。やがて、「もっと仏教を広めていこう!」と民衆に伝えるようになると、仏教が飛鳥時代に日本で大きく広がりました。こうして、飛鳥文化は日本で初めての'''仏教文化'''として花開きました。
仏教は蘇我氏と厩戸王('''聖徳太子''')で日本に広めました。中でも、厩戸王(聖徳太子)は仏教の詳細を分かっており、仏教の解説書3冊(法華経・維摩経・勝鬘経)を自身で記しています['''三経義疏''']。
6世紀後半から、大王家・豪族が飛鳥にそれぞれ立派な屋敷(大王宮)を建てるようになりました。また、大王家・豪族は自分達の力の大きさを見せるために、それぞれ自分達の寺('''氏寺''')も建てるようになりました。こうして、飛鳥は都らしくなり、一族も深くまとまるようになりました。
例えば、蘇我馬子は'''飛鳥寺'''('''法興寺''')を建てました。飛鳥寺の土台から大切な品物が見つかりました。ここから、考古学者はこれまでの信仰を上手く組み合わせて仏教を民衆に伝わるようになったとされています。厩戸王も'''四天王寺'''・'''斑鳩寺'''('''法隆寺''')を建てました。それから、秦河勝は'''広隆寺'''を建てました。さらに、百済大寺は舒明天皇の時代に建てられました。百済大寺の塔は飛鳥寺・法隆寺の西院伽藍と比べても、かなり大きな寺院でした。考古学者は舒明天皇の力の大きさを見せつけるために、百済大寺を建てたとさせています。百済大寺は天皇初の寺院としてかなり重要な意味を持っています。このような感じで有名な寺院('''伽藍''')が飛鳥時代に数多く建てられています。なお、寺院(伽藍)は大きな石の上に太い柱を赤く塗り、瓦を屋根に載せて建てています。寺院(伽藍)の中心も時代とともに五重塔から本堂(金堂)に変わりました。
ところで、飛鳥時代は厩戸王(聖徳太子)・一部の渡来人を除いて仏教の詳細をあまり知りません。むしろ、民衆は僧侶に仏教を唱えると、厄除けや病気の治療につながると思い仏教を信じていました。
仏教は経典からではなく、寺院・仏像から広まりました。飛鳥時代の仏像は中国の北魏様式と南梁様式に分かれています。北魏様式の仏像と南梁様式の仏像は高句麗と百済から日本に伝わりました。
北魏様式の仏像は<span style="color:#f29100">'''鞍作鳥(止利仏師)'''</span>とその弟子達で作られました。北魏様式の場合、仏像の顔は左右均等・杏仁形の目・三日月形の口元になります。仏像の厳しい表情の中に少しはにかんでいるような雰囲気があり、とても不思議な感じがします。例えば、飛鳥寺の釈迦如来像・法隆寺金堂の<span style="color:#f29100">'''釈迦三尊像'''</span>(金銅像)・法隆寺夢殿の'''救世観音像'''(木像)などが北魏様式の有名な仏像となります。
中でも、法隆寺夢殿の救世観音像は厩戸王(聖徳太子)を参考に作られており、江戸時代まで大切に保管していました。明治時代を迎えると、アメリカの哲学者アーネスト・フェノロサが明治政府に「この仏像を見せて」とお願いします。明治政府は彼に「仏像を見てもいいですよ。」と伝えました。法隆寺の僧侶達は「祟りが怖い!」と思って逃げ出しました。しかし、法隆寺夢殿の救世観音像は大切に保管されていたので、今でも傷んでいません。
一方、法隆寺の'''百済観音像'''を見ていると何だか心も落ち着きます。法隆寺の百済観音像は日本で作られたと考えられています。法隆寺の百済観音像のように、南梁様式の仏像は顔の表情もかなり優しく、ふくよかな体型をしています。中宮寺と広隆寺の'''半跏思惟像'''はどちらも木製です。半跏思惟像はかなり優しい表情をしています。そして、半跏思惟像は片足を組んで、頬に手を当てて何かを考えているような姿をしています。なお、飛鳥文化の仏像は全てはにかんでいます(アルカイックスマイル・古拙の笑み)。
法隆寺の<span style="color:#f29100">'''玉虫厨子'''</span>は小さな仏像を入れるための木箱です。玉虫厨子の装飾に本物の玉虫の羽が使われています。1400年以上も前に作られたのに、玉虫の羽が今でも少し残っています。日本の絵画は高句麗の<span style="color:#f29100">'''曇徴'''</span>がかなり重要な役割を果たしています。610年、曇徴が紙の作り方・墨の作り方・絵の彩色方法を日本に伝えました。この技術から、法隆寺の玉虫厨子に須弥座絵扉絵(施身聞偈図・捨身飼虎図)・扉絵が描かれるようになりました。その中でも、母虎と子供の虎はお腹を空かせていたので、母虎と子供の虎を助けるために王子の体を差し出すような絵画(捨身飼虎図)はかなり心に響きます。中宮寺の'''天寿国繍帳'''も心に残ります。橘大郎女(厩戸王の嫁)が故人の厩戸王を忘れられず、「もう一度その姿を見たい。」と渡来人に伝えます。渡来人が橘大郎女の想いを受け入れて厩戸王の下絵を描き、宮廷の采女達にその下絵を刺繍させました。
各国(朝鮮・中国・西アジア・インド・ギリシア)の文化がこのような美術工芸品に詰まっています。忍冬唐草文様・ペガサス(天馬)を見ると、昔の人間がどこまで世界とつながっていたのか分かります。
飛鳥時代は日本の記録文化にも大きな影響を与えました。歴史書の書き方・政治の進め方が変わっただけではなく、日本人の考え方も大きく変わりました。特に、高句麗の曇徴が紙と墨の作り方を教えてくれたので、様々な内容を書き記せるようになりました。それに、百済の<span style="color:#f29100">'''観勒'''</span>も'''暦の知識'''・天文地理学の知識を教えたので、何年に何が起きたのかを正確に記録出来るようになりました。
この他にも、法隆寺の獅子狩文様錦・金堂天蓋の忍冬唐草文様・藤ノ木古墳の副葬品とかを見ると、飛鳥文化の素晴らしさがよく分かります。
{| style="border:2px solid #C39EAB;width:100%" cellspacing="0"
! style="background: #C39EAB" |'''法隆寺再建について、様々な争いがあります。'''
|-
| style="padding:5px" |『日本書紀』によると、「法隆寺は670年に火事で全部燃えた。」と記されています。しかし、日本書紀の内容と法隆寺西院(金堂・五重塔)の建物に食い違いがありました。そのため、歴史学者も明治時代から「どうなのだろう?」と話し合いが続いていました。1939年、法隆寺中門の南東で若草伽藍跡が見つかります。ここから、若草伽藍跡が厩戸王の法隆寺(斑鳩寺)だとわかりました。この結果から、歴史学者が白鳳時代再建説を出すと、他の歴史学者も丸く収まるようになります。
|}
==白鳳文化==
[[ファイル:Yamada-dera_kairo_reconstruction.jpg|サムネイル|246x246px|山田寺 東回廊 再現]]
唐との交流は天武天皇と持統天皇の時代に一度途切れました。それでも、新羅と仲良く交流しました。それに、百済と高句麗が無くなっても、そこから数多くの渡来人が日本にやってくるようになりました。渡来人は、唐の文化と朝鮮半島の文化を日本に伝えました。その結果、様々な文化が混ざり、<span style="color:#f29100">'''白鳳文化'''</span>を作り出すきっかけになりました。
法隆寺の金堂・五重塔・中門・歩廊(回廊)・薬師寺の東塔は飛鳥時代の建築方法で天武天皇と持統天皇の時代に建て直されました。しかし、山田寺の回廊は建築当時の形で見つかり、日本で最も古い建物の遺跡としてかなり大切にされています。
{| style="border:2px solid #C39EAB;width:75%" cellspacing="0"
! style="background: #C39EAB" |'''山田寺回廊'''
|-
| style="padding:5px" |山田寺から、1400年前の廊下(東回廊)がそのまま見つかりました。また、柱・連子窓・束・腰長押・小脇壁・頭貫・斗拱間小壁・巻斗もそのままの形で見つかりました。さらに、赤い絵の具・白い塗料まで残っているので、当時の廊下がどんな色だったのかも分かりました。1400年前の廊下(東回廊)は法隆寺の廊下よりも丈夫でした。1400年前の廊下(東回廊)は法隆寺再建の事実を証明しました。なお、考古学者が丁寧に東回廊を修復して、奈良文化財研究所飛鳥資料館で見られるようになっています。
|}
薬師寺金堂の薬師三尊像は優しくて力強い雰囲気を感じます。薬師寺東院堂の聖観音像は仏像の中でも最も美しく感じます。興福寺仏頭(山田寺薬師三尊像本尊の頭部)はかなり若々しく、表情も生き生きとしているように感じます。この他、法隆寺の阿弥陀三尊像・夢違観音像も白鳳文化の作品として有名です。興福寺仏頭は1937年に興福寺東金堂の仏像に隠れて見つかりました。天武天皇が蘇我倉山田石川麻呂を弔うため、山田寺の仏像を作りました。1180年、興福寺の仏像は平重衡の影響で焼けてしまいました。そこで、山田寺の薬師三尊像を借りて、興福寺東金堂の仏像にしました。しかし、山田寺の薬師三尊像も落雷の影響でほとんど焼けてしまいました。
法隆寺金堂の壁画・高松塚古墳の壁画はかなり大切な日本の文化財です。特に、法隆寺金堂の壁画はアジャンター石窟群壁画(インド)・敦煌石窟壁画(中国)の影響を受けていて、とても素晴らしい作品でした。しかし、法隆寺金堂の壁画は火事でほとんど焼けてしまいました。この火災をきっかけに、文化財保護法が定められました。高松塚古墳の壁画もとても素晴らしい作品でした。しかし、高松塚古墳の壁画はかなり傷んでいたので、壁から剥がして保存されるようになりました。
{| style="border:2px solid #EA5419;width:100%" cellspacing="0"
! style="background: #EA5419" |'''高松塚古墳'''
|-
| style="padding:5px" |
|}
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
mlq090ec4lgwli2zfp7lmbggju9ovnk
263026
263025
2024-11-04T13:04:00Z
Kwawe
68789
/* 白鳳文化 */ 重要用語を黒太字化。
263026
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>飛鳥文化・白鳳文化
本節は、文化史を扱います。
== 飛鳥文化 ==
女性の推古天皇の時代が<span style="color:#f29100">'''飛鳥文化'''</span>の中心になります。仏教は、最初に外国人や有力な豪族(蘇我氏)の間だけで広まりました。やがて、「もっと仏教を広めていこう!」と民衆に伝えるようになると、仏教が飛鳥時代に日本で大きく広がりました。こうして、飛鳥文化は日本で初めての'''仏教文化'''として花開きました。
仏教は蘇我氏と厩戸王('''聖徳太子''')で日本に広めました。中でも、厩戸王(聖徳太子)は仏教の詳細を分かっており、仏教の解説書3冊(法華経・維摩経・勝鬘経)を自身で記しています['''三経義疏''']。
6世紀後半から、大王家・豪族が飛鳥にそれぞれ立派な屋敷(大王宮)を建てるようになりました。また、大王家・豪族は自分達の力の大きさを見せるために、それぞれ自分達の寺('''氏寺''')も建てるようになりました。こうして、飛鳥は都らしくなり、一族も深くまとまるようになりました。
例えば、蘇我馬子は'''飛鳥寺'''('''法興寺''')を建てました。飛鳥寺の土台から大切な品物が見つかりました。ここから、考古学者はこれまでの信仰を上手く組み合わせて仏教を民衆に伝わるようになったとされています。厩戸王も'''四天王寺'''・'''斑鳩寺'''('''法隆寺''')を建てました。それから、秦河勝は'''広隆寺'''を建てました。さらに、百済大寺は舒明天皇の時代に建てられました。百済大寺の塔は飛鳥寺・法隆寺の西院伽藍と比べても、かなり大きな寺院でした。考古学者は舒明天皇の力の大きさを見せつけるために、百済大寺を建てたとさせています。百済大寺は天皇初の寺院としてかなり重要な意味を持っています。このような感じで有名な寺院('''伽藍''')が飛鳥時代に数多く建てられています。なお、寺院(伽藍)は大きな石の上に太い柱を赤く塗り、瓦を屋根に載せて建てています。寺院(伽藍)の中心も時代とともに五重塔から本堂(金堂)に変わりました。
ところで、飛鳥時代は厩戸王(聖徳太子)・一部の渡来人を除いて仏教の詳細をあまり知りません。むしろ、民衆は僧侶に仏教を唱えると、厄除けや病気の治療につながると思い仏教を信じていました。
仏教は経典からではなく、寺院・仏像から広まりました。飛鳥時代の仏像は中国の北魏様式と南梁様式に分かれています。北魏様式の仏像と南梁様式の仏像は高句麗と百済から日本に伝わりました。
北魏様式の仏像は<span style="color:#f29100">'''鞍作鳥(止利仏師)'''</span>とその弟子達で作られました。北魏様式の場合、仏像の顔は左右均等・杏仁形の目・三日月形の口元になります。仏像の厳しい表情の中に少しはにかんでいるような雰囲気があり、とても不思議な感じがします。例えば、飛鳥寺の釈迦如来像・法隆寺金堂の<span style="color:#f29100">'''釈迦三尊像'''</span>(金銅像)・法隆寺夢殿の'''救世観音像'''(木像)などが北魏様式の有名な仏像となります。
中でも、法隆寺夢殿の救世観音像は厩戸王(聖徳太子)を参考に作られており、江戸時代まで大切に保管していました。明治時代を迎えると、アメリカの哲学者アーネスト・フェノロサが明治政府に「この仏像を見せて」とお願いします。明治政府は彼に「仏像を見てもいいですよ。」と伝えました。法隆寺の僧侶達は「祟りが怖い!」と思って逃げ出しました。しかし、法隆寺夢殿の救世観音像は大切に保管されていたので、今でも傷んでいません。
一方、法隆寺の'''百済観音像'''を見ていると何だか心も落ち着きます。法隆寺の百済観音像は日本で作られたと考えられています。法隆寺の百済観音像のように、南梁様式の仏像は顔の表情もかなり優しく、ふくよかな体型をしています。中宮寺と広隆寺の'''半跏思惟像'''はどちらも木製です。半跏思惟像はかなり優しい表情をしています。そして、半跏思惟像は片足を組んで、頬に手を当てて何かを考えているような姿をしています。なお、飛鳥文化の仏像は全てはにかんでいます(アルカイックスマイル・古拙の笑み)。
法隆寺の<span style="color:#f29100">'''玉虫厨子'''</span>は小さな仏像を入れるための木箱です。玉虫厨子の装飾に本物の玉虫の羽が使われています。1400年以上も前に作られたのに、玉虫の羽が今でも少し残っています。日本の絵画は高句麗の<span style="color:#f29100">'''曇徴'''</span>がかなり重要な役割を果たしています。610年、曇徴が紙の作り方・墨の作り方・絵の彩色方法を日本に伝えました。この技術から、法隆寺の玉虫厨子に須弥座絵扉絵(施身聞偈図・捨身飼虎図)・扉絵が描かれるようになりました。その中でも、母虎と子供の虎はお腹を空かせていたので、母虎と子供の虎を助けるために王子の体を差し出すような絵画(捨身飼虎図)はかなり心に響きます。中宮寺の'''天寿国繍帳'''も心に残ります。橘大郎女(厩戸王の嫁)が故人の厩戸王を忘れられず、「もう一度その姿を見たい。」と渡来人に伝えます。渡来人が橘大郎女の想いを受け入れて厩戸王の下絵を描き、宮廷の采女達にその下絵を刺繍させました。
各国(朝鮮・中国・西アジア・インド・ギリシア)の文化がこのような美術工芸品に詰まっています。忍冬唐草文様・ペガサス(天馬)を見ると、昔の人間がどこまで世界とつながっていたのか分かります。
飛鳥時代は日本の記録文化にも大きな影響を与えました。歴史書の書き方・政治の進め方が変わっただけではなく、日本人の考え方も大きく変わりました。特に、高句麗の曇徴が紙と墨の作り方を教えてくれたので、様々な内容を書き記せるようになりました。それに、百済の<span style="color:#f29100">'''観勒'''</span>も'''暦の知識'''・天文地理学の知識を教えたので、何年に何が起きたのかを正確に記録出来るようになりました。
この他にも、法隆寺の獅子狩文様錦・金堂天蓋の忍冬唐草文様・藤ノ木古墳の副葬品とかを見ると、飛鳥文化の素晴らしさがよく分かります。
{| style="border:2px solid #C39EAB;width:100%" cellspacing="0"
! style="background: #C39EAB" |'''法隆寺再建について、様々な争いがあります。'''
|-
| style="padding:5px" |『日本書紀』によると、「法隆寺は670年に火事で全部燃えた。」と記されています。しかし、日本書紀の内容と法隆寺西院(金堂・五重塔)の建物に食い違いがありました。そのため、歴史学者も明治時代から「どうなのだろう?」と話し合いが続いていました。1939年、法隆寺中門の南東で若草伽藍跡が見つかります。ここから、若草伽藍跡が厩戸王の法隆寺(斑鳩寺)だとわかりました。この結果から、歴史学者が白鳳時代再建説を出すと、他の歴史学者も丸く収まるようになります。
|}
==白鳳文化==
[[ファイル:Yamada-dera_kairo_reconstruction.jpg|サムネイル|246x246px|山田寺 東回廊 再現]]
唐との交流は天武天皇と持統天皇の時代に一度途切れました。それでも、新羅と仲良く交流しました。それに、百済と高句麗が無くなっても、そこから数多くの渡来人が日本にやってくるようになりました。渡来人は、唐の文化と朝鮮半島の文化を日本に伝えました。その結果、様々な文化が混ざり、<span style="color:#f29100">'''白鳳文化'''</span>を作り出すきっかけになりました。
'''法隆寺の金堂・五重塔'''・中門・歩廊(回廊)・'''薬師寺の東塔'''は飛鳥時代の建築方法で天武天皇と持統天皇の時代に建て直されました。しかし、'''山田寺の回廊'''は建築当時の形で見つかり、日本で最も古い建物の遺跡としてかなり大切にされています。
{| style="border:2px solid #C39EAB;width:75%" cellspacing="0"
! style="background: #C39EAB" |'''山田寺回廊'''
|-
| style="padding:5px" |山田寺から、1400年前の廊下(東回廊)がそのまま見つかりました。また、柱・連子窓・束・腰長押・小脇壁・頭貫・斗拱間小壁・巻斗もそのままの形で見つかりました。さらに、赤い絵の具・白い塗料まで残っているので、当時の廊下がどんな色だったのかも分かりました。1400年前の廊下(東回廊)は法隆寺の廊下よりも丈夫でした。1400年前の廊下(東回廊)は法隆寺再建の事実を証明しました。なお、考古学者が丁寧に東回廊を修復して、奈良文化財研究所飛鳥資料館で見られるようになっています。
|}
'''薬師寺金堂の薬師三尊像'''は優しくて力強い雰囲気を感じます。'''薬師寺東院堂の聖観音像'''は仏像の中でも最も美しく感じます。'''興福寺仏頭'''(山田寺薬師三尊像本尊の頭部)はかなり若々しく、表情も生き生きとしているように感じます。この他、法隆寺の阿弥陀三尊像・夢違観音像も白鳳文化の作品として有名です。興福寺仏頭は1937年に興福寺東金堂の仏像に隠れて見つかりました。天武天皇が蘇我倉山田石川麻呂を弔うため、山田寺の仏像を作りました。1180年、興福寺の仏像は平重衡の影響で焼けてしまいました。そこで、山田寺の薬師三尊像を借りて、興福寺東金堂の仏像にしました。しかし、山田寺の薬師三尊像も落雷の影響でほとんど焼けてしまいました。
'''法隆寺金堂'''の'''壁画'''・'''高松塚古墳'''の'''壁画'''はかなり大切な日本の文化財です。特に、法隆寺金堂の壁画はアジャンター石窟群壁画(インド)・敦煌石窟壁画(中国)の影響を受けていて、とても素晴らしい作品でした。しかし、法隆寺金堂の壁画は火事でほとんど焼けてしまいました。この火災をきっかけに、文化財保護法が定められました。高松塚古墳の壁画もとても素晴らしい作品でした。しかし、高松塚古墳の壁画はかなり傷んでいたので、壁から剥がして保存されるようになりました。
{| style="border:2px solid #EA5419;width:100%" cellspacing="0"
! style="background: #EA5419" |'''高松塚古墳'''
|-
| style="padding:5px" |
|}
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
evugfgui0nnixejxsr77hf6pz9lr2rk
263028
263026
2024-11-04T13:29:05Z
Kwawe
68789
/* 白鳳文化 */ 仏像の写真を追加。
263028
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>飛鳥文化・白鳳文化
本節は、文化史を扱います。
== 飛鳥文化 ==
女性の推古天皇の時代が<span style="color:#f29100">'''飛鳥文化'''</span>の中心になります。仏教は、最初に外国人や有力な豪族(蘇我氏)の間だけで広まりました。やがて、「もっと仏教を広めていこう!」と民衆に伝えるようになると、仏教が飛鳥時代に日本で大きく広がりました。こうして、飛鳥文化は日本で初めての'''仏教文化'''として花開きました。
仏教は蘇我氏と厩戸王('''聖徳太子''')で日本に広めました。中でも、厩戸王(聖徳太子)は仏教の詳細を分かっており、仏教の解説書3冊(法華経・維摩経・勝鬘経)を自身で記しています['''三経義疏''']。
6世紀後半から、大王家・豪族が飛鳥にそれぞれ立派な屋敷(大王宮)を建てるようになりました。また、大王家・豪族は自分達の力の大きさを見せるために、それぞれ自分達の寺('''氏寺''')も建てるようになりました。こうして、飛鳥は都らしくなり、一族も深くまとまるようになりました。
例えば、蘇我馬子は'''飛鳥寺'''('''法興寺''')を建てました。飛鳥寺の土台から大切な品物が見つかりました。ここから、考古学者はこれまでの信仰を上手く組み合わせて仏教を民衆に伝わるようになったとされています。厩戸王も'''四天王寺'''・'''斑鳩寺'''('''法隆寺''')を建てました。それから、秦河勝は'''広隆寺'''を建てました。さらに、百済大寺は舒明天皇の時代に建てられました。百済大寺の塔は飛鳥寺・法隆寺の西院伽藍と比べても、かなり大きな寺院でした。考古学者は舒明天皇の力の大きさを見せつけるために、百済大寺を建てたとさせています。百済大寺は天皇初の寺院としてかなり重要な意味を持っています。このような感じで有名な寺院('''伽藍''')が飛鳥時代に数多く建てられています。なお、寺院(伽藍)は大きな石の上に太い柱を赤く塗り、瓦を屋根に載せて建てています。寺院(伽藍)の中心も時代とともに五重塔から本堂(金堂)に変わりました。
ところで、飛鳥時代は厩戸王(聖徳太子)・一部の渡来人を除いて仏教の詳細をあまり知りません。むしろ、民衆は僧侶に仏教を唱えると、厄除けや病気の治療につながると思い仏教を信じていました。
仏教は経典からではなく、寺院・仏像から広まりました。飛鳥時代の仏像は中国の北魏様式と南梁様式に分かれています。北魏様式の仏像と南梁様式の仏像は高句麗と百済から日本に伝わりました。
北魏様式の仏像は<span style="color:#f29100">'''鞍作鳥(止利仏師)'''</span>とその弟子達で作られました。北魏様式の場合、仏像の顔は左右均等・杏仁形の目・三日月形の口元になります。仏像の厳しい表情の中に少しはにかんでいるような雰囲気があり、とても不思議な感じがします。例えば、飛鳥寺の釈迦如来像・法隆寺金堂の<span style="color:#f29100">'''釈迦三尊像'''</span>(金銅像)・法隆寺夢殿の'''救世観音像'''(木像)などが北魏様式の有名な仏像となります。
中でも、法隆寺夢殿の救世観音像は厩戸王(聖徳太子)を参考に作られており、江戸時代まで大切に保管していました。明治時代を迎えると、アメリカの哲学者アーネスト・フェノロサが明治政府に「この仏像を見せて」とお願いします。明治政府は彼に「仏像を見てもいいですよ。」と伝えました。法隆寺の僧侶達は「祟りが怖い!」と思って逃げ出しました。しかし、法隆寺夢殿の救世観音像は大切に保管されていたので、今でも傷んでいません。
一方、法隆寺の'''百済観音像'''を見ていると何だか心も落ち着きます。法隆寺の百済観音像は日本で作られたと考えられています。法隆寺の百済観音像のように、南梁様式の仏像は顔の表情もかなり優しく、ふくよかな体型をしています。中宮寺と広隆寺の'''半跏思惟像'''はどちらも木製です。半跏思惟像はかなり優しい表情をしています。そして、半跏思惟像は片足を組んで、頬に手を当てて何かを考えているような姿をしています。なお、飛鳥文化の仏像は全てはにかんでいます(アルカイックスマイル・古拙の笑み)。
法隆寺の<span style="color:#f29100">'''玉虫厨子'''</span>は小さな仏像を入れるための木箱です。玉虫厨子の装飾に本物の玉虫の羽が使われています。1400年以上も前に作られたのに、玉虫の羽が今でも少し残っています。日本の絵画は高句麗の<span style="color:#f29100">'''曇徴'''</span>がかなり重要な役割を果たしています。610年、曇徴が紙の作り方・墨の作り方・絵の彩色方法を日本に伝えました。この技術から、法隆寺の玉虫厨子に須弥座絵扉絵(施身聞偈図・捨身飼虎図)・扉絵が描かれるようになりました。その中でも、母虎と子供の虎はお腹を空かせていたので、母虎と子供の虎を助けるために王子の体を差し出すような絵画(捨身飼虎図)はかなり心に響きます。中宮寺の'''天寿国繍帳'''も心に残ります。橘大郎女(厩戸王の嫁)が故人の厩戸王を忘れられず、「もう一度その姿を見たい。」と渡来人に伝えます。渡来人が橘大郎女の想いを受け入れて厩戸王の下絵を描き、宮廷の采女達にその下絵を刺繍させました。
各国(朝鮮・中国・西アジア・インド・ギリシア)の文化がこのような美術工芸品に詰まっています。忍冬唐草文様・ペガサス(天馬)を見ると、昔の人間がどこまで世界とつながっていたのか分かります。
飛鳥時代は日本の記録文化にも大きな影響を与えました。歴史書の書き方・政治の進め方が変わっただけではなく、日本人の考え方も大きく変わりました。特に、高句麗の曇徴が紙と墨の作り方を教えてくれたので、様々な内容を書き記せるようになりました。それに、百済の<span style="color:#f29100">'''観勒'''</span>も'''暦の知識'''・天文地理学の知識を教えたので、何年に何が起きたのかを正確に記録出来るようになりました。
この他にも、法隆寺の獅子狩文様錦・金堂天蓋の忍冬唐草文様・藤ノ木古墳の副葬品とかを見ると、飛鳥文化の素晴らしさがよく分かります。
{| style="border:2px solid #C39EAB;width:100%" cellspacing="0"
! style="background: #C39EAB" |'''法隆寺再建について、様々な争いがあります。'''
|-
| style="padding:5px" |『日本書紀』によると、「法隆寺は670年に火事で全部燃えた。」と記されています。しかし、日本書紀の内容と法隆寺西院(金堂・五重塔)の建物に食い違いがありました。そのため、歴史学者も明治時代から「どうなのだろう?」と話し合いが続いていました。1939年、法隆寺中門の南東で若草伽藍跡が見つかります。ここから、若草伽藍跡が厩戸王の法隆寺(斑鳩寺)だとわかりました。この結果から、歴史学者が白鳳時代再建説を出すと、他の歴史学者も丸く収まるようになります。
|}
==白鳳文化==
[[ファイル:Yamada-dera_kairo_reconstruction.jpg|サムネイル|246x246px|山田寺 東回廊 再現]]
唐との交流は天武天皇と持統天皇の時代に一度途切れました。それでも、新羅と仲良く交流しました。それに、百済と高句麗が無くなっても、そこから数多くの渡来人が日本にやってくるようになりました。渡来人は、唐の文化と朝鮮半島の文化を日本に伝えました。その結果、様々な文化が混ざり、<span style="color:#f29100">'''白鳳文化'''</span>を作り出すきっかけになりました。
'''法隆寺の金堂・五重塔'''・中門・歩廊(回廊)・'''薬師寺の東塔'''は飛鳥時代の建築方法で天武天皇と持統天皇の時代に建て直されました。しかし、'''山田寺の回廊'''は建築当時の形で見つかり、日本で最も古い建物の遺跡としてかなり大切にされています。
{| style="border:2px solid #C39EAB;width:75%" cellspacing="0"
! style="background: #C39EAB" |'''山田寺回廊'''
|-
| style="padding:5px" |山田寺から、1400年前の廊下(東回廊)がそのまま見つかりました。また、柱・連子窓・束・腰長押・小脇壁・頭貫・斗拱間小壁・巻斗もそのままの形で見つかりました。さらに、赤い絵の具・白い塗料まで残っているので、当時の廊下がどんな色だったのかも分かりました。1400年前の廊下(東回廊)は法隆寺の廊下よりも丈夫でした。1400年前の廊下(東回廊)は法隆寺再建の事実を証明しました。なお、考古学者が丁寧に東回廊を修復して、奈良文化財研究所飛鳥資料館で見られるようになっています。
|}
'''薬師寺金堂の薬師三尊像'''は優しくて力強い雰囲気を感じます。'''薬師寺東院堂の聖観音像'''は仏像の中でも最も美しく感じます。'''興福寺仏頭'''(山田寺薬師三尊像本尊の頭部)はかなり若々しく、表情も生き生きとしているように感じます。この他、法隆寺の阿弥陀三尊像・夢違観音像も白鳳文化の作品として有名です。興福寺仏頭は1937年に興福寺東金堂の仏像に隠れて見つかりました。天武天皇が蘇我倉山田石川麻呂を弔うため、山田寺の仏像を作りました。1180年、興福寺の仏像は平重衡の影響で焼けてしまいました。そこで、山田寺の薬師三尊像を借りて、興福寺東金堂の仏像にしました。しかし、山田寺の薬師三尊像も落雷の影響でほとんど焼けてしまいました。<gallery mode="nolines" widths="280" heights="280">
ファイル:Triad of Yakushi Nyorai.JPG|薬師寺金堂薬師三尊像
ファイル:Sho Kannon Yakushiji.JPG|薬師寺東院堂聖観音像
ファイル:Buddha Head Yamadadera.JPG|興福寺仏頭
</gallery>'''法隆寺金堂'''の'''壁画'''・'''高松塚古墳'''の'''壁画'''はかなり大切な日本の文化財です。特に、法隆寺金堂の壁画はアジャンター石窟群壁画(インド)・敦煌石窟壁画(中国)の影響を受けていて、とても素晴らしい作品でした。しかし、法隆寺金堂の壁画は火事でほとんど焼けてしまいました。この火災をきっかけに、文化財保護法が定められました。高松塚古墳の壁画もとても素晴らしい作品でした。しかし、高松塚古墳の壁画はかなり傷んでいたので、壁から剥がして保存されるようになりました。
{| style="border:2px solid #EA5419;width:100%" cellspacing="0"
! style="background: #EA5419" |'''高松塚古墳'''
|-
| style="padding:5px" |
|}
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
rnz5syjjpas9f7ebrl2xm49fk5ytd4u
C++/型安全
0
43275
263089
2024-11-05T04:14:49Z
Ef3
694
C++は、型安全性を重視した設計がなされており、プログラミング中のエラーを減少させるためのさまざまな機能を提供しています。型安全性は、プログラムが正しい型のデータを使用していることを保証し、誤った操作や予期しない動作を防ぐために重要です。以下に、C++における型安全性に関連する主な機能と具体的なコード例を豊富に解説します。
263089
wikitext
text/x-wiki
== C++と型安全 ==
C++は、型安全性を重視した設計がなされており、プログラミング中のエラーを減少させるためのさまざまな機能を提供しています。型安全性は、プログラムが正しい型のデータを使用していることを保証し、誤った操作や予期しない動作を防ぐために重要です。以下に、C++における型安全性に関連する主な機能と具体的なコード例を豊富に解説します。
=== 静的型付け ===
C++は静的型付け言語であり、変数の型はコンパイル時に決定されます。これにより、型の不一致や誤ったデータ型の使用をコンパイル時に検出できます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int num = 10;
// num = "Hello"; // コンパイルエラー: 文字列は整数型に代入できません
std::cout << "Number: " << num << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>num</code>に文字列を代入しようとすると、コンパイルエラーが発生します。これが静的型付けの利点であり、エラーを早期に発見できます。
=== テンプレートと型推論 ===
C++では、テンプレートを使用して汎用的な関数やクラスを作成することができます。C++11以降、<code>auto</code>キーワードを使用した型推論が導入され、変数の型を自動的に推測させることが可能です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
template <typename T>
void printVector(const std::vector<T>& vec) {
for (const auto& element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
}
auto main() -> int {
std::vector<int> intVec = {1, 2, 3, 4, 5};
printVector(intVec);
std::vector<std::string> strVec = {"Hello", "World"};
printVector(strVec);
return 0;
}
</syntaxhighlight>
この例では、<code>printVector</code>関数がテンプレートとして定義されており、<code>auto</code>を使って要素の型を自動的に推論しています。これにより、さまざまな型のベクタを安全に処理できます。
=== スマートポインタ ===
C++11では、スマートポインタ(<code>std::unique_ptr</code>や<code>std::shared_ptr</code>)が導入されました。これにより、メモリ管理を自動化し、ポインタのライフサイクルを安全に管理します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
class Sample {
public:
Sample() { std::cout << "Sample created." << std::endl; }
~Sample() { std::cout << "Sample destroyed." << std::endl; }
};
auto main() -> int {
std::unique_ptr<Sample> ptr1 = std::make_unique<Sample>();
{
std::shared_ptr<Sample> ptr2 = std::make_shared<Sample>();
std::cout << "Inside inner block." << std::endl;
} // ptr2がスコープを抜けると自動的に破棄される
std::cout << "Back in main." << std::endl;
return 0;
}
</syntaxhighlight>
このコードでは、<code>std::unique_ptr</code>が使用され、オブジェクトのライフサイクルを自動的に管理しています。<code>std::shared_ptr</code>も同様に機能しますが、複数のポインタが同じオブジェクトを共有することを可能にします。
=== std::optional, std::variant, std::any ===
C++17では、型安全を高めるための新しいデータ型が追加されました。
* '''std::optional''':値が存在するかどうかを示す型で、NULLポインタの代わりに使用されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <optional>
std::optional<int> getValue(bool returnValue) {
if (returnValue) {
return 42; // 値が存在する場合
}
return std::nullopt; // 値が存在しない場合
}
auto main() -> int {
auto value = getValue(true);
if (value) {
std::cout << "Value: " << *value << std::endl;
} else {
std::cout << "No value found." << std::endl;
}
return 0;
}
</syntaxhighlight>
* '''std::variant''':異なる型のいずれかを保持できる型です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <variant>
using VarType = std::variant<int, std::string>;
void printValue(const VarType& value) {
std::visit([](auto&& arg) { std::cout << arg << std::endl; }, value);
}
auto main() -> int {
VarType val1 = 10;
VarType val2 = std::string("Hello");
printValue(val1);
printValue(val2);
return 0;
}
</syntaxhighlight>
* '''std::any''':任意の型の値を保持できる型ですが、型安全性を維持するためには使用する際に型を確認する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <any>
auto main() -> int {
std::any value = 10; // int型を保持
value = std::string("Hello"); // string型に変更
// 型を確認してから取り出す
if (value.type() == typeid(std::string)) {
std::cout << std::any_cast<std::string>(value) << std::endl;
}
return 0;
}
</syntaxhighlight>
=== コンセプト (C++20) ===
C++20で導入されたコンセプトは、テンプレートの型制約を明示的に指定できる機能です。これにより、特定の型を持つ引数だけを受け入れる関数やクラスを定義できます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <concepts>
template <typename T>
concept Addable = requires(T a, T b) {
{ a + b } -> std::same_as<T>;
};
template <Addable T>
T add(T a, T b) {
return a + b;
}
auto main() -> int {
std::cout << add(3, 4) << std::endl; // 正常
// std::cout << add(3.14, "Hello"); // コンパイルエラー: 文字列は加算できません
return 0;
}
</syntaxhighlight>
このコードでは、'''Addable'''というコンセプトを定義し、加算可能な型のみを受け入れる'''add'''関数を作成しています。
=== 型キャスト ===
C++では、型キャストに対していくつかの安全な方法が用意されています。特に、'''dynamic_cast'''はポインタや参照を安全にキャストするための機能です。
:<syntaxhighlight lang=c++>
#include <iostream>
class Base {
public:
virtual ~Base() = default; // 仮想デストラクタ
};
class Derived : public Base {};
auto main() -> int {
Base* basePtr = new Derived();
// dynamic_castを使用して安全にキャスト
if (Derived* derivedPtr = dynamic_cast<Derived*>(basePtr)) {
std::cout << "Derived cast successful!" << std::endl;
} else {
std::cout << "Cast failed." << std::endl;
}
delete basePtr;
return 0;
}
</syntaxhighlight>
=== 配列とポインタ ===
C++では、配列とポインタの扱いに注意が必要ですが、'''std::array'''や'''std::vector'''などのコンテナを使うことで、型安全を確保しやすくなります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <array>
auto main() -> int {
std::array<int, 5> arr = {1, 2, 3, 4, 5};
for (const auto& elem : arr) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
=== まとめ ===
C++は型安全性を高めるために、さまざまな機能を提供しています。これにより、開発者はより安全で信頼性の高いコードを書くことができ、実行時エラーを減少させることができます。型安全性を意識してプログラムを書くことは、C++の特性を最大限に活用するための重要な要素です
b2dpo6pb8y00y15kptvcenyn6q9btpv
263091
263089
2024-11-05T04:18:01Z
Ef3
694
{{Nav}}
263091
wikitext
text/x-wiki
{{Nav}}
== C++と型安全 ==
C++は、型安全性を重視した設計がなされており、プログラミング中のエラーを減少させるためのさまざまな機能を提供しています。型安全性は、プログラムが正しい型のデータを使用していることを保証し、誤った操作や予期しない動作を防ぐために重要です。以下に、C++における型安全性に関連する主な機能と具体的なコード例を豊富に解説します。
=== 静的型付け ===
C++は静的型付け言語であり、変数の型はコンパイル時に決定されます。これにより、型の不一致や誤ったデータ型の使用をコンパイル時に検出できます。
:<syntaxhighlight lang=c++>
#include <iostream>
auto main() -> int {
int num = 10;
// num = "Hello"; // コンパイルエラー: 文字列は整数型に代入できません
std::cout << "Number: " << num << std::endl;
return 0;
}
</syntaxhighlight>
この例では、<code>num</code>に文字列を代入しようとすると、コンパイルエラーが発生します。これが静的型付けの利点であり、エラーを早期に発見できます。
=== テンプレートと型推論 ===
C++では、テンプレートを使用して汎用的な関数やクラスを作成することができます。C++11以降、<code>auto</code>キーワードを使用した型推論が導入され、変数の型を自動的に推測させることが可能です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <vector>
template <typename T>
void printVector(const std::vector<T>& vec) {
for (const auto& element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
}
auto main() -> int {
std::vector<int> intVec = {1, 2, 3, 4, 5};
printVector(intVec);
std::vector<std::string> strVec = {"Hello", "World"};
printVector(strVec);
return 0;
}
</syntaxhighlight>
この例では、<code>printVector</code>関数がテンプレートとして定義されており、<code>auto</code>を使って要素の型を自動的に推論しています。これにより、さまざまな型のベクタを安全に処理できます。
=== スマートポインタ ===
C++11では、スマートポインタ(<code>std::unique_ptr</code>や<code>std::shared_ptr</code>)が導入されました。これにより、メモリ管理を自動化し、ポインタのライフサイクルを安全に管理します。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <memory>
class Sample {
public:
Sample() { std::cout << "Sample created." << std::endl; }
~Sample() { std::cout << "Sample destroyed." << std::endl; }
};
auto main() -> int {
std::unique_ptr<Sample> ptr1 = std::make_unique<Sample>();
{
std::shared_ptr<Sample> ptr2 = std::make_shared<Sample>();
std::cout << "Inside inner block." << std::endl;
} // ptr2がスコープを抜けると自動的に破棄される
std::cout << "Back in main." << std::endl;
return 0;
}
</syntaxhighlight>
このコードでは、<code>std::unique_ptr</code>が使用され、オブジェクトのライフサイクルを自動的に管理しています。<code>std::shared_ptr</code>も同様に機能しますが、複数のポインタが同じオブジェクトを共有することを可能にします。
=== std::optional, std::variant, std::any ===
C++17では、型安全を高めるための新しいデータ型が追加されました。
* '''std::optional''':値が存在するかどうかを示す型で、NULLポインタの代わりに使用されます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <optional>
std::optional<int> getValue(bool returnValue) {
if (returnValue) {
return 42; // 値が存在する場合
}
return std::nullopt; // 値が存在しない場合
}
auto main() -> int {
auto value = getValue(true);
if (value) {
std::cout << "Value: " << *value << std::endl;
} else {
std::cout << "No value found." << std::endl;
}
return 0;
}
</syntaxhighlight>
* '''std::variant''':異なる型のいずれかを保持できる型です。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <variant>
using VarType = std::variant<int, std::string>;
void printValue(const VarType& value) {
std::visit([](auto&& arg) { std::cout << arg << std::endl; }, value);
}
auto main() -> int {
VarType val1 = 10;
VarType val2 = std::string("Hello");
printValue(val1);
printValue(val2);
return 0;
}
</syntaxhighlight>
* '''std::any''':任意の型の値を保持できる型ですが、型安全性を維持するためには使用する際に型を確認する必要があります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <any>
auto main() -> int {
std::any value = 10; // int型を保持
value = std::string("Hello"); // string型に変更
// 型を確認してから取り出す
if (value.type() == typeid(std::string)) {
std::cout << std::any_cast<std::string>(value) << std::endl;
}
return 0;
}
</syntaxhighlight>
=== コンセプト (C++20) ===
C++20で導入されたコンセプトは、テンプレートの型制約を明示的に指定できる機能です。これにより、特定の型を持つ引数だけを受け入れる関数やクラスを定義できます。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <concepts>
template <typename T>
concept Addable = requires(T a, T b) {
{ a + b } -> std::same_as<T>;
};
template <Addable T>
T add(T a, T b) {
return a + b;
}
auto main() -> int {
std::cout << add(3, 4) << std::endl; // 正常
// std::cout << add(3.14, "Hello"); // コンパイルエラー: 文字列は加算できません
return 0;
}
</syntaxhighlight>
このコードでは、'''Addable'''というコンセプトを定義し、加算可能な型のみを受け入れる'''add'''関数を作成しています。
=== 型キャスト ===
C++では、型キャストに対していくつかの安全な方法が用意されています。特に、'''dynamic_cast'''はポインタや参照を安全にキャストするための機能です。
:<syntaxhighlight lang=c++>
#include <iostream>
class Base {
public:
virtual ~Base() = default; // 仮想デストラクタ
};
class Derived : public Base {};
auto main() -> int {
Base* basePtr = new Derived();
// dynamic_castを使用して安全にキャスト
if (Derived* derivedPtr = dynamic_cast<Derived*>(basePtr)) {
std::cout << "Derived cast successful!" << std::endl;
} else {
std::cout << "Cast failed." << std::endl;
}
delete basePtr;
return 0;
}
</syntaxhighlight>
=== 配列とポインタ ===
C++では、配列とポインタの扱いに注意が必要ですが、'''std::array'''や'''std::vector'''などのコンテナを使うことで、型安全を確保しやすくなります。
:<syntaxhighlight lang=c++>
#include <iostream>
#include <array>
auto main() -> int {
std::array<int, 5> arr = {1, 2, 3, 4, 5};
for (const auto& elem : arr) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
</syntaxhighlight>
=== まとめ ===
C++は型安全性を高めるために、さまざまな機能を提供しています。これにより、開発者はより安全で信頼性の高いコードを書くことができ、実行時エラーを減少させることができます。型安全性を意識してプログラムを書くことは、C++の特性を最大限に活用するための重要な要素です
{{Nav}}
{{DEFAULTSORT:かたあんせん}}
[[Category:C++]]
9keyihvlmxds8vtk5ptfu115rgx39tv
C++/メモリ安全
0
43280
263095
2024-11-05T04:26:07Z
Ef3
694
C++は高性能なプログラミング言語であり、多くのシステムプログラミングやアプリケーション開発に使用されていますが、メモリ安全性に関する課題が存在します。メモリ安全性は、プログラムがメモリを不正にアクセスしたり、誤った方法で使用したりすることを防ぐ重要な概念です。本記事では、C++におけるメモリ安全性の課題、技術、そして対策について説明します。
263095
wikitext
text/x-wiki
{{Nav}}
== C++とメモリ安全 ==
C++は高性能なプログラミング言語であり、多くのシステムプログラミングやアプリケーション開発に使用されていますが、メモリ安全性に関する課題が存在します。メモリ安全性は、プログラムがメモリを不正にアクセスしたり、誤った方法で使用したりすることを防ぐ重要な概念です。本記事では、C++におけるメモリ安全性の課題、技術、そして対策について説明します。
=== メモリ安全性の課題 ===
C++はメモリ管理において、プログラマに大きな自由度を与えていますが、それに伴いいくつかの課題があります。
* '''ポインタの誤用''':ポインタを用いることで、メモリの動的割り当てや解放が可能ですが、誤って無効なポインタを参照することや、メモリリークが発生することがあります。
* '''バッファオーバーフロー''':配列やバッファに対する範囲外のアクセスは、メモリの破壊やセキュリティホールを引き起こす可能性があります。
* '''ダングリングポインタ''':解放されたメモリを参照するポインタは、未定義の動作を引き起こすことがあります。
=== メモリ管理のテクニック ===
C++では、メモリ安全性を向上させるためのいくつかのテクニックがあります。
* '''スマートポインタ''':<code>std::unique_ptr</code>や<code>std::shared_ptr</code>などのスマートポインタを使用することで、メモリ管理を自動化し、メモリリークやダングリングポインタのリスクを減少させます。
:<syntaxhighlight lang=cpp>
#include <memory>
void example() {
std::unique_ptr<int> ptr = std::make_unique<int>(42); // メモリ管理を自動化
// ptrのスコープが終了すると、自動的にメモリが解放される
}
</syntaxhighlight>
{{Nav}}
{{DEFAULTSORT:めもりあんせん}}
[[Category:C++]]
l6w7rd0s3ty82pvng1481udd59c4oy2
263099
263095
2024-11-05T04:30:10Z
Ef3
694
加筆
263099
wikitext
text/x-wiki
{{Nav}}
== C++とメモリ安全 ==
C++は高性能なプログラミング言語であり、多くのシステムプログラミングやアプリケーション開発に使用されていますが、メモリ安全性に関する課題が存在します。メモリ安全性は、プログラムがメモリを不正にアクセスしたり、誤った方法で使用したりすることを防ぐ重要な概念です。本記事では、C++におけるメモリ安全性の課題、技術、そして対策について説明します。
=== メモリ安全性の課題 ===
C++はメモリ管理において、プログラマに大きな自由度を与えていますが、それに伴いいくつかの課題があります。
* '''ポインタの誤用''':ポインタを用いることで、メモリの動的割り当てや解放が可能ですが、誤って無効なポインタを参照することや、メモリリークが発生することがあります。
* '''バッファオーバーフロー''':配列やバッファに対する範囲外のアクセスは、メモリの破壊やセキュリティホールを引き起こす可能性があります。
* '''ダングリングポインタ''':解放されたメモリを参照するポインタは、未定義の動作を引き起こすことがあります。
=== メモリ管理のテクニック ===
C++では、メモリ安全性を向上させるためのいくつかのテクニックがあります。
* '''スマートポインタ''':<code>std::unique_ptr</code>や<code>std::shared_ptr</code>などのスマートポインタを使用することで、メモリ管理を自動化し、メモリリークやダングリングポインタのリスクを減少させます。
:<syntaxhighlight lang=cpp>
#include <memory>
void example() {
std::unique_ptr<int> ptr = std::make_unique<int>(42); // メモリ管理を自動化
// ptrのスコープが終了すると、自動的にメモリが解放される
}
</syntaxhighlight>
* '''範囲チェック''':標準ライブラリのコンテナ(例:<code>std::vector</code>)を使用することで、範囲外アクセスを防止することができます。
:<syntaxhighlight lang=cpp>
#include <vector>
#include <iostream>
void example() {
std::vector<int> vec = {1, 2, 3};
std::cout << vec.at(2) << std::endl; // 範囲チェックあり
// vec.at(3); // 例外をスローする
}
</syntaxhighlight>
=== C++20以降の改善 ===
C++20では、さらにメモリ安全性を向上させるための機能が追加されました。
* '''コンセプト''':コンセプトを使用することで、テンプレート引数に対する制約を明確にし、型の不一致を防ぐことができます。
* '''コルーチン''':コルーチンを利用することで、非同期プログラミングの記述が容易になり、メモリの扱いが明確になります。
=== 結論 ===
C++は強力な言語である一方、メモリ安全性に関する課題が存在します。スマートポインタや範囲チェック、C++20以降の新機能を活用することで、メモリ安全性を向上させることが可能です。プログラマは、これらのテクニックを適切に利用し、より安全なC++プログラムを作成することが求められます。
{{Nav}}
{{DEFAULTSORT:めもりあんせん}}
[[Category:C++]]
gjg69u621e6kvlidybnc1w4i44922zp
C++/NULL安全
0
43286
263103
2024-11-05T04:35:03Z
Ef3
694
C++におけるNULL安全は、プログラムがヌルポインタを不正に参照することを防ぎ、安定性や信頼性を向上させるための重要な概念です。ヌルポインタは、無効なメモリアドレスを指し示し、アクセスすると未定義の動作を引き起こす可能性があります。本記事では、C++におけるNULL安全の重要性、課題、および対策について説明します。
263103
wikitext
text/x-wiki
{{Nav}}
== C++とNULL安全 ==
C++におけるNULL安全は、プログラムがヌルポインタを不正に参照することを防ぎ、安定性や信頼性を向上させるための重要な概念です。ヌルポインタは、無効なメモリアドレスを指し示し、アクセスすると未定義の動作を引き起こす可能性があります。本記事では、C++におけるNULL安全の重要性、課題、および対策について説明します。
=== NULL安全の重要性 ===
ヌルポインタ参照によるエラーは、ソフトウェアのクラッシュやセキュリティの脆弱性を引き起こす可能性があります。特に以下のような問題が発生することがあります:
* '''未定義の動作''':ヌルポインタをデリファレンスすると、プログラムの動作が不安定になります。
* '''セキュリティリスク''':攻撃者がヌルポインタ参照を利用して、システムの脆弱性を悪用する可能性があります。
=== NULL安全の課題 ===
C++はポインタによるメモリ管理を重視しており、ヌルポインタの使用を避けるための特別な構文はありません。そのため、プログラマが注意深くコードを記述する必要があります。
* '''手動によるNULLチェック''':ポインタを使用する際は、常にヌルチェックを行う必要があります。
:<syntaxhighlight lang=cpp>
void process(int* ptr) {
if (ptr != nullptr) {
// ptrがヌルでない場合の処理
} else {
// ptrがヌルの場合の処理
}
}
</syntaxhighlight>
=== NULL安全のための対策 ===
C++では、NULL安全を向上させるためのいくつかのテクニックがあります。
* '''スマートポインタの使用''':<code>std::unique_ptr</code>や<code>std::shared_ptr</code>を使用することで、ヌルポインタのリスクを低減し、メモリ管理を自動化できます。
:<syntaxhighlight lang=cpp>
#include <memory>
void example() {
std::unique_ptr<int> ptr = std::make_unique<int>(42); // nullptrを避ける
// ptrが有効な場合のみアクセス可能
}
</syntaxhighlight>
* '''オプショナル型の利用''':C++17以降、<code>std::optional</code>を使用することで、値の存在を明示的に管理できます。
:<syntaxhighlight lang=cpp>
#include <optional>
#include <iostream>
void process(std::optional<int> opt) {
if (opt.has_value()) {
std::cout << "Value: " << opt.value() << std::endl; // ヌルチェックが不要
} else {
std::cout << "No value provided." << std::endl;
}
}
</syntaxhighlight>
; まとめ
C++におけるNULL安全は、プログラムの信頼性を向上させるための重要な要素です。手動によるNULLチェックやスマートポインタ、<code>std::optional</code>の活用により、ヌルポインタによるエラーを防ぐことができます。プログラマは、これらのテクニックを適切に使用し、より安全なC++プログラムを作成することが求められます。
{{Nav}}
{{DEFAULTSORT:NULLあんせん}}
[[Category:C++]]
muwde6k70hmhlt3pcckrd6jz1p99mvw