Nintendo MessageStudio ヘルプ

# メッセージテキストファイル （.mstxt）のXML仕様

## ルート要素およびルート直下に展開される要素の一覧

MessageStudioText(Root Element)

TextRow

LanguageCell

CommentCell

AttributeCell

ExtraCell

## MessageStudioText 要素 ( Root Element )

### 宣言

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <MessageStudioText Format="1.2" xmlns="nintendo:msgstudio">
    	...
    </MessageStudioText>

### 説明

MessageStudioText要素は、メッセージテキストファイルのルート要素となります。 この要素は以下の属性を持ちます。また子要素としてTextRow要素を持ちます。

属性名 | 説明
--- | ---
xmlns | XML名前空間です。 この値は常に nintendo:msgstudio となります。
Format | メッセージテキストファイルのフォーマットバージョンです。 このフォーマットバージョンは、メッセージテキストファイルのフォーマットバージョンであり、 Message Studio本体のバージョンとは異なることに注意して下さい。 現在のバージョンは1.2です。

## TextRow 要素

### 宣言

    <TextRow Label="MyText"
    	Style="MyStyle"
    	Category="381EEEB1-2B01-4b48-AB47-A32FB9B172E0">
    	...
    </TextRow>

### 説明

TextRow要素は、Message Studioのメッセージグリッド1行（1テキスト）分のデータを持ちます。 この要素は以下の属性および要素を持ちます。

属性名 | 説明
--- | ---
Label | テキスト（テキスト行）を一意に判別するための名前です。
Category | テキストの種類を示します。 この部分は、外部のプラグインによって拡張が可能な部分です。 利用するプラグインを識別するために、XML属性「Category」には、プラグインのGUIDが書き込まれます。 Messaeg Studioが提供する基本機能の、GUID値は以下のとおりです。 BD926301-75EE-44ce-B96E-8F26EE289788 通常のテキストのGUID値です。 通常のテキスト状態の場合に限り、XML属性「Category」は表記を省略することが可能です。 381EEEB1-2B01-4b48-AB47-A32FB9B172E0 未使用のテキストです。 AE0E0905-E6CF-44be-8AB1-508E5F158DEF テクスチャに書き込む形で使用されるテキストです。 68A54FCA-5809-4bdf-970D-8976D35CB10B 外部リソースとしてではなく、プログラムに直接埋め込まれるテキストです。 例えばDVDからリソースを読み込むことができない場合に表示するエラーメッセージ などに使用されます。
Style | テキストに適用されるスタイル設定です。この値はプロジェクトファイルの StyleClass に設定されているスタイルであるべきですが、 存在を保証するものではありません。

以下の要素はこの順番であらわれます。

要素名 | 説明
--- | ---
LanguageCell | LanguageCell要素を参照。
CommentCell | CommentCell要素を参照。
AttributeCell | AttributeCell要素を参照。
ExtraCell | ExtraCell要素を参照。

## LanguageCell 要素

### 宣言

    <LanguageCell Language="US_English">
    	<Text>Hello, Message Studio.</Text>
    	<TextModifiedBy
    		User="userA:USERA-PC"
    		Time="2009-09-01T01:48:52" />
    	<Status>Editing</Status>
    	<StatusModifiedBy
    		User="userA:USERA-PC"
    		Time="2009-09-10T01:48:51" />
    	<Review>ReviewConfirmed</Review>
    	<ReviewModifiedBy
    		User="userB:USERB-PC"
    		Time="2009-09-12T02:43:11" />
    	<CompletedAt>2009-09-10T01:48:51</CompletedAt>
    	<ReviewedAt>2009-09-12T02:43:11</ReviewedAt>
    	<TextHistory>
    		<OldText>Hello, this is Message Studio.</OldText>
    		<OldTextModifiedBy
    			User="userA:USERA-PC"
    			Time="2009-08-31T01:48:52" />
    	</TextHistory>
    	<TextHistory>
    		<OldText>test test test</OldText>
    		<OldTextModifiedBy
    			User="userA:USERA-PC"
    			Time="2009-08-30T01:48:52" />
    	</TextHistory>
    </LanguageCell>

### 説明

LanguageCell要素は、1テキスト（TextRow要素）内の、 言語1つ分のテキスト情報を持ちます。 この要素は以下の属性および要素を持ちます。

属性名 | 説明
--- | ---
Language | この属性には言語名が入ります。 プロジェクト設定に存在する言語名であるべきですが、 存在を保証するものではありません。

以下の要素はこの順番であらわれます。

要素名 | 説明
--- | ---
Text | テキスト内容（メッセージ）です。 詳しくは詳細をご覧下さい。
TextModifiedBy | テキスト内容（Text要素）の更新者情報です。以下の属性を持ちます。
属性名 | 説明
--- | ---
User | 更新者名です。 ユーザ名:コンピュータ名 という形で示されます
Time | 更新日時です。 ISO8601形式のUTC（Universal Time, Coordinated）で表されます。
Status | 翻訳ステータスです。 この値は以下のいずれかである必要があります。 NotYet 未着手です。まだ一度も編集されていません。 この値は実際に使用可能ですが、原則として この値になるような場合はそもそもLanguageCell要素自体を 記述しません。つまり、値としてNotYetが使用されることは 原則ありません。 Editing 編集中です。 Completed 編集が完了しています。
StatusModifiedBy | ステータス（Status要素）の更新者情報です。 TextModifiedBy要素と同じ属性を持ちます。
Review | レビュー状態です。 この要素は、レビュー機能でない、または1度もレビュー申請が出されて いない場合は記述されません。 NotYet まだレビュー申請もされていません。 この値は実際に使用可能ですが、原則として この値になるような場合はそもそもReview要素自体を 記述しません。つまり、値としてNotYetが現れることは 原則ありません。 ReviewRequested レビュー申請中です。 ReviewRejected レビューした結果、却下されました。 ReviewConfirmed レビューした結果、承認されました。
ReviewModifiedBy | レビュー状態（Review要素）の更新者情報です。 Review要素が記述される場合にこの要素も記述されます。 TextModifiedBy要素と同じ属性を持ちます。
CompletedAt | 以前にStatus要素の値がCompletedになった日時です。 Status要素が一度もCompletedになったことがない場合は記述されません。 この値は、Status要素の値が一度Completedになってから、再びEditingになった場合などに Message Studioがその状況を知るために利用されます。
ReviewedAt | 以前にReview要素の値がReviewConfirmedになった日時です。 Review要素が一度もReviewConfirmedになったことがない場合は記述されません。 この値は、Review要素の値が一度ReviewConfirmedになってから、再びReviewRequestedになった場合などに Message Studioがその状況を知るために利用されます。
TextHistory | この要素はフォーマットVer1.2以降で利用可能です。 ユーザーが「再編集」を行うたびに自動的に作成される要素で、 これを参照することで、翻訳者は何が変わったのかを サーバに問い合わせることなくスムーズに表示することが出来ます。 この要素はLanguageCell要素の中に複数個出現させることが出来ます。 まだ再編集が行われていない場合、この要素は出現しません。

### 詳細

Text要素の内容は、Message Studioでのソース文字列形式で記述されています。 Message Studioでは、この形式のテキストをパース（構文解析）して取り込みます。 詳しい文法については、ソース文字列に ついての解説をご覧ください。

### Message Studioでのセルステータスについて

LanguageCell要素は、自身のセルのステータスのみを保持しています。 しかし、実際には、Message Studio上では「翻訳依頼中」など、Status要素 に記述される値以外にもステータスが存在します
Message Studioでは、メッセージテキストファイルが開かれたときに、言語ツリー に従って親子関係を確認しながらセルのステータスを決定します。 詳しくは言語セルステータスを参照して下さい。
以下は親子関係にある2つの言語セルの状態によって、子のセルがどのようなステータスになるかを示した例です。

Parent Status | Child Status | Time Stamp | Child Status in the Grid
--- | --- | --- | ---
Completed | NotYet |  | Translation Required
Completed | Editing |  | Translation Required
Completed | Completed | Parent < Child | Completed
Editing | Completed |  | Parent Editing
Completed | Completed | Child <= Parent | Translation Required Again

### 注意

LanguageCell要素は、プロジェクトファイルに設定されている言語全てに対して 記述されるわけではないことに注意して下さい。 メッセージグリッド上で空のセル（背景が白色）、つまりStatus要素がNotYetとなるような場合、 そもそもその言語に対応するLanguageCell要素自体が記述されません。

また、プロジェクトに設定されていない言語に対応するLanguageCell要素 を含むこともありません。 万が一そのようなLanguageCell要素が含まれていた場合、Message Studioでは これを無視します。

Message Studioでは、プロジェクトをチーム管理 したときのコンフリクトの発生を最小限に抑えるため、 LanguageCell要素を言語名（Language属性）によってソートされた順番で記述します。

## CommentCell要素

### 宣言

    <CommentCell Language="US_English">
    	<Comment>This is test comment.</Comment>
    	<CommentModifiedBy
    		User="user:USER-PC"
    		Time="2009-09-11T05:13:27" />
    </CommentCell>

### 説明

CommentCell要素は、1テキスト（TextRow要素）内の、 言語1つ分のコメント情報を持ちます。 この要素は以下の属性および要素を持ちます。

属性名 | 説明
--- | ---
Language | この属性には言語名が入ります。 プロジェクト設定に存在する言語名であるべきですが、 存在を保証するものではありません。

以下の要素はこの順番であらわれます。

要素名 | 説明
--- | ---
Comment | コメント内容です。
CommentModifiedBy | コメント（Comment要素）の更新者情報です。 TextModifiedBy要素と同じ属性を持ちます。

### 注意

LanguageCell要素と同じく、CommentCell要素は、プロジェクトファイルに設定されている言語 全てに対して記述されるわけではないことに注意して下さい。 コメントセルが空の言語に関してはCommentCell要素は記述されません。

また、プロジェクトに設定されていない言語に対応するCommentCell要素 を含むこともありません。 万が一そのようなCommentCell要素が含まれていた場合、Message Studioでは これを無視します。

Message Studioでは、プロジェクトをチーム管理 したときのコンフリクトの発生を最小限に抑えるため、 CommentCell要素を言語名（Language属性）によってソートされた順番で記述します。

## AttributeCell要素

### 宣言

    <AttributeCell Name="MyAttribute">
    	<Text>This is String Type attribute.</Text>
    	<TextModifiedBy
    		User="user:USER-PC"
    		Time="2009-09-11T05:13:27" />
    </AttributeCell>

### 説明

CommentCell要素は、1テキスト（TextRow要素）内の、 言語1つ分のコメント情報を持ちます。 この要素は以下の属性および要素を持ちます。

属性名 | 説明
--- | ---
Name | 属性の名前です。

以下の要素はこの順番であらわれます。

要素名 | 説明
--- | ---
Text | 設定されている値です。
TextModifiedBy | 属性値の更新者情報です。 TextModifiedBy要素と同じ属性を持ちます。

### 注意

AttributeCell要素は、プロジェクトファイルに設定されている属性全てに対して 記述されるわけではないことに注意して下さい。 設定されている値がデフォルト値である 属性についてはAttributeCell要素は記述されません。

## ExtraCell要素

### 宣言

    <ExtraCell DataHolder="EABC1FB1-D8A2-4869-BB83-8C0ABD1CA33D">
    	<CellData>data</CellData>
    	<CellModifiedBy
    		User="user:USER-PC"
    		Time="2009-09-11T05:13:27" />
    </ExtraCell>

### 説明

ExtraCell要素は、追加メッセージカラムプラグイン によって追加できる、任意のデータを持ちます。 この要素は以下の属性および要素を持ちます。

属性名 | 説明
--- | ---
DataHolder | 追加メッセージカラムプラグインを識別するためのGUIDです。 すべてのプラグインは各々に割り当てられたGUIDで一意に 識別されます。

以下の要素はこの順番であらわれます。

要素名 | 説明
--- | ---
CellData | 設定されている値です。 任意のデータを文字列として保持します。
CellModifiedBy | このセルの更新者情報です。 TextModifiedBy要素と同じ属性を持ちます。

- はじめに
- Message Studioの基礎
  - ゲーム製作のフロー
  - プロジェクトファイルについて
  - プロジェクトエクスプローラの操作
  - ウインドウ操作
  - 言語設定
  - カラーの設定
  - 属性の設定
- メッセージ編集
  - 基本操作
  - テキストの種類
  - クリップボードを利用した操作
  - 言語セルステータス
  - 表示のカスタマイズ
  - メッセージ一覧画面のTips
- タグ
  - 概要
  - タグを用いた編集
  - タグのソース文字列
  - タグ比較について
- 検索機能
  - 概要
  - 簡易検索
  - 詳細検索
  - 正規表現
- スペルチェック
  - スペルチェックについて
  - スペルチェックの利用方法
- ロールとパーミッション
  - 概要
  - ロールの追加とパーミッションの設定
  - ロールの選択
- メッセージの統計情報
  - 統計情報について
  - 統計情報の利用方法
- スタイル機能と幅計算
  - スタイルと幅計算について
  - テキスト幅の全体チェック
  - レンダリング方式について
  - スタイルの設定方法
- フォント
  - フォント機能の概要
  - フォントに関するワークフローについて
  - フォントの設定
- チーム管理機能
  - 概要
  - ファイル管理のされ方
  - チーム管理機能を利用する
  - 基本操作
  - コミットログを表示する
  - 差分(diff)を表示する
  - 競合とマージ
  - プロキシサーバの設定
  - サーバーの設定
- メタ情報の設定
  - メタ情報の設定について
  - 設定可能なメタ情報一覧
- リソースファイル関連
  - リソースについての概要
  - リソースファイルを出力する
  - 出力設定を行う
  - ビルドイベントについて
  - 共通のバイナリフォーマット
  - メッセージバイナリフォーマット
  - フローチャートバイナリフォーマット
  - プロジェクトバイナリフォーマット
    - プロジェクトバイナリフォーマット
    - カラー情報
    - コンテンツ情報
    - 属性情報
    - タグ情報
    - スタイル情報
  - タグについて
- マクロ文字列展開機能
  - マクロ文字列とは
  - 利用可能なマクロ一覧
- コマンドライン関連
  - コマンドライン制御について
  - /convertスイッチについて
- プラグインについて
  - プラグインの概要
  - プラグインの種類について
- プラグインの作成方法
  - 単純なプラグイン作成チュートリアル
  - 開発環境を利用しない作成方法
  - サンプルについて
- Message Studioのアセンブリ設定
  - Caspol：アセンブリセキュリティ設定
  - Ngen：ネイティブイメージ生成
- XML仕様
  - 概要
  - プロジェクトファイル（.msproj）のXML仕様
  - メッセージファイル（.mstxt）のXML仕様
- libmsについて
  - 概要
  - コンパイルの仕方
- 共通の関数
  - LMS_SetMemFuncs
- メッセージに関する関数
  - LMS_InitMessage
  - LMS_CloseMessage
  - LMS_SearchMessageBlockByName
  - LMS_GetMessageBlockInfoByName
  - LMS_GetTextNum
  - LMS_GetTextIndexByLabel
  - LMS_GetText
  - LMS_GetTextSize
  - LMS_GetTextByLabel
  - LMS_GetLabelByTextIndex
  - LMS_GetTextStyle
  - LMS_GetTextStyleByLabel
  - LMS_GetAttributeSize
  - LMS_GetAttribute
  - LMS_GetAttributeText
- フローチャートに関する関数
  - LMS_InitFlowchart
  - LMS_CloseFlowchart
  - LMS_GetNodeNum
  - LMS_GetEntryNodeIndex
  - LMS_GetNodeDataPtr
  - LMS_GetFlowNodeIndex
  - LMS_GetCaseIndexesFromBranchNode
  - LMS_GetFlowParamText
- プロジェクトに関する関数
  - LMS_InitProject
  - LMS_CloseProject
  - LMS_SearchProjectBlockByName
  - カラー情報に関する関数
    - LMS_GetColorIndexByName
    - LMS_GetColor
    - LMS_GetColorByName
    - LMS_GetColorNum
  - コンテンツ情報に関する関数
    - LMS_GetContentsNum
    - LMS_GetContentPath
  - 属性情報に関する関数
    - LMS_GetAttrInfoIndexByName
    - LMS_GetAttrType
    - LMS_GetAttrTypeByName
    - LMS_GetAttrOffset
    - LMS_GetAttrOffsetByName
    - LMS_GetAttrListItemName
    - LMS_GetAttrListItemNameByName
    - LMS_GetAttrNum
    - LMS_GetAttrListItemNum
  - タグ情報に関する関数
    - LMS_GetTagGroupName
    - LMS_GetTagName
    - LMS_GetTagParamName
    - LMS_GetTagParamType
    - LMS_GetTagListItemName
    - LMS_GetTagGroupNum
    - LMS_GetTagNum
    - LMS_GetTagParamNum
    - LMS_GetTagListItemNum
  - スタイル情報に関する関数
    - LMS_GetStyleIndexByName
    - LMS_GetRegionWidth
    - LMS_GetRegionWidthByName
    - LMS_GetLineNum
    - LMS_GetLineNumByName
    - LMS_GetFontIndex
    - LMS_GetFontIndexByName
    - LMS_GetStyleNum
- 扱うファイルの拡張子一覧
- よくある質問