--- a/hedgewars/uGearsUtils.pas Sat Oct 13 00:43:04 2018 +0300
+++ b/hedgewars/uGearsUtils.pas Sun Oct 14 09:43:42 2018 -0400
@@ -1054,56 +1054,58 @@
end
end;
-function CheckGearNear(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt): PGear;
-var t: PGear;
- width: hwFloat;
+function CheckGearNearImpl(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt, exclude: PGear): PGear;
+begin
+ var t: PGear;
+ width, dX, dY: hwFloat;
+ bound: LongInt;
+ isHit: Boolean;
begin
-t:= GearsList;
-rX:= sqr(rX);
-rY:= sqr(rY);
-width:= int2hwFloat(RightX-LeftX);
+ t:= GearsList;
+ bound:= _1_5 * int2hwFloat(max(rX, rY));
+ rX:= sqr(rX);
+ rY:= sqr(rY);
+ width:= int2hwFloat(RightX - LeftX);
-while t <> nil do
+ while t <> nil do
begin
- if (t^.Kind = Kind) then
- if (not ((hwSqr(X - t^.X) / rX + hwSqr(Y - t^.Y) / rY) > _1)) or
- ((WorldEdge = weWrap) and (
- (not ((hwSqr(X - width - t^.X) / rX + hwSqr(Y - t^.Y) / rY) > _1)) or
- (not ((hwSqr(X + width - t^.X) / rX + hwSqr(Y - t^.Y) / rY) > _1)))) then
+ if (t <> exclude) and (t^.Kind = Kind) then
begin
- CheckGearNear:= t;
- exit;
+ dX := X - t^.X;
+ dY := Y - t^.Y;
+ isHit := (hwAbs(dX) + hwAbs(dY) < bound)
+ and (not ((hwSqr(dX) / rX + hwSqr(dY) / rY) > _1));
+
+ if (not isHit) and (WorldEdge = weWrap) then
+ begin
+ if (hwAbs(dX - width) + hwAbs(dY) < bound)
+ and (not ((hwSqr(dX - width) / rX + hwSqr(dY) / rY) > _1)) then
+ isHit := true
+ else if (hwAbs(dX + width) + hwAbs(dY) < bound)
+ and (not ((hwSqr(dX + width) / rX + hwSqr(dY) / rY) > _1)) then
+ isHit := true
+ end;
+
+ if isHit then
+ begin
+ CheckGearNear:= t;
+ exit;
+ end;
end;
- t:= t^.NextGear
+ t:= t^.NextGear
end;
-CheckGearNear:= nil
+ CheckGearNear:= nil
+end;
+
+function CheckGearNear(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt): PGear;
+begin
+ CheckGearNear := CheckGearNearImpl(Kind, X, Y, rX, rY, nil);
end;
function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear;
-var t: PGear;
- width: hwFloat;
begin
-t:= GearsList;
-rX:= sqr(rX);
-rY:= sqr(rY);
-width:= int2hwFloat(RightX-LeftX);
-
-while t <> nil do
- begin
- if (t <> Gear) and (t^.Kind = Kind) then
- if (not ((hwSqr(Gear^.X - t^.X) / rX + hwSqr(Gear^.Y - t^.Y) / rY) > _1)) or
- ((WorldEdge = weWrap) and (
- (not ((hwSqr(Gear^.X - width - t^.X) / rX + hwSqr(Gear^.Y - t^.Y) / rY) > _1)) or
- (not ((hwSqr(Gear^.X + width - t^.X) / rX + hwSqr(Gear^.Y - t^.Y) / rY) > _1)))) then
- begin
- CheckGearNear:= t;
- exit;
- end;
- t:= t^.NextGear
- end;
-
-CheckGearNear:= nil
+ CheckGearNear := CheckGearNearImpl(Kind, Gear^.X, Gear^.Y, rX, rY, Gear);
end;
procedure CheckCollision(Gear: PGear); inline;
--- a/rust/fpnum/src/lib.rs Sat Oct 13 00:43:04 2018 +0300
+++ b/rust/fpnum/src/lib.rs Sun Oct 14 09:43:42 2018 -0400
@@ -12,6 +12,7 @@
FPNum::from(numerator) / denominator
}
+ #[inline]
fn signum(&self) -> i8 {
if self.is_negative {
-1
@@ -20,18 +21,22 @@
}
}
+ #[inline]
fn is_negative(&self) -> bool {
self.is_negative
}
+ #[inline]
fn is_positive(&self) -> bool {
!self.is_negative
}
+ #[inline]
fn is_zero(&self) -> bool {
self.value == 0
}
+ #[inline]
fn abs(&self) -> Self {
Self {
is_negative: false,
@@ -39,6 +44,7 @@
}
}
+ #[inline]
fn round(&self) -> i64 {
if self.is_negative {
-((self.value >> 32) as i64)
@@ -47,6 +53,7 @@
}
}
+ #[inline]
fn sqr(&self) -> Self {
Self {
is_negative: false,
@@ -111,6 +118,7 @@
}
impl PartialEq for FPNum {
+ #[inline]
fn eq(&self, other: &Self) -> bool {
self.value == other.value && (self.is_negative == other.is_negative || self.value == 0)
}
@@ -119,6 +127,7 @@
impl Eq for FPNum {}
impl PartialOrd for FPNum {
+ #[inline]
fn partial_cmp(&self, rhs: &Self) -> std::option::Option<std::cmp::Ordering> {
Some(self.cmp(rhs))
}
@@ -261,6 +270,12 @@
}
}
+macro_rules! fp {
+ (-$n: tt / $d: tt) => { FPNum::new(-$n, $d) };
+ ($n: tt / $d: tt) => { FPNum::new($n, $d) };
+ ($n: tt) => { FPNum::from($n) };
+}
+
/* TODO:
Distance
DistanceI
@@ -272,7 +287,7 @@
#[cfg(test)]
#[test]
fn basics() {
- let n = FPNum::new(15, 2);
+ let n = fp!(15/2);
assert!(n.is_positive());
assert!(!n.is_negative());
@@ -281,7 +296,7 @@
assert_eq!(-(-n), n);
assert_eq!((-n).abs(), n);
- assert_eq!(-n, FPNum::new(-15, 2));
+ assert_eq!(-n, fp!(-15/2));
assert_eq!(n.round(), 7);
assert_eq!((-n).round(), -7);
@@ -289,13 +304,27 @@
#[test]
fn zero() {
- let z = FPNum::from(0);
- let n = FPNum::new(15, 2);
+ let z = fp!(0);
+ let n = fp!(15/2);
assert!(z.is_zero());
assert!(z.is_positive());
assert!((-z).is_negative);
- assert_eq!(n - n, z)
+ assert_eq!(n - n, z);
+ assert_eq!(-n + n, z);
+}
+
+#[test]
+fn ord() {
+ let z = fp!(0);
+ let n1_5 = fp!(3/2);
+ let n2_25 = fp!(9/4);
+
+ assert!(!(z > z));
+ assert!(!(z < z));
+ assert!(n2_25 > n1_5);
+ assert!(-n2_25 < n1_5);
+ assert!(-n2_25 < -n1_5);
}
#[test]
@@ -313,17 +342,21 @@
#[test]
fn arith() {
- let n1_5 = FPNum::new(3, 2);
- let n2_25 = FPNum::new(9, 4);
+ let n1_5 = fp!(3/2);
+ let n2_25 = fp!(9/4);
+ let n_0_15 = fp!(-15/100);
- assert_eq!(n1_5 + n1_5, FPNum::from(3));
- assert_eq!(-n1_5 - n1_5, FPNum::from(-3));
+ assert_eq!(n1_5 + n1_5, fp!(3));
+ assert_eq!(-n1_5 - n1_5, fp!(-3));
assert_eq!(n1_5 * n1_5, n2_25);
assert_eq!(-n1_5 * -n1_5, n2_25);
assert_eq!(n1_5 * -n1_5, -n2_25);
assert_eq!(-n1_5 * n1_5, -n2_25);
+ assert_eq!(-n2_25 / -n1_5, n1_5);
+ assert_eq!(n1_5 / -10, n_0_15);
+
assert_eq!(n1_5.sqr(), n2_25);
assert_eq!((-n1_5).sqr(), n2_25);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rust/lfprng/Cargo.toml Sun Oct 14 09:43:42 2018 -0400
@@ -0,0 +1,6 @@
+[package]
+name = "lfprng"
+version = "0.1.0"
+authors = ["Andrey Korotaev <a.korotaev@hedgewars.org>"]
+
+[dependencies]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rust/lfprng/src/lib.rs Sun Oct 14 09:43:42 2018 -0400
@@ -0,0 +1,65 @@
+pub struct LaggedFibonacciPRNG {
+ circular_buffer: [u32; 64],
+ index: usize,
+}
+
+impl LaggedFibonacciPRNG {
+ fn new(init_values: &[u8]) -> Self {
+ let mut buf = [0xa98765 + 68; 64];
+
+ for i in 0..std::cmp::min(init_values.len(), 54) {
+ buf[i] = init_values[i] as u32;
+ }
+
+ let mut prng = Self {
+ circular_buffer: buf,
+ index: 54,
+ };
+
+ for i in 0..2048 {
+ prng.get_next();
+ }
+
+ prng
+ }
+
+ #[inline]
+ fn get_next(&mut self) -> u32 {
+ self.index = (self.index + 1) & 0x3f;
+ self.circular_buffer[self.index] = (self.circular_buffer[(self.index + 40) & 0x3f]
+ + self.circular_buffer[(self.index + 9) & 0x3f])
+ & 0x7fffffff;
+
+ self.circular_buffer[self.index]
+ }
+
+ #[inline]
+ fn get_random(&mut self, modulo: u32) -> u32 {
+ self.get_next();
+ self.get_next() % modulo
+ }
+
+ #[inline]
+ fn add_randomness(&mut self, value: u32) {
+ self.index = (self.index + 1) & 0x3f;
+ self.circular_buffer[self.index] ^= value;
+ }
+}
+
+#[cfg(test)]
+#[test]
+fn compatibility() {
+ let mut prng = LaggedFibonacciPRNG::new("{052e2aee-ce41-4720-97bd-559a413bf866}".as_bytes());
+
+ assert_eq!(prng.get_random(1000), 418);
+ assert_eq!(prng.get_random(1000000), 554064);
+ assert_eq!(prng.get_random(0xffffffff), 239515837);
+
+ prng.add_randomness(123);
+
+ for i in 0..=100000 {
+ prng.get_random(2);
+ }
+
+ assert_eq!(prng.get_random(0xffffffff), 525333582);
+}
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Sat Oct 13 00:43:04 2018 +0300
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Sun Oct 14 09:43:42 2018 -0400
@@ -36,47 +36,47 @@
</message>
<message>
<source><a href="https://gcc.gnu.org">GCC</a>: %1</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://gcc.gnu.org">GCC</a>: %1</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_mixer</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_mixer</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_net</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_net</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_image</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_image</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_ttf</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_ttf</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.qt.io/developers/">Qt</a>: %1</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.qt.io/developers/">Qt</a>: %1</translation>
</message>
<message>
<source><a href="https://libav.org">libavcodec</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://libav.org">libavcodec</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://libav.org">libavformat</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://libav.org">libavformat</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://libav.org">libavutil</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://libav.org">libavutil</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://icculus.org/physfs/">PhysFS</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://icculus.org/physfs/">PhysFS</a>: %1.%2.%3</translation>
</message>
</context>
<context>
@@ -122,7 +122,7 @@
</message>
<message>
<source>Warning</source>
- <translation>警報</translation>
+ <translation>忠告</translation>
</message>
<message>
<source>permanent</source>
@@ -172,7 +172,7 @@
</message>
<message>
<source>If you found a bug, you can see if it's already been reported here: </source>
- <translation>バグ発見の際、以前の報告の有無を確認してください: </translation>
+ <translation>バグ発見の際、以前の報告の有無をこちらで確認してください: </translation>
</message>
<message>
<source>Your email address is optional, but necessary if you want us to get back at you.</source>
@@ -184,7 +184,7 @@
</message>
<message>
<source>This is optional, but this information might help us to resolve bugs and other technical problems.</source>
- <translation type="unfinished"></translation>
+ <translation>この情報の入力は任意ですが、不具合を修正するための応援になる可能性があります。</translation>
</message>
</context>
<context>
@@ -195,7 +195,7 @@
</message>
<message numerus="yes">
<source>Every %1 turn</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1ターンごとに</numerusform>
</translation>
</message>
@@ -204,7 +204,7 @@
<name>GameCFGWidget</name>
<message>
<source>Edit weapons</source>
- <translation>武器を編集</translation>
+ <translation>武器編集</translation>
</message>
<message>
<source>Edit schemes</source>
@@ -253,31 +253,31 @@
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1分</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1時間</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1時間</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1日</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1日</numerusform>
</translation>
</message>
@@ -302,52 +302,52 @@
<message>
<source>Usage</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>利用説明</translation>
</message>
<message>
<source>OPTION</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>設定</translation>
</message>
<message>
<source>CONNECTSTRING</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>接続列</translation>
</message>
<message>
<source>Options</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>設定</translation>
</message>
<message>
<source>Display this help</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>設定を表示する</translation>
</message>
<message>
<source>Custom path for configuration data and user data</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>コンフィグとユーザーデータへのカスタムパス</translation>
</message>
<message>
<source>Custom path to the game data folder</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>ゲームデータへのカスタムパス</translation>
</message>
<message>
<source>Hedgewars can use a %1 (e.g. "%2") to connect on start.</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>起動中に%1を使うことができます「例:%2」</translation>
</message>
<message>
<source>Malformed option argument: %1</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>不正オプション:%1</translation>
</message>
<message>
<source>Unknown option argument: %1</source>
<comment>command-line</comment>
- <translation type="unfinished"></translation>
+ <translation>未知オプション:%1</translation>
</message>
</context>
<context>
@@ -463,7 +463,7 @@
<message>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
- <translation>指定されたニックネーム(%1)はもうこのサーバーで使用中です。
+ <translation>指定されたニックネーム(%1)はこのサーバーですでに使用されています。
違うニックネームを指定してください:</translation>
</message>
<message>
@@ -480,7 +480,7 @@
please register it at www.hedgewars.org</source>
<translation>指定されたニックネームは登録されていません。
他のプレーヤーからの使用を防ぐためには,
-「www.hedgewars.org」をアクセスして登録してください</translation>
+「www.hedgewars.org」をアクセスして登録してください。</translation>
</message>
<message>
<source>
@@ -547,7 +547,7 @@
Password:</source>
<translation>指定されたニックネームはすでに登録されていますが、パスワードが指定されていません。
-ご自分のニックネームではなければ「www.hedgewars.org」をアクセスして違うニックネームを登録してください
+ご自分のニックネームではなければ「www.hedgewars.org」をアクセスして違うニックネームを登録してください。
パスワード:</translation>
</message>
@@ -804,14 +804,14 @@
<message>
<source>Port</source>
<extracomment>short for "port number", part of server address</extracomment>
- <translation>ポート</translation>
+ <translation>ポート番号</translation>
</message>
</context>
<context>
<name>HWNewNet</name>
<message>
<source>The host was not found. Please check the host name and port settings.</source>
- <translation>ホストが見つかりませんでした。ホスト名とポート設定を確認してください。</translation>
+ <translation>ホストが見つかりませんでした。ホスト名とポート番号設定を確認してください。</translation>
</message>
<message>
<source>Connection refused</source>
@@ -851,7 +851,7 @@
</message>
<message>
<source>The server is too old. Disconnecting now.</source>
- <translation>サーバーのバージョンは古すぎますため、コネクションを中断します。</translation>
+ <translation>サーバーのバージョンが古すぎますため、コネクションを中断します。</translation>
</message>
<message>
<source>Server authentication error</source>
@@ -859,11 +859,11 @@
</message>
<message>
<source>Reason:</source>
- <translation type="unfinished"></translation>
+ <translation>理由:</translation>
</message>
<message>
<source>The connection was refused by the official server or timed out. Something seems to be wrong with the official server at the moment. This might be a temporary problem. Please try again later.</source>
- <translation type="unfinished"></translation>
+ <translation>接続拒否かタイムアウトが発生しました。</translation>
</message>
<message>
<source>The connection was refused by the host or timed out. This might have one of the following reasons:
@@ -872,7 +872,12 @@
- There is a temporary network problem
Please check the host name and port settings and/or try again later.</source>
- <translation type="unfinished"></translation>
+ <translation>接続拒否かタイムアウトが発生しました。原因は以下のような理由の可能性があります:
+・指定されたホストにはヘッジウォーズサーバーが起動されていません
+・ポート番号が間違っています
+・一時的なネットワーク不具合が発生しました
+
+ホスト名とポートばんご設定を確認してください。</translation>
</message>
</context>
<context>
@@ -886,7 +891,7 @@
If you don't have an account on www.hedgewars.org,
just enter your nickname.</source>
- <translation>サーバーに接続するために、ログインしてください。
+ <translation>サーバーに接続するためには、ログインしてください。
「www.hedgewars.org」アカウントをお持ちでない場合,ニックネームだけを入力してください。
</translation>
@@ -994,7 +999,7 @@
</message>
<message numerus="yes">
<source>%1 seconds</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1秒</numerusform>
</translation>
</message>
@@ -1109,7 +1114,7 @@
</message>
<message>
<source>This feature requires an Internet connection, but you don't appear to be online (error code: %1).</source>
- <translation>この機能はインターネット接続が必要です(エラー%1)。</translation>
+ <translation>この機能はインターネット接続が必要です。今はネットに接続していないようです(エラー%1)。</translation>
</message>
<message>
<source>Internal error: Reply object is invalid.</source>
@@ -1183,7 +1188,7 @@
</message>
<message>
<source>Select an action to choose a custom key bind for this team</source>
- <translation>アクションを選んで、このチームの専用のキーを指定してください</translation>
+ <translation>このチームの専用のキーを指定するには、アクションを選んでください</translation>
</message>
<message>
<source>Use my default</source>
@@ -1275,33 +1280,33 @@
</message>
<message numerus="yes">
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
- <translation type="unfinished">
+ <translation>
<numerusform>最高射撃賞は<b>%2</b>ダメージを与えた<b>%1</b>が受賞します。</numerusform>
</translation>
</message>
<message numerus="yes">
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
- <translation type="unfinished">
+ <translation>
<numerusform>一ターンに針鼠<b>%2</b>匹を倒した<b>%1</b>が最強です。</numerusform>
</translation>
</message>
<message numerus="yes">
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
- <translation type="unfinished">
- <numerusform>針鼠はラウンド中に、<b>%1</b>匹亡くなりました。
+ <translation>
+ <numerusform>針鼠はラウンド中に、<b>%1</b>匹倒されました。
</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(%1 kill)</source>
<extracomment>Number of kills in stats screen, written after the team name</extracomment>
- <translation type="unfinished">
+ <translation>
<numerusform>(倒した針鼠数:%1匹)</numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
- <translation type="unfinished">
+ <translation>
<numerusform><b>%1</b>は、怖くて自分のターンを<b>%2</b>回もスキップしました。</numerusform>
</translation>
</message>
@@ -1316,25 +1321,25 @@
<message numerus="yes">
<source>(%1 %2)</source>
<extracomment>For custom number of points in the stats screen, written after the team name. %1 is the number, %2 is the word. Example: “4 points”</extracomment>
- <translation type="unfinished">
+ <translation>
<numerusform>(%1 %2)</numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> thought it's good to shoot their own hedgehogs for <b>%2</b> pts.</source>
- <translation type="unfinished">
+ <translation>
<numerusform><b>%1</b>は自分の針鼠に<b>%2</b>ダメージを与えてもいいと思いました。</numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> killed <b>%2</b> of their own hedgehogs.</source>
- <translation type="unfinished">
+ <translation>
<numerusform><b>%1</b>は自分の針鼠を<b>%2</b>匹犠牲にしました。</numerusform>
</translation>
</message>
<message>
<source>With everyone having the same clan color, there was no reason to fight. And so the hedgehogs happily lived in peace ever after.</source>
- <translation type="unfinished"></translation>
+ <translation>みんなが同じクランの一員であるため、戦う必要もありません。めでたしめでたし。</translation>
</message>
</context>
<context>
@@ -1375,7 +1380,7 @@
</message>
<message>
<source>Access the user created content downloadable from our website</source>
- <translation>ヘッジウォーズのウェッブサイトから、ユーザー制追加コンテンツをダウンロードする</translation>
+ <translation>ヘッジウォーズのウェブサイトから、ユーザー制追加コンテンツをダウンロードする</translation>
</message>
<message>
<source>Exit game</source>
@@ -1411,7 +1416,7 @@
</message>
<message>
<source>Open the Hedgewars online game manual in your web browser</source>
- <translation type="unfinished"></translation>
+ <translation>ウェブブラウザでヘッジウォーズのマニュアルを見る</translation>
</message>
</context>
<context>
@@ -1433,7 +1438,7 @@
<name>PageNetGame</name>
<message>
<source>Edit game preferences</source>
- <translation>ゲーム設定の編集</translation>
+ <translation>ゲーム設定を調整する</translation>
</message>
<message>
<source>Start</source>
@@ -1468,7 +1473,7 @@
<name>PageNetServer</name>
<message>
<source>Click here for details</source>
- <translation>詳細を見るため、ここを押してください</translation>
+ <translation>詳細を見るためには、ここを押してください</translation>
</message>
<message>
<source>Insert your address here</source>
@@ -1492,7 +1497,7 @@
<message>
<source>You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
<translation>
- チーム選択からチームを編集することはできません。チームの追加、編集、削除をするために、メインメニューに戻ってください。</translation>
+ チーム選択からチームを編集することができません。チームの追加、編集、削除をするためには、メインメニュー画面に戻ってください。</translation>
</message>
<message>
<source>New scheme</source>
@@ -1528,11 +1533,11 @@
</message>
<message>
<source>Proxy host</source>
- <translation>プロクシのホスト</translation>
+ <translation>プロクシのホスト名</translation>
</message>
<message>
<source>Proxy port</source>
- <translation>プロクシのポート</translation>
+ <translation>プロクシのポート番号</translation>
</message>
<message>
<source>Proxy login</source>
@@ -1648,7 +1653,7 @@
</message>
<message>
<source>MISSING LANGUAGE NAME [%1]</source>
- <translation>「%1」言語は欠けています</translation>
+ <translation>「%1」言語が欠けています</translation>
</message>
<message>
<source>Can't delete last team</source>
@@ -1699,7 +1704,7 @@
</message>
<message numerus="yes">
<source>%1 players online</source>
- <translation type="unfinished">
+ <translation>
<numerusform>オンラインプレーヤー:%1名</numerusform>
</translation>
</message>
@@ -1752,7 +1757,7 @@
</message>
<message>
<source>Your hogs are unable to move, put your artillery skills to the test</source>
- <translation>針鼠は動くことができません。</translation>
+ <translation>針鼠は動くことができません</translation>
</message>
<message>
<source>New</source>
@@ -1764,7 +1769,7 @@
</message>
<message>
<source>Order of play is random instead of in room order.</source>
- <translation>ターン準をランダム化します。</translation>
+ <translation>ターン準をランダム化する。</translation>
</message>
<message>
<source>Play with a King. If he dies, your side dies.</source>
@@ -1788,11 +1793,11 @@
</message>
<message>
<source>AI respawns on death.</source>
- <translation>COMが死亡した時に、再発生します。</translation>
+ <translation>COMは倒された時に、再発生します。</translation>
</message>
<message>
<source>All (living) hedgehogs are fully restored at the end of turn</source>
- <translation>生きている針鼠はターン開始時に、完全に回復します</translation>
+ <translation>生きている針鼠はターン開始時に、完全に回復します。</translation>
</message>
<message>
<source>Attacking does not end your turn.</source>
@@ -1804,7 +1809,7 @@
</message>
<message>
<source>Each hedgehog has its own ammo. It does not share with the team.</source>
- <translation>針鼠はチーㇺと弾薬を共有していません</translation>
+ <translation>針鼠はチーㇺと弾薬を共有していません。</translation>
</message>
<message>
<source>You will not have to worry about wind anymore.</source>
@@ -1824,11 +1829,11 @@
</message>
<message>
<source>Add an indestructible border around the terrain</source>
- <translation>地形の回りに不滅の縁を追加します</translation>
+ <translation>地形の回りに不滅の縁を追加します。</translation>
</message>
<message>
<source>Add an indestructible border along the bottom</source>
- <translation>マップ底に不滅の縁を追加します</translation>
+ <translation>マップ底に不滅の縁を追加します。</translation>
</message>
<message>
<source>None (Default)</source>
@@ -1848,11 +1853,11 @@
</message>
<message>
<source>Each clan starts in its own part of the terrain.</source>
- <translation>各クランは自分の地域からゲームを始めます</translation>
+ <translation>各クランは自分の地域からゲームを始めます。</translation>
</message>
<message>
<source>Overall damage and knockback in percent</source>
- <translation>総体的なダメージとノックバックの百分率</translation>
+ <translation>総体的なダメージとノックバックの百分率。</translation>
</message>
<message>
<source>Turn time in seconds</source>
@@ -1896,7 +1901,7 @@
</message>
<message>
<source>Average number of mines to be placed a medium-sized island map. This number will be scaled for other maps.</source>
- <translation>中サイズの島マップに配置される地雷の大体の数。この数はマップサイズに応じて拡大や縮小されます。</translation>
+ <translation>中サイズの島マップに配置される地雷の平均数。この数はマップサイズに応じて調整されます。</translation>
</message>
<message>
<source>Likelihood of a mine being a dud. Does not affect mines placed by hedgehogs.</source>
@@ -1904,11 +1909,11 @@
</message>
<message>
<source>Average number of barrels to be placed a medium-sized island map. This number will be scaled for other maps.</source>
- <translation>中サイズの島マップに配置される樽の大体の数。この数はマップサイズに応じて拡大や縮小されます。</translation>
+ <translation>中サイズの島マップに配置される樽の平均数。この数はマップサイズに応じて調整されます。</translation>
</message>
<message>
<source>Average number of air mines to be placed a medium-sized island map. This number will be scaled for other maps.</source>
- <translation>中サイズの島マップに配置される空中地雷の大体の数。この数はマップサイズに応じて拡大や縮小されます。</translation>
+ <translation>中サイズの島マップに配置される空中地雷の平均数。この数はマップサイズに応じて調整されます。</translation>
</message>
<message>
<source>Affects the left and right boundaries of the map</source>
@@ -1920,7 +1925,7 @@
</message>
<message>
<source>Additional parameter to configure game styles. The meaning depends on the used style, refer to the documentation. When in doubt, leave it empty.</source>
- <translation>ゲームスタイル調整の追加パラメータ。その意味はスタイルによって異なりますので、ドキュメントを参照してください。疑問を感じた場合、空にしてください。</translation>
+ <translation>ゲームスタイル調整の追加パラメータ。その意味はスタイルによって異なりますので、マニュアルを参照してください。疑問を感じた場合、空にしてください。</translation>
</message>
<message>
<source>Name of this scheme</source>
@@ -1932,11 +1937,11 @@
</message>
<message>
<source>Land can not be destroyed by most weapons.</source>
- <translation type="unfinished"></translation>
+ <translation>地は大体の武器に対しては不滅です。</translation>
</message>
<message>
<source>%1 (%2)</source>
- <translation type="unfinished">%1(%2)</translation>
+ <translation>%1(%2)</translation>
</message>
</context>
<context>
@@ -1993,7 +1998,7 @@
</message>
<message>
<source>Select a mission!</source>
- <translation>任務選択!</translation>
+ <translation>任務を選択してください!</translation>
</message>
<message>
<source>Start fighting</source>
@@ -2036,7 +2041,7 @@
</message>
<message numerus="yes">
<source>%1 bytes</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1バイト</numerusform>
</translation>
</message>
@@ -2243,11 +2248,11 @@
<message>
<source>Dampen when losing focus</source>
<extracomment>Checkbox text. If checked, the in-game audio volume is reduced (=dampened) when the game window loses its focus</extracomment>
- <translation type="unfinished"></translation>
+ <translation>フォーカス外れで低音</translation>
</message>
<message>
<source>Reduce the game audio volume if the game window has lost its focus</source>
- <translation type="unfinished"></translation>
+ <translation>ゲームウィンドウのフォーカスが外れた場合、音量を下げる</translation>
</message>
</context>
<context>
@@ -2408,11 +2413,11 @@
</message>
<message>
<source>Host:</source>
- <translation>ホスト:</translation>
+ <translation>ホスト名:</translation>
</message>
<message>
<source>Port:</source>
- <translation>ポート:</translation>
+ <translation>ポート番号:</translation>
</message>
<message>
<source>Resolution</source>
@@ -2428,7 +2433,7 @@
</message>
<message>
<source>Server port:</source>
- <translation>サーバーポート:</translation>
+ <translation>サーバーポート番号:</translation>
</message>
<message>
<source>Initial sound volume</source>
@@ -2448,7 +2453,7 @@
</message>
<message>
<source>Sudden Death Timeout</source>
- <translation>サドンデスの時間切れ</translation>
+ <translation>サドンデスまでの時間</translation>
</message>
<message>
<source>Scheme Name:</source>
@@ -2546,7 +2551,7 @@
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
- <translation>この開発中のビルドは、他のバージョンとの間に非互換、または不完全な機能が存在する可能性があります。</translation>
+ <translation>この開発中のビルドには、他のバージョンとの間に非互換、または不完全な機能が存在する可能性があります。</translation>
</message>
<message>
<source>Fullscreen</source>
@@ -2729,11 +2734,11 @@
<message>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
- <translation>参加しようとしているゲームはもう始まりました。それでも参加しますか?</translation>
+ <translation>参加しようとしているゲームはすでに始まっています。それでも参加しますか?</translation>
</message>
<message>
<source>Schemes - Warning</source>
- <translation>スキーム - 警報</translation>
+ <translation>スキーム - 忠告</translation>
</message>
<message>
<source>Schemes - Are you sure?</source>
@@ -2753,7 +2758,7 @@
</message>
<message numerus="yes">
<source>Do you really want to remove %1 file(s)?</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%1ファイルを削除します。よろしいですか?</numerusform>
</translation>
</message>
@@ -2807,11 +2812,11 @@
</message>
<message>
<source>Please fill out all fields. Email is optional.</source>
- <translation>メールアドレス以外の全てのフィールドに記入してください。</translation>
+ <translation>メールアドレス以外の全ての項目に記入してください。メールアドレスの指定は任意です。</translation>
</message>
<message>
<source>Hedgewars - Warning</source>
- <translation>ヘッジウォーズ - 警報</translation>
+ <translation>ヘッジウォーズ - 忠告</translation>
</message>
<message>
<source>Hedgewars - Information</source>
@@ -2819,12 +2824,12 @@
</message>
<message>
<source>Not all players are ready</source>
- <translation>準備が出来ていないプレーヤーがあります。</translation>
+ <translation>準備が出来ていないプレーヤーがいます。</translation>
</message>
<message>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
- <translation>準備が出来ていないプレーヤーがあります。それでもゲームを始めてもよろしいですか?</translation>
+ <translation>準備が出来ていないプレーヤーがいます。それでもゲームを始めてもよろしいですか?</translation>
</message>
<message>
<source>Sorry, Hedgewars can't be played with more than 48 hedgehogs. Please try again with fewer hedgehogs.
@@ -2852,7 +2857,7 @@
</message>
<message>
<source>The team name '%1' is already taken, so your team has been renamed to '%2'.</source>
- <translation>チーㇺ名「%1」がすでに使用中なため、チームを「%2」に改名します。</translation>
+ <translation>チーム名「%1」がすでに使用中なため、チームを「%2」に改名します。</translation>
</message>
<message>
<source>Welcome to Hedgewars</source>
@@ -2868,23 +2873,23 @@
</message>
<message>
<source>Cannot use the weapon scheme '%1'!</source>
- <translation>武器スキーム「%1」を使用できません!</translation>
+ <translation>武器セット「%1」を使用できません!</translation>
</message>
<message>
<source>The connection to the server is lost.</source>
- <translation type="unfinished"></translation>
+ <translation>サーバー接続が中断しました。</translation>
</message>
<message>
<source>Schemes - Name already taken</source>
- <translation type="unfinished"></translation>
+ <translation>スキーム - スキーム名使用中</translation>
</message>
<message>
<source>A scheme with the name '%1' already exists. Your scheme has been renamed to '%2'.</source>
- <translation type="unfinished"></translation>
+ <translation>スキーム名「%1」のスキームはすでに存在します。編集中のスキームは「%2」に変名されました。</translation>
</message>
<message>
<source>A weapon scheme with the name '%1' already exists. Changes made to the weapon scheme have been discarded.</source>
- <translation type="unfinished"></translation>
+ <translation>武器セット「%1」はすでに存在します。編集中の武器セットは「%2」に変名されました。</translation>
</message>
</context>
<context>
@@ -2986,7 +2991,7 @@
</message>
<message>
<source>Set the default server port for Hedgewars</source>
- <translation>デフォルトのサーバーポートを指定する</translation>
+ <translation>デフォルトのサーバーポート番号を指定する</translation>
</message>
<message>
<source>Invite your friends to your server in just 1 click!</source>
@@ -3384,15 +3389,15 @@
</message>
<message>
<source>change timer</source>
- <translation type="unfinished"></translation>
+ <translation>タイマー変換</translation>
</message>
<message>
<source>show mission information</source>
- <translation type="unfinished"></translation>
+ <translation>任務情報表示</translation>
</message>
<message>
<source>clan chat</source>
- <translation type="unfinished"></translation>
+ <translation>クランチャット</translation>
</message>
</context>
<context>
@@ -3430,7 +3435,7 @@
</message>
<message>
<source>Switch your currently active hog (if possible):</source>
- <translation>アクティブ針鼠を切り替える(可能の時に限って):</translation>
+ <translation>操作中の針鼠を切り替える(可能の時に限って):</translation>
</message>
<message>
<source>Pick a weapon or utility item:</source>
@@ -3490,7 +3495,7 @@
</message>
<message>
<source>Talk to your clan or all participants:</source>
- <translation type="unfinished"></translation>
+ <translation>自分のクランか全てのプレーヤーと会話する:</translation>
</message>
</context>
<context>
@@ -3813,22 +3818,22 @@
</message>
<message>
<source>D-pad</source>
- <translation type="unfinished"></translation>
+ <translation>十字ボタン</translation>
</message>
<message>
<source>Axis %1 %2</source>
<extracomment>Game controller axis direction. %1 = axis number, %2 = direction</extracomment>
- <translation type="unfinished"></translation>
+ <translation>軸%1%2</translation>
</message>
<message>
<source>Button %1</source>
<extracomment>Game controller button. %1 = button number</extracomment>
- <translation type="unfinished"></translation>
+ <translation>ボタン%1</translation>
</message>
<message>
<source>D-pad %1 %2</source>
<extracomment>Game controller D-pad button. %1 = D-pad number, %2 = direction</extracomment>
- <translation type="unfinished"></translation>
+ <translation>十字ボタン%1%2</translation>
</message>
</context>
<context>
@@ -3839,7 +3844,7 @@
</message>
<message>
<source>No checker rights</source>
- <translation>権利を持っていません</translation>
+ <translation>チェッカー権利を持っていません</translation>
</message>
<message>
<source>Authentication failed</source>
@@ -3883,7 +3888,7 @@
</message>
<message>
<source>Warning! Chat flood protection activated</source>
- <translation>警報!チャット洪水防護が作動中</translation>
+ <translation>忠告!チャット洪水防護が作動中</translation>
</message>
<message>
<source>Excess flood</source>
@@ -3895,7 +3900,7 @@
</message>
<message>
<source>Warning! Joins flood protection activated</source>
- <translation>警報!参加洪水防護が作動中</translation>
+ <translation>忠告!参加洪水防護が作動中</translation>
</message>
<message>
<source>new seed</source>
@@ -3939,7 +3944,7 @@
</message>
<message>
<source>There's already a team with same name in the list.</source>
- <translation>同名のチームがすでにリストに載ってます</translation>
+ <translation>同名のチームがすでに参加チームリストに載ってます</translation>
</message>
<message>
<source>Joining not possible: Round is in progress.</source>
@@ -4031,7 +4036,7 @@
</message>
<message>
<source>You already have voted.</source>
- <translation>すでに投票済みです</translation>
+ <translation>すでに投票済みです。</translation>
</message>
<message>
<source>Your vote has been counted.</source>
@@ -4055,219 +4060,219 @@
</message>
<message>
<source>/info <player>: Show info about player</source>
- <translation type="unfinished"></translation>
+ <translation>/info <ニックネーム>:プレーヤー情報を表示する</translation>
</message>
<message>
<source>/me <message>: Chat action, e.g. '/me eats pizza' becomes '* Player eats pizza'</source>
- <translation type="unfinished"></translation>
+ <translation>/me <メッセージ>:チャットアクション</translation>
</message>
<message>
<source>/rnd: Flip a virtual coin and reply with 'heads' or 'tails'</source>
- <translation type="unfinished"></translation>
+ <translation>/rnd:「表」か「裏」をランダムに出力する</translation>
</message>
<message>
<source>/rnd [A] [B] [C] [...]: Reply with a random word from the given list</source>
- <translation type="unfinished"></translation>
+ <translation>/rnd <選択肢1> <選択肢2> 。。。:選択肢のうちの一つをランダムに出力する</translation>
</message>
<message>
<source>/watch <id>: Watch a demo stored on the server with the given ID</source>
- <translation type="unfinished"></translation>
+ <translation>/watch <番号>:サーバーで保存されたデモを再生する</translation>
</message>
<message>
<source>/help: Show chat command help</source>
- <translation type="unfinished"></translation>
+ <translation>/help:チャットコマンドの説明を読む</translation>
</message>
<message>
<source>/callvote [arguments]: Start a vote</source>
- <translation type="unfinished"></translation>
+ <translation>/callvote <投票タイプ>:投票を始める</translation>
</message>
<message>
<source>/vote <yes/no>: Vote 'yes' or 'no' for active vote</source>
- <translation type="unfinished"></translation>
+ <translation>/vote <投票>:賛成「yes」か反対「no」で投票する</translation>
</message>
<message>
<source>/delegate <player>: Surrender room control to player</source>
- <translation type="unfinished"></translation>
+ <translation>/delegate <ニックネーム>: 他のプレーヤーをルーム管理人にする</translation>
</message>
<message>
<source>/maxteams <N>: Limit maximum number of teams to N</source>
- <translation type="unfinished"></translation>
+ <translation>/maxteams <数>:最大のチーム数を指定する</translation>
</message>
<message>
<source>/global <message>: Send global chat message which can be seen by everyone on the server</source>
- <translation type="unfinished"></translation>
+ <translation>/global <メッセージ>:グロリアチャットにメッセージを送る</translation>
</message>
<message>
<source>/registered_only: Toggle 'registered only' state. If enabled, only registered players can join server</source>
- <translation type="unfinished"></translation>
+ <translation>/registered_only:非登録プレーヤー制限状態を切り替える</translation>
</message>
<message>
<source>/super_power: Activate your super power. With it you can enter any room and are protected from kicking. Expires when you leave server</source>
- <translation type="unfinished"></translation>
+ <translation>/super_power:サーバーから去るまでの間でアドミン権限を作動する。</translation>
</message>
<message>
<source>/stats: Query server stats</source>
- <translation type="unfinished"></translation>
+ <translation>/stats:サーバー統計を出力する</translation>
</message>
<message>
<source>/force <yes/no>: Force vote result for active vote</source>
- <translation type="unfinished"></translation>
+ <translation>/force <投票>:投票結果を強制的に賛成「yes」か反対「no」かにする</translation>
</message>
<message>
<source>/fix: Force this room to stay open when it is empty</source>
- <translation type="unfinished"></translation>
+ <translation>/fix:ルームがプレーヤーなしでも存在続けるようにする</translation>
</message>
<message>
<source>/unfix: Undo the /fix command</source>
- <translation type="unfinished"></translation>
+ <translation>/unfix:「/fix」との逆効果</translation>
</message>
<message>
<source>List of lobby chat commands:</source>
- <translation type="unfinished"></translation>
+ <translation>ロビーで利用可能コマンド:</translation>
</message>
<message>
<source>List of room chat commands:</source>
- <translation type="unfinished"></translation>
+ <translation>ルームで利用可能コマンド</translation>
</message>
<message>
<source>Commands for server admins only:</source>
- <translation type="unfinished"></translation>
+ <translation>サーバーアドミン専用コマンド:</translation>
</message>
<message>
<source>room</source>
- <translation type="unfinished"></translation>
+ <translation>ルーム</translation>
</message>
<message>
<source>lobby</source>
- <translation type="unfinished"></translation>
+ <translation>ロビー</translation>
</message>
<message>
<source>(playing)</source>
- <translation type="unfinished"></translation>
+ <translation>「プレー中」</translation>
</message>
<message>
<source>(spectating)</source>
- <translation type="unfinished"></translation>
+ <translation>「観戦中」</translation>
</message>
<message>
<source>Player is not online.</source>
- <translation type="unfinished"></translation>
+ <translation>プレイヤーがオフラインです。</translation>
</message>
<message>
<source>/force: Please use 'yes' or 'no'.</source>
- <translation type="unfinished"></translation>
+ <translation>/force:賛成「yes」か反対「no」で投票してください。</translation>
</message>
<message>
<source>/vote: Please use 'yes' or 'no'.</source>
- <translation type="unfinished"></translation>
+ <translation>/vote:賛成「yes」か反対「no」で投票してください。</translation>
</message>
<message>
<source>Kicked</source>
- <translation type="unfinished"></translation>
+ <translation>キックされました</translation>
</message>
<message>
<source>This server only allows registered users to join.</source>
- <translation type="unfinished"></translation>
+ <translation>このサーバーは登録プレーヤーのみが参加できます。</translation>
</message>
<message>
<source>heads</source>
- <translation type="unfinished"></translation>
+ <translation>表</translation>
</message>
<message>
<source>tails</source>
- <translation type="unfinished"></translation>
+ <translation>裏</translation>
</message>
<message>
<source>This server does not support replays!</source>
- <translation type="unfinished"></translation>
+ <translation>このサーバーではデモ再生はサポートされていません</translation>
</message>
<message>
<source>/greeting [message]: Set or clear greeting message to be shown to players who join the room</source>
- <translation type="unfinished"></translation>
+ <translation>/greeting <メッセージ>:歓迎メッセージを指定する</translation>
</message>
<message>
<source>/save <config ID> <config name>: Add current room configuration as votable choice for /callvote map</source>
- <translation type="unfinished"></translation>
+ <translation>/save <コンフィグID> <コンフィグ名>:現在のルームコンフィグを「/callvote map」で投票できるようにします</translation>
</message>
<message>
<source>/delete <config ID>: Delete a votable room configuration</source>
- <translation type="unfinished"></translation>
+ <translation>/delete <コンフィグID>:指定されたルームコンフィグを「/callvote map」で投票できないようにします</translation>
</message>
<message>
<source>/saveroom <file name>: Save all votable room configurations (and the greeting) of this room into a file</source>
- <translation type="unfinished"></translation>
+ <translation>/saveroom <ファイル名>:投票できるルームコンフィグを指定されたファイルに保存する</translation>
</message>
<message>
<source>/loadroom <file name>: Load votable room configurations (and greeting) from a file</source>
- <translation type="unfinished"></translation>
+ <translation>/loadroom <ファイル名>:投票できるルームコンフィグを指定されたファイルから読み込む</translation>
</message>
<message>
<source>'Registered only' state toggled.</source>
- <translation type="unfinished"></translation>
+ <translation>登録専用状態が切り替えられました。</translation>
</message>
<message>
<source>Super power activated.</source>
- <translation type="unfinished"></translation>
+ <translation>アドミン権限が作動されました。</translation>
</message>
<message>
<source>Unknown command or invalid parameters. Say '/help' in chat for a list of commands.</source>
- <translation type="unfinished"></translation>
+ <translation>不正なコマンド。こまんど説明を読むには「/help」を入力してください。</translation>
</message>
<message>
<source>You can't kick yourself!</source>
- <translation type="unfinished"></translation>
+ <translation>自分をキックすることができません!</translation>
</message>
<message>
<source>You can't kick the only other player!</source>
- <translation type="unfinished"></translation>
+ <translation>唯一の他のプレーヤーをキックすることができません!</translation>
</message>
<message>
<source>The player is not in your room.</source>
- <translation type="unfinished"></translation>
+ <translation>指定されたプレイヤーがこのロームに参加していません。</translation>
</message>
<message>
<source>This player is protected from being kicked.</source>
- <translation type="unfinished"></translation>
+ <translation>指定されたプレーヤーをキックすることができません。</translation>
</message>
<message>
<source>You're not the room master or a server admin!</source>
- <translation type="unfinished"></translation>
+ <translation>ルーム管理人でもサーバーアドミニストレータでもありません!</translation>
</message>
<message>
<source>You're already the room master.</source>
- <translation type="unfinished"></translation>
+ <translation>すでにルーム管理人です</translation>
</message>
<message>
<source>Greeting message cleared.</source>
- <translation type="unfinished"></translation>
+ <translation>歓迎メッセージが消却されました。</translation>
</message>
<message>
<source>Greeting message set.</source>
- <translation type="unfinished"></translation>
+ <translation>歓迎メッセージがセットされました。</translation>
</message>
<message>
<source>/callvote kick: This is only allowed in rooms without a room master.</source>
- <translation type="unfinished"></translation>
+ <translation>/callvote kick:ルーム管理人無しのルームのみで可能です</translation>
</message>
<message>
<source>/callvote map: No maps available.</source>
- <translation type="unfinished"></translation>
+ <translation>/callvote map:選択できるマップがありません。</translation>
</message>
<message>
<source>You're the new room master!</source>
- <translation type="unfinished"></translation>
+ <translation>ルーム管理人になりました!</translation>
</message>
<message>
<source>/quit: Quit the server</source>
- <translation type="unfinished"></translation>
+ <translation>/quit:サーバーを去る</translation>
</message>
<message>
<source>This command is only available in the lobby.</source>
- <translation type="unfinished"></translation>
+ <translation>このコマンドはロビー専用です</translation>
</message>
<message>
<source>This command is only available in rooms.</source>
- <translation type="unfinished"></translation>
+ <translation>このコマンドはルーム専用です</translation>
</message>
</context>
</TS>