Bring languages into the tree (#1625)

* translations: bring languages into tree

* Update translation phrases changed since 2021

* Update packaging script to include all translations

* Update languages.cfg

* Add Latin American Spanish translations

This is a copy of spanish for now.

* Ignore "en" when looking for translation folders

English is the default and doesn't use a subfolder.

* Only add each translation folder once

Korean "ko" is in there twice.

* Compare language coverage to english

All phrases are compared to the english baseline files and any differences
are reported. The differences are pushed to a Github Project as well for
an easier overview.

Thank you to @nosoop for sharing the Python SMC parser!

* Add link to README

---------

Co-authored-by: Peace-Maker <peace-maker@wcfan.de>
This commit is contained in:
Kyle Sanderson 2023-03-29 07:23:05 -07:00 committed by GitHub
parent d8fd60b562
commit 48150e0c7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
696 changed files with 47789 additions and 22 deletions

38
.github/workflows/translations.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: Update translation project
on:
push:
branches:
- master
paths:
- 'translations/**'
jobs:
update_translations:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
name: Setup Python 3.10
with:
python-version: 3.10
- name: Install Python dependencies
working-directory: tools/language_check
run: |
python -m pip install --upgrade -r requirements.txt
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@36464acb844fc53b9b8b2401da68844f6b05ebb0
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PEM }}
- name: Get project data
working-directory: tools/language_check
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
ORGANIZATION: alliedmodders
PROJECT_NUMBER: 1
run: |
python ./compare_translation_phrases.py

View File

@ -16,6 +16,7 @@ Development
- [SourcePawn scripting](https://wiki.alliedmods.net/Category:SourceMod_Scripting): SourcePawn examples and introduction to the language
- [SourceMod plugin API](https://sm.alliedmods.net/new-api): Online SourceMod plugin API reference generated from the include files
- [SourceMod extension development](https://wiki.alliedmods.net/Category:SourceMod_Development): C++ examples and introduction to various extension interfaces
- [Translation project](https://github.com/orgs/alliedmodders/projects/1): Help [translate SourceMod](https://wiki.alliedmods.net/Translations_(SourceMod_Scripting)) into your language
Contact
-------

View File

@ -1,4 +1,37 @@
"Languages"
{
"en" "English"
"en" "English" // English
"ar" "Arabic" // Arabic
"pt" "Brazilian" // Brazilian Portuguese
"bg" "Bulgarian" // Bulgarian
"cze" "Czech" // Czech
"da" "Danish" // Danish
"nl" "Dutch" // Dutch
"fi" "Finnish" // Finnish
"fr" "French" // French
"de" "German" // German
"el" "Greek" // Greek
"he" "Hebrew" // Hebrew
"hu" "Hungarian" // Hungarian
"it" "Italian" // Italian
"jp" "Japanese" // Japanese
"ko" "KoreanA" // Korean
"ko" "Korean" // Korean
"las" "LatAm" // Latin American Spanish
"lv" "Latvian" // Latvian
"lt" "Lithuanian" // Lithuanian
"no" "Norwegian" // Norwegian
"pl" "Polish" // Polish
"pt_p" "Portuguese" // Portuguese
"ro" "Romanian" // Romanian
"ru" "Russian" // Russian
"chi" "SChinese" // Chinese (Simplified)
"sk" "Slovak" // Slovak
"es" "Spanish" // Spanish
"sv" "Swedish" // Swedish
"zho" "TChinese" // Chinese (Traditional)
"th" "Thai" // Thai
"tr" "Turkish" // Turkish
"ua" "Ukrainian" // Ukrainian
"vi" "Vietnamese" // Vietnamese
}

View File

@ -1,5 +1,6 @@
# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
import os
import re
builder.SetBuildFolder('package')
@ -126,3 +127,17 @@ helpers.CopyFiles('plugins/basevotes', 'addons/sourcemod/scripting/basevotes')
helpers.CopyFiles('plugins/basebans', 'addons/sourcemod/scripting/basebans')
helpers.CopyFiles('plugins/funcommands', 'addons/sourcemod/scripting/funcommands')
helpers.CopyFiles('plugins/playercommands', 'addons/sourcemod/scripting/playercommands')
with open(os.path.join(builder.sourcePath, 'configs/languages.cfg'), 'r') as f:
language_re = re.compile(r'^\s*"([^"]+)"\s+"[^"]+"')
added_languages = set(["en"])
for line in f.read().splitlines():
match = language_re.match(line)
if match:
lang_code = match.group(1)
if lang_code in added_languages:
continue
output_path = os.path.join('addons/sourcemod/translations', lang_code)
helpers.CreateFolders([output_path])
helpers.CopyFiles(os.path.join('translations', lang_code), output_path)
added_languages.add(lang_code)

View File

@ -36,27 +36,6 @@ require 'helpers.pm';
#Switch to the output folder.
chdir(Build::PathFormat('../../../OUTPUT/package'));
print "Downloading languages.cfg...\n";
# Don't check certificate. It will fail on the slaves and we're resolving to internal addressing anyway
system('wget --no-check-certificate -q -O addons/sourcemod/configs/languages.cfg "https://sm.alliedmods.net/translator/index.php?go=translate&op=export_langs"');
open(my $fh, '<', 'addons/sourcemod/configs/languages.cfg')
or die "Could not open languages.cfg' $!";
while (my $ln = <$fh>) {
if ($ln =~ /"([^"]+)"\s*"[^"]+.*\((\d+)\) /)
{
my $abbr = $1;
my $id = $2;
print "Downloading language pack $abbr.zip...\n";
# Don't check certificate. It will fail on the slaves and we're resolving to internal addressing anyway
system("wget --no-check-certificate -q -O $abbr.zip \"https://sm.alliedmods.net/translator/index.php?go=translate&op=export&lang_id=$id\"");
system("unzip -qo $abbr.zip -d addons/sourcemod/translations/");
unlink("$abbr.zip");
}
}
close($fh);
unless (-e '../GeoLite2-City_20191217.tar')
{
print "Downloading GeoLite2-City.mmdb...\n";

View File

@ -0,0 +1,283 @@
#!/usr/bin/python3
# Copyright (c) 2023 Peace-Maker
from collections import defaultdict
from dataclasses import dataclass
import os
import pathlib
import re
from smc_parser import smc_string_to_dict
from typing import Dict, List, Union
from github_gql import GithubGQL
@dataclass
class Translation:
langid: str
translation: str
param_count: int
@dataclass
class Phrase:
key: str
format: Union[Translation, None]
translations: List[Translation]
@dataclass
class PhraseFile:
filename: str
phrases: List[Phrase]
error: Union[str, None] = None
@dataclass
class Language:
langid: str
name: str
files: List[PhraseFile]
@dataclass
class Report:
langid: str
filename: str
file_warning: str = ''
phrase_key: str = ''
phrase_warning: str = ''
def parse_translations(path: str):
param_regex = re.compile(r'\{[0-9]+\}', re.MULTILINE)
units = []
for file in pathlib.Path(path).glob('*.txt'):
if not file.is_file():
continue
try:
phrases = smc_string_to_dict(file.read_text('utf-8'))
except Exception as ex:
print(f'Error parsing {file.name}: {ex}')
units.append(PhraseFile(file.name, [], str(ex)))
continue
if 'Phrases' not in phrases:
print(f'File {file.name} does not start with a "Phrases" section')
continue
parsed_phrases = []
for phrase in phrases['Phrases']:
for phrase_ident, raw_translations in phrase.items():
translations = []
format_special = None
for child_langid, translation in raw_translations.items():
if child_langid == '#format':
format_special = Translation(
child_langid, translation,
translation.count(',') + 1)
else:
translations.append(
Translation(child_langid, translation,
len(param_regex.findall(translation))))
parsed_phrases.append(
Phrase(phrase_ident, format_special, translations))
units.append(PhraseFile(file.name, parsed_phrases))
return units
# Parse the languages.cfg file to know which languages could be available
print('Parsing languages.cfg...')
available_languages: Dict[str, Language] = {}
languages_cfg = smc_string_to_dict(
pathlib.Path('../../configs/languages.cfg').read_text('utf-8'))
for langid, lang in languages_cfg['Languages'][0].items():
available_languages[langid] = Language(langid, lang, [])
print(f'Available languages: {len(available_languages)}')
# Parse the english translation, since it doesn't use a subdirectory and is the baseline for all other translations
available_languages['en'].files = parse_translations('../../translations')
# Parse the other translations
for langid, lang in available_languages.items():
if langid == 'en':
continue
lang.files = parse_translations(f'../../translations/{langid}')
reports: Dict[str, Dict[str,
List[Report]]] = defaultdict(lambda: defaultdict(list))
# Compare the english translation with the other translations
english = available_languages['en']
for langid, lang in available_languages.items():
if langid == 'en':
continue
# See if this language has anything that English doesn't
for file in lang.files:
english_file = next(
(x for x in english.files if x.filename == file.filename), None)
if english_file is None:
reports[langid][file.filename].append(
Report(langid,
file.filename,
file_warning='File doesn\'t exist in English'))
continue
if not file.phrases:
reports[langid][file.filename].append(
Report(langid, file.filename, file_warning='File is empty'))
continue
for phrase in file.phrases:
if phrase.format:
reports[langid][file.filename].append(
Report(langid,
file.filename,
phrase_key=phrase.key,
phrase_warning='Includes a "#format" key'))
english_phrase = next(
(x for x in english_file.phrases if x.key == phrase.key), None)
if english_phrase is None:
# look for this phrase in a different english file
warning = 'Phrase doesn\'t exist in English'
for other_file in english.files:
other_phrase = next(
(x for x in other_file.phrases if x.key == phrase.key),
None)
if other_phrase:
warning = f'Phrase exists in a different file in English: {other_file.filename}'
break
reports[langid][file.filename].append(
Report(langid,
file.filename,
phrase_key=phrase.key,
phrase_warning=warning))
continue
translation_found = False
for translation in phrase.translations:
if translation.langid == langid:
translation_found = True
else:
reports[langid][file.filename].append(
Report(
langid,
file.filename,
phrase_key=phrase.key,
phrase_warning=
f'Includes a translation for language "{translation.langid}"'
))
if english_phrase.format and translation.param_count != english_phrase.format.param_count:
reports[langid][file.filename].append(
Report(
langid,
file.filename,
phrase_key=phrase.key,
phrase_warning=
f'Has {translation.param_count} format parameters, but English has {english_phrase.format.param_count}'
))
if not translation_found:
reports[langid][file.filename].append(
Report(langid,
file.filename,
phrase_key=phrase.key,
phrase_warning=
'Phrase available, but translation missing'))
# See if this language is missing anything that English has
for file in english.files:
lang_file = next(
(x for x in lang.files if x.filename == file.filename), None)
if lang_file is None:
reports[langid][file.filename].append(
Report(langid, file.filename, file_warning='File missing'))
continue
# The file doesn't contain any phrases. We reported that already, so don't spam every single missing phrase
if not lang_file.phrases:
continue
for phrase in file.phrases:
lang_phrase = next(
(x for x in lang_file.phrases if x.key == phrase.key), None)
if lang_phrase is None:
reports[langid][file.filename].append(
Report(langid,
file.filename,
phrase_key=phrase.key,
phrase_warning='Phrase missing'))
if langid not in reports:
print(f'No issues found for {lang.name} ({langid})')
else:
print(
f'Found {len(reports[langid])} issues for {lang.name} ({langid})')
GITHUB_TOKEN = os.environ.get('GITHUB_TOKEN')
if not GITHUB_TOKEN:
raise Exception('GITHUB_TOKEN environment variable not set')
ORGANIZATION = os.environ.get('ORGANIZATION')
if not ORGANIZATION:
raise Exception('ORGANIZATION environment variable not set')
PROJECT_NUMBER = os.environ.get('PROJECT_NUMBER')
if not PROJECT_NUMBER:
raise Exception('PROJECT_NUMBER environment variable not set')
# Get the project and its draft issues
print('Getting project and draft issues...')
githubgql = GithubGQL(GITHUB_TOKEN)
project = githubgql.get_project(ORGANIZATION, int(PROJECT_NUMBER))
project_id = project['id']
field_ids = project['fields']['nodes']
status_field = [field for field in field_ids if field['name'] == 'Status']
assert len(status_field) == 1, 'Status field not found'
status_field_id = status_field[0]['id']
status_field_option_ids = {
option['name']: option['id']
for option in status_field[0]['options']
}
if 'Incomplete' not in status_field_option_ids:
raise Exception('Incomplete status field option not found')
if 'Complete' not in status_field_option_ids:
raise Exception('Complete status field option not found')
draft_issues = project['items']['nodes']
# Generate the report markdown for the project draft issues
for langid, lang in available_languages.items():
markdown = ''
status = ''
if langid in reports:
print(f'Generating report for {lang.name} ({langid})...')
status = 'Incomplete'
for filename, problems in reports[langid].items():
markdown += f'## [{filename}](https://github.com/alliedmodders/sourcemod/blob/master/translations/{langid}/{filename})\n'
added_phrase_warning = False
for report in problems:
if report.file_warning:
markdown += f'**{report.file_warning}**\n'
print(f' {report.file_warning} ({report.filename})')
if report.phrase_warning:
if not added_phrase_warning:
markdown += '| Phrase | Issue |\n| ------- | --------- |\n'
added_phrase_warning = True
markdown += f'| `{report.phrase_key}` | {report.phrase_warning} |\n'
print(
f' {report.filename}: "{report.phrase_key}" -> {report.phrase_warning}'
)
markdown += '\n'
else:
status = 'Complete'
markdown = 'No issues found'
print(f'Updating draft issue for {lang.name} ({langid})...')
issue = next(
(x for x in draft_issues if x['content']['title'] == lang.name), None)
if issue is None:
issue = githubgql.add_draft_issue(project_id, lang.name, markdown)
else:
githubgql.update_draft_issue(issue['content']['id'], lang.name,
markdown)
githubgql.update_item_field_value_option(project_id, issue['id'],
status_field_id,
status_field_option_ids[status])

View File

@ -0,0 +1,156 @@
# Copyright (c) 2023 Peace-Maker
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
class GithubGQL:
def __init__(self, token):
transport = AIOHTTPTransport(
url="https://api.github.com/graphql",
headers={"Authorization": f"Bearer {token}"})
self.client = Client(transport=transport)
def get_project(self, orga, project_number):
query = gql("""
query getProjectId($login: String!, $projectNumber: Int!){
organization(login: $login) {
projectV2(number: $projectNumber) {
id
fields(first: 100) {
nodes {
... on ProjectV2Field {
id
name
}
... on ProjectV2SingleSelectField {
id
name
options {
id
name
}
}
... on ProjectV2SingleSelectField {
id
name
options {
id
name
}
}
}
}
items(first: 100) {
nodes {
id
fieldValues(first: 100) {
nodes {
... on ProjectV2ItemFieldTextValue {
text
field {
... on ProjectV2FieldCommon {
name
}
}
}
... on ProjectV2ItemFieldSingleSelectValue {
name
field {
... on ProjectV2FieldCommon {
name
}
}
}
}
}
content {
... on DraftIssue {
id
title
}
}
}
}
}
}
}
""")
variables = {"login": orga, "projectNumber": project_number}
result = self.client.execute(query, variable_values=variables)
# TODO: Handle pagination
return result["organization"]["projectV2"]
def add_draft_issue(self, project_id, title, body):
query = gql("""
mutation addDraftIssue($projectId: ID!, $title: String!, $body: String!){
addProjectV2DraftIssue(
input: {
projectId: $projectId,
title: $title,
body: $body
}
) {
projectItem {
id
content {
... on DraftIssue {
id
}
}
}
}
}
""")
variables = {"projectId": project_id, "title": title, "body": body}
result = self.client.execute(query, variable_values=variables)
return result["addProjectV2DraftIssue"]["projectItem"]
def update_draft_issue(self, issue_id, title, body):
query = gql("""
mutation updateDraftIssue($issueId: ID!, $title: String!, $body: String!){
updateProjectV2DraftIssue(
input: {
draftIssueId: $issueId,
title: $title,
body: $body
}
) {
draftIssue {
id
}
}
}
""")
variables = {"issueId": issue_id, "title": title, "body": body}
result = self.client.execute(query, variable_values=variables)
return result["updateProjectV2DraftIssue"]["draftIssue"]["id"]
def update_item_field_value_option(self, project_id, item_id, field_id,
option_id):
query = gql("""
mutation updateDraftIssueStatus($projectId: ID!, $itemId: ID!, $fieldId: ID!, $optionId: String!){
updateProjectV2ItemFieldValue(
input: {
projectId: $projectId,
itemId: $itemId,
fieldId: $fieldId,
value: {
singleSelectOptionId: $optionId
}
}
) {
projectV2Item {
id
}
}
}
""")
variables = {
"projectId": project_id,
"itemId": item_id,
"fieldId": field_id,
"optionId": option_id
}
result = self.client.execute(query, variable_values=variables)
return result["updateProjectV2ItemFieldValue"]["projectV2Item"]["id"]

View File

@ -0,0 +1,203 @@
#!/usr/bin/python3
# BSD Zero Clause License
#
# Copyright (C) 2023 by nosoop
#
# Permission to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
# SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
# THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
# OR PERFORMANCE OF THIS SOFTWARE.
# https://gist.github.com/nosoop/8c6ccaec11b1d33340bec8dbc8096658
import collections
import enum
import itertools
class SMCOperation(enum.Enum):
STRING = 1
SUBSECTION_START = 2
SUBSECTION_END = 3
COMMENT = 4
COMMENT_MULTILINE = 5
KEYVALUE = 6
# https://stackoverflow.com/a/70762559
def takewhile_inclusive(predicate, it):
for x in it:
if predicate(x):
yield x
else:
yield x
break
def _is_whitespace(ch):
return ch in (' ', '\t', '\n', '\r')
def _smc_stream_skip_whitespace(stream):
# consumes whitespace and returns the first non-whitespace character if any, or None if EOS
values = tuple(takewhile_inclusive(_is_whitespace, stream))
if not values:
return None
*ws, last = values
if not ws and not _is_whitespace(last):
return last
return last if ws and not _is_whitespace(last) else None
def _smc_stream_extract_multiline_comment(stream):
while True:
yield from itertools.takewhile(lambda ch: ch != '*', stream)
ch = next(stream, None)
if ch == '/':
return
yield '*'
yield ch
_escape_mapping = str.maketrans({
'"': '"',
'n': '\n',
'r': '\r',
't': '\t',
'\\': '\\',
})
def _smc_stream_extract_string(stream):
for ch in stream:
if ch == "\\":
ch = next(stream).translate(_escape_mapping)
elif ch == '"':
return
yield ch
def parse_smc_string(data):
stream = iter(data)
while True:
ch = _smc_stream_skip_whitespace(stream)
if ch is None:
return
elif ch == '"':
# consume until the next quote, then determine if:
# - the string marks the subsection name '{'
# - we have another string to consume, making this a key / value pair
key = ''.join(_smc_stream_extract_string(stream))
ch = _smc_stream_skip_whitespace(stream)
if ch == '{':
yield SMCOperation.SUBSECTION_START, key
elif ch == '"':
value = ''.join(_smc_stream_extract_string(stream))
yield SMCOperation.KEYVALUE, key, value
else:
raise ValueError(
f"Unexpected character {ch.encode('ascii', 'backslashreplace')} after end of string"
)
elif ch == '}':
yield SMCOperation.SUBSECTION_END, None
elif ch == '/':
ch = next(stream)
if ch == '/':
# single line comment: consume until the end of the line
value = ''.join(
itertools.takewhile(lambda ch: ch != '\n', stream))
yield SMCOperation.COMMENT, value
elif ch == '*':
# multi line comment: consume until the sequence '*/' is reached
value = ''.join(_smc_stream_extract_multiline_comment(stream))
yield SMCOperation.COMMENT_MULTILINE, value
else:
raise ValueError(
f"Unexpected character {ch.encode('ascii', 'backslashreplace')} at start of comment"
)
else:
raise ValueError(
f"Unexpected character {ch.encode('ascii', 'backslashreplace')}"
)
class MultiKeyDict(collections.defaultdict):
# a dict that supports supports one-to-many mappings
# init by passing keys pointing to a list of values
def __init__(self, *args, **kwargs):
super().__init__(list, *args, **kwargs)
# yields a key, value pair for every array item associated with a key
def items(self):
yield from ((k, iv) for k, v in super().items() for iv in v)
def smc_string_to_dict(data):
# returns a multidict instance
root_node = MultiKeyDict()
contexts = [root_node]
for event, *info in parse_smc_string(data):
if event == SMCOperation.SUBSECTION_START:
key, *_ = info
subkey = MultiKeyDict()
contexts[-1][key].append(subkey)
contexts.append(subkey)
elif event == SMCOperation.SUBSECTION_END:
contexts.pop()
elif event == SMCOperation.KEYVALUE:
key, value = info
contexts[-1][key].append(value)
return root_node
def main():
SMC_STRING = """
"thing"
{
// this is a comment node
"key" "value"
"subthing"
{
// and another
"subthing key" "subthing value"
"subthing key" "duplicate key value"
}
"subthing"
{
"duplicate subthing" "yes"
}
/**
* this is a multiline comment node
*/
"another key" "another value"
}
"""
# sections = []
# for event, *data in parse_smc_string(SMC_STRING):
# print(event, data, tuple(sections))
# if event == SMCOperation.SUBSECTION_START:
# section, *_ = data
# sections.append(section)
# elif event == SMCOperation.SUBSECTION_END:
# sections.pop()
# assert(not sections)
import json
import pathlib
# print(json.dumps(smc_string_to_dict(SMC_STRING), indent=4))
for f in pathlib.Path('translations').rglob('*.txt'):
print(f)
print(json.dumps(smc_string_to_dict(f.read_text('utf8')), indent = 4))
if __name__ == "__main__":
main()

View File

@ -0,0 +1,33 @@
"Phrases"
{
"SM help commands"
{
"ar" "مساعدة SourceMod: معلومات الامر"
}
"No description available"
{
"ar" "لا وصف موجود"
}
"No commands available"
{
"ar" "لا اوامر موجودة"
}
"Type sm_help to see more"
{
"ar" "اكتب sm_help {1} لترى المزيد من الاوامر"
}
"Entries n - m in page k"
{
"ar" "جزء {1} - {2} في الصفحة {3} "
}
"No matching results found"
{
"ar" "لم يتم العثور على نتائج مطابقه"
}
}

View File

@ -0,0 +1,23 @@
"Phrases"
{
"Admin Menu"
{
"ar" "قائمة المدير"
}
"Player Commands"
{
"ar" "اوامر اللاعبين"
}
"Server Commands"
{
"ar" "اوامر السيرفر"
}
"Voting Commands"
{
"ar" "اوامر التصويت"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Flooding the server"
{
"ar" "انت تفيض السيرفر!"
}
}

View File

@ -0,0 +1,63 @@
"Phrases"
{
"Ban player"
{
"ar" "لاعب الحظر"
}
"Ban reason"
{
"ar" "سبب الحظر"
}
"Permabanned player"
{
"ar" "لاعب فرض حظر دائم \"{1}\""
}
"Permabanned player reason"
{
"ar" "لاعب فرض حظر دائم \"{1}\" (السبب: {2})."
}
"Banned player"
{
"ar" " حظرت \"{1}\" لمدة \"{2}\" دقيقة"
}
"Banned player reason"
{
"ar" "لاعب المحظورة \"{1}\" ل{2} دقيقة (السبب: {3})"
}
"Removed bans matching"
{
"ar" "يحظر إزالة مطابقة التصفية: {1}"
}
"Ban added"
{
"ar" "تمت إضافة حظر"
}
"Cannot ban that IP"
{
"ar" "لا يمكنك حظر عنوان IP"
}
"Custom ban reason explanation"
{
"ar" "أكتب سبب الحظر. إستعمل {1} للإلغاء."
}
"AbortBan applied successfully"
{
"ar" "تم إلغاء الحظر"
}
"AbortBan not waiting for custom reason"
{
"ar" "لا حظر ليتم الإلغاء"
}
}

View File

@ -0,0 +1,73 @@
"Phrases"
{
"Gag/Mute player"
{
"ar" "إحظر الكتابة/التكلم"
}
"Choose Type"
{
"ar" "إختر"
}
"Gagged target"
{
"ar" "ختابة محظورة على {1}"
}
"Ungagged target"
{
"ar" "تم رفع حظرالكتابة على {1}"
}
"Muted target"
{
"ar" "محظور من التكلم {1}"
}
"Unmuted target"
{
"ar" "تم رفع حظرالتكلم على {1}"
}
"Silenced target"
{
"ar" "لاعب ممنوع من التكلم و الكتابة {1}"
}
"Unsilenced target"
{
"ar" "تم رفع حظرالتكلم و الكتابة على {1}"
}
"Mute Player"
{
"ar" "إحظراللاعب من التكلم"
}
"UnMute Player"
{
"ar" "إرفع حظرالتكلم"
}
"Gag Player"
{
"ar" "إحظر الكتابة على اللاعب "
}
"UnGag Player"
{
"ar" "إرفع حظرالكتابة"
}
"Silence Player"
{
"ar" "إمنع اللاعب من التكلم و الكتابة"
}
"UnSilence Player"
{
"ar" "إرفع حظرالتكلم و الكتابة"
}
}

View File

@ -0,0 +1,108 @@
"Phrases"
{
"Timeleft"
{
"ar" "الوقت المتبقي للخريطة: {1}"
}
"Thetime"
{
"ar" "توقيت السيرفر الحالي هو: {1}"
}
"Friendly Fire On"
{
"ar" "النار الصديقة مستعملة"
}
"Friendly Fire Off"
{
"ar" "النار الصديقة موقوفة "
}
"Current Map"
{
"ar" "الخريطة الحالية هي: {1}"
}
"LastRound"
{
"ar" "هذه هي الدورة الأخيرة!!"
}
"NoTimelimit"
{
"ar" "لا وقت محدود للخريطة"
}
"Next Map"
{
"ar" "الخريطة التالية: {1}"
}
"Pending Vote"
{
"ar" "لم يتم التصويت بعد"
}
"WinLimitAppend"
{
"ar" "، أو غير الخريطة بعد فوز فريق دورا واحد"
}
"WinLimit"
{
"ar" "سيتم تغيير الخريطة بعد فوز فريق دورا واحد"
}
"MaxRoundsAppend"
{
"ar" "، أو غير الخريطة بعد دور واحد"
}
"MaxRounds"
{
"ar" "سيتم تغيير الخريطة بعد دور واحد"
}
"FragLimitAppend"
{
"ar" "، أو عند قتل لاعب."
}
"FragLimit"
{
"ar" "سيتم تغيير الماپة بعد ميو لاعب ما."
}
"WinLimitAppendPlural"
{
"ar" "، أو غير الخريطة بعد فوز فريق {1} دورة"
}
"WinLimitPlural"
{
"ar" "سيتم تغيير الخريطة بعد فوز فريق ب{1} دور."
}
"MaxRoundsAppendPlural"
{
"ar" "، أو غير الخريطة بعد {1} دورة"
}
"MaxRoundsPlural"
{
"ar" "سيتم تغيير الخريطة بعد {1} دورة"
}
"FragLimitAppendPlural"
{
"ar" "، أو عند قتل أكثر من {1} لاعب."
}
"FragLimitPlural"
{
"ar" "سيتم تغير الخريطة بعد قتل {1}."
}
}

View File

@ -0,0 +1,93 @@
"Phrases"
{
"Initiate Vote"
{
"ar" "أبدأ التصويت: {1}"
}
"Initiated Vote Map"
{
"ar" "إبتدأ تصويت المابة "
}
"Initiated Vote Kick"
{
"ar" "تصويت الطرد المبتدأ ضد {1}"
}
"Initiated Vote Ban"
{
"ar" "تصويت الحظر المبتدأ ضد {1}"
}
"Map Vote"
{
"ar" "تصويت المابة {1}:"
}
"Change Map To"
{
"ar" "غير المابة ل: {1} ؟"
}
"Votekick Player"
{
"ar" "إطرد اللاعب {1} ؟"
}
"Voteban Player"
{
"ar" "إحظر اللعب على {1} ؟"
}
"Vote Successful"
{
"ar" "تصويت ناجح. (تم الحصول على {1}%% من {2})"
}
"Vote Failed"
{
"ar" "فشل التصويت. {1}%% تصويت لازم. (حصل {2}%% من {3} تصويتات)"
}
"Vote End"
{
"ar" "الجواب ل {1} هو: {2}"
}
"Kick vote"
{
"ar" "تصويت الطرد"
}
"Ban vote"
{
"ar" "تصويت الحظر"
}
"Map vote"
{
"ar" "تصويت المابة"
}
"Confirm Vote"
{
"ar" "أكد التصويت"
}
"Map Vote In Use"
{
"ar" "تصويت المابة في إستعمال"
}
"Please select a map"
{
"ar" "من فضلك إختر"
}
"Start the Vote"
{
"ar" "إبدأ التصويت"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Cookie List"
{
"ar" "لائحة الكوكيز "
}
"Printing Cookie List"
{
"ar" "يتم عرض لائحة الكوكيز إلى وحدة التحكم"
}
"Cookie not Found"
{
"ar" "لم يتم العثور على الكوكي {1}"
}
"Cookie Value"
{
"ar" "{1} قيمة هي {2}"
}
"Protected Cookie"
{
"ar" "لا يمكن تغيروحدة الكوكي المحمية \"{1}\""
}
"Cookie Changed Value"
{
"ar" "تم تغيير الكوكيز من \"{1}\" إلى \"{2}\""
}
"No Console"
{
"ar" "لا يمكن عرض التعديلات في وحدت التحكم"
}
"Choose Option"
{
"ar" "إختر إختيارا :"
}
"Client Settings"
{
"ar" "تعديلات اللاعب"
}
}

View File

@ -0,0 +1,253 @@
"Phrases"
{
"Yes"
{
"ar" "نعم"
}
"No"
{
"ar" "لا"
}
"No matching client"
{
"ar" "لم يتم العثور على لاعب مطابق."
}
"No matching clients"
{
"ar" "لم يتم العثور على لاعبين مطابقين."
}
"More than one client matches"
{
"ar" "أكثر من لاعب يطابق الأمر المعطى \"{1}\""
}
"More than one client matched"
{
"ar" "أكثر من لاعب يطابق الأمر المعطى"
}
"Player no longer available"
{
"ar" "اللاعب الذي إخترت غير موجود."
}
"Kick player"
{
"ar" "إطرد اللاعب"
}
"Kicked by admin"
{
"ar" "طرد من قبل الآدمن"
}
"Changing map"
{
"ar" "يتم تغيير المابة ل {1}..."
}
"Map was not found"
{
"ar" "لم يتم العثور على المابة {1}."
}
"Unable to target"
{
"ar" "لا يمكن الإسعمال على هذا اللاعب."
}
"Name"
{
"ar" "الإسم"
}
"Access"
{
"ar" "إذن الدخول"
}
"See console for output"
{
"ar" "أنظر ال'console' للمعلومات."
}
"Cannot target bot"
{
"ar" "لا يمكنك تنفيذ العمليةعلى لاعب(إلكتروني)."
}
"Unable to find cvar"
{
"ar" "لا يمكن العثور على الإعداد: {1}"
}
"No access to cvar"
{
"ar" "ليس لديك الحق لتمارس الأمر."
}
"Value of cvar"
{
"ar" "قيمت الإعداد \"{1}\": \"{2}\""
}
"Cvar changed"
{
"ar" "تم تغير التعديل \"{1}\" إلى \"{2}\""
}
"Config not found"
{
"ar" "لم يتم العثور على ملف التعديلات {1}"
}
"Executed config"
{
"ar" "التعديلات المستعملة {1}."
}
"Admin cache refreshed"
{
"ar" "تم تنعيش تخزين الأدمن ."
}
"Invalid Amount"
{
"ar" "الحجم المحدد غير مسموح"
}
"Cannot be performed on dead"
{
"ar" "لا يمكن تنفيد العملية على لاعب ميت \"{1}\""
}
"Player has since died"
{
"ar" "لا يمكن تنفيد العملية على اللاعب، منذ موته."
}
"Vote in Progress"
{
"ar" "هناك تصويت حاليا."
}
"Vote Not In Progress"
{
"ar" "لا يوجد هناك تصويت حاليا."
}
"Cancelled Vote"
{
"ar" "الغى التصويت."
}
"Cancel vote"
{
"ar" "تم إلغاء التصويت"
}
"Vote Select"
{
"ar" "{1} إختار {2}."
}
"No Votes Cast"
{
"ar" "لم يتم تلقي أي تصويت."
}
"Vote Delay Minutes"
{
"ar" "يجب عليك الإنتظار {1} دقائق حتى إعادت تصويت آخر."
}
"Vote Delay Seconds"
{
"ar" "يجب عليك الإنتظار {1} ثوان حتى إعادت تصويت آخر."
}
"Could not connect to database"
{
"ar" "لم يمكن التوصل بقاعدة البيانات."
}
"Failed to query database"
{
"ar" "لم يمكن استعاد المعلومات من قاعدة البيانات."
}
"Invalid SteamID specified"
{
"ar" "لقد حددة رقم خاطئ(لابد أن يبدء ب STEAM_)"
}
"Reload admins"
{
"ar" "أعد تحميل لائحت الأدمن."
}
"Command is in-game only"
{
"ar" "لا يمكنك من خارج اللعبة."
}
"Target must be dead"
{
"ar" "العملية يمكن إستعمالها على اللاعبين الأموات فقط."
}
"Target must be alive"
{
"ar" "العملية يمكن إستعمالها على اللاعبين الأحياء فقط."
}
"Target is not in game"
{
"ar" "اللاعب ليس بالداخل كاملا."
}
"Played Sound"
{
"ar" "شغل الصوت على اللاعب '{1}'"
}
"Slapped player"
{
"ar" "صفع اللاعب '{1}'"
}
"Slayed player"
{
"ar" "قتل اللاعب '{1}'"
}
"Kicked player"
{
"ar" "إطرد اللاعب '{1}'"
}
"Cannot participate in vote"
{
"ar" "لا يمكنك المشاركة في هذا التصويت."
}
"Cannot change vote"
{
"ar" "لا يمكنك تغيير مجموعتك لهذا التصويت."
}
"On"
{
"ar" "مشغل"
}
"Off"
{
"ar" "مطفأ"
}
}

View File

@ -0,0 +1,88 @@
"Phrases"
{
"No Access"
{
"ar" "ليس لديك صلاحية لهذا الامر"
}
"Back"
{
"ar" "الرجوع"
}
"Next"
{
"ar" "التالي"
}
"Exit"
{
"ar" "الخروج"
}
"Previous"
{
"ar" "السابق"
}
"all players"
{
"ar" "كل اللاعبين"
}
"all humans"
{
"ar" "كل البشر"
}
"all bots"
{
"ar" "كل اللاعبين(الحاسوب)"
}
"all dead players"
{
"ar" "كل اللاعبين الاموات"
}
"all alive players"
{
"ar" "كل اللاعبين الاحياء"
}
"_s"
{
"ar" "{1}"
}
"all spectators"
{
"ar" "كل المشاهدين"
}
"Vote Count"
{
"ar" "تسويتات: {1}/{2}، {3} باقية"
}
"Voted For"
{
"ar" "{1} صوت ل {2}"
}
"Changed Vote"
{
"ar" "{1} غير تصويته ل {2}"
}
"No Vote"
{
"ar" "لا تصويت"
}
"Name Reserved"
{
"ar" "إسمك محجوز؛ عدل رقم سري لإتسعماله."
}
}

View File

@ -0,0 +1,168 @@
"Phrases"
{
"Burn player"
{
"ar" "أحرق اللاعب"
}
"FireBomb player"
{
"ar" "فجر اللاعب"
}
"Freeze player"
{
"ar" "جمد اللاعب"
}
"FreezeBomb player"
{
"ar" "جمد و فجر اللاعب"
}
"TimeBomb player"
{
"ar" "حدد وقت إنفجار اللاعب"
}
"Beacon player"
{
"ar" "حدد موقع اللاعب"
}
"NoClip player"
{
"ar" "حرر اللاعب"
}
"Blind player"
{
"ar" "إجعل اللاعب أعمى"
}
"Drug player"
{
"ar" "خدر اللاعب"
}
"Gravity player"
{
"ar" "مارس الجاجبية على اللاعب"
}
"Blind amount"
{
"ar" "مستوى العمى"
}
"Fully blind"
{
"ar" "أعمى بالكامل"
}
"Half blind"
{
"ar" "نصف أعمى"
}
"No blind"
{
"ar" "لا أعمى"
}
"Gravity amount"
{
"ar" "جاذبية؟"
}
"Gravity Very High"
{
"ar" "جاذبية جد عالية"
}
"Gravity High"
{
"ar" "جاذبية عالية"
}
"Gravity Normal"
{
"ar" "جاذبية عادية"
}
"Gravity Low"
{
"ar" "جاذبية خفيفة"
}
"Gravity Very Low"
{
"ar" "جاذبية جد خفيفة"
}
"Set target on fire"
{
"ar" "احرق اللاعب {1}"
}
"Toggled FireBomb on target"
{
"ar" "مارس الإنفجار على {1}"
}
"Froze target"
{
"ar" "جامد {1}"
}
"Toggled FreezeBomb on target"
{
"ar" "مارس التجميد و الانفجار على {1}"
}
"Toggled beacon on target"
{
"ar" "مارس تحديد الموقع على {1ç"
}
"Toggled TimeBomb on target"
{
"ar" "حدد الإنفجار المبرمج على {1}"
}
"Toggled noclip on target"
{
"ar" "مارس التحرير على {1}"
}
"Toggled drug on target"
{
"ar" "مارس التخدير على {1}"
}
"Set blind on target"
{
"ar" "إجعل اللاعب أعمى {1}"
}
"Set gravity on target"
{
"ar" "إجعل جاذبية اللاعب {1}"
}
"Till Explodes"
{
"ar" "{2} حتى إنفجار {1}"
}
"Unfrozen"
{
"ar" "تم عسك التجميد عنك"
}
"You will be unfrozen"
{
"ar" "سيتم عكس تجميدك في {1} ثوان"
}
}

View File

@ -0,0 +1,98 @@
"Phrases"
{
"Initiated Vote Gravity"
{
"ar" "إبتدء تصويت الجاذبية."
}
"Initiated Vote Burn"
{
"ar" "إبتدء التصويت لحرق {1}."
}
"Initiated Vote Slay"
{
"ar" "إبتدء التصية لقتل {1}."
}
"Initiated Vote Alltalk"
{
"ar" "إبتدء تصويت 'الجميع يتكلم'."
}
"Initiated Vote FF"
{
"ar" "إبتدء تصويت النيران الصديقة."
}
"Gravity Vote"
{
"ar" "تصويت الجاذبية: {1}"
}
"Change Gravity To"
{
"ar" "تغيير الجاذبية إلى {1}؟"
}
"Voteburn player"
{
"ar" "حرق اللاعب {1}؟"
}
"Voteslay Player"
{
"ar" "قتل {1}؟"
}
"Votealltalk Off"
{
"ar" "إيقاف تكلم الجميع؟ {1}"
}
"Votealltalk On"
{
"ar" "إمكان تكلم الجميع؟ {1}"
}
"Voteff Off"
{
"ar" "إيقاف النيران الصديقة؟ {1}"
}
"Voteff On"
{
"ar" "تشغيل النيران الصديقة؟ {1}"
}
"Gravity vote"
{
"ar" "تصويت الجاذبية"
}
"Vote FF"
{
"ar" "تصويت النيران الصديقة"
}
"Burn vote"
{
"ar" "تصويت الإحراق"
}
"Alltalk vote"
{
"ar" "تصويت الجميع يتكلم"
}
"Slay vote"
{
"ar" "تصويت للقتل"
}
"Slayed player"
{
"ar" "قتل اللاعب '{1}'"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Vote Nextmap"
{
"ar" "صوت للخريطة الآتية!"
}
"Nextmap Voting Started"
{
"ar" "إبتدأ التصويت للخريطة الآتية."
}
"Nextmap Voting Finished"
{
"ar" "تم التصويت. الخريطة الآتية هي: {1} (قبل {2}%% من {3} تسويت)."
}
"Current Map Extended"
{
"ar" "تم إطالت وقت الخريطة الحالية(قبل {1}%% من {2} تصويت)."
}
"Extend Map"
{
"ar" "أطل وقت الخريطة الحالية"
}
"Dont Change"
{
"ar" "لا تغير"
}
"Current Map Stays"
{
"ar" "الخريطة الحالية تستأنف! تم التصويت!(قبل {1}%% من {2} تصويت)."
}
"Changed Next Map"
{
"ar" "غير الخريطة الآتية ل\"{1}\"."
}
"Starting Runoff"
{
"ar" "لم تحصل أي خريطة على أكثر من {1} %% تصويت({2} [{3}%%] و {4} [{5}%%])، يتم إعادت التصويت"
}
}

View File

@ -0,0 +1,43 @@
"Phrases"
{
"Next Map"
{
"ar" "الخريطة الآتية: {1}"
}
"Map History"
{
"ar" "تاريخ الخرائط"
}
"Map"
{
"ar" "[الخريطة]"
}
"Started"
{
"ar" "[إبتدء]"
}
"Played Time"
{
"ar" "[الوقت الملعوب]"
}
"Reason"
{
"ar" "[سب الإنهاء]"
}
"Current Map"
{
"ar" "الخريطة الحالية"
}
"ago"
{
"ar" "قبلاً "
}
}

View File

@ -0,0 +1,68 @@
"Phrases"
{
"Already Nominated"
{
"ar" "لقد سمية خريطة مسبقا."
}
"Max Nominations"
{
"ar" "العدد المسموح للتسمية تم وصوله."
}
"Map Already In Vote"
{
"ar" "الخريطة \"{1}\" موجودة مسبقا على لائحت التصويت."
}
"Map Inserted"
{
"ar" "تم إضافة الخريطة \"{1}\" إلى لائحت التصويث."
}
"Map Already Nominated"
{
"ar" "الخريطة التي إخترت تم تسميها مسبقا."
}
"Map Nominated"
{
"ar" "{1} سمى {2}."
}
"Map Nomination Changed"
{
"ar" "{1} غير تسميه ل\"{1}\"."
}
"Nominate Title"
{
"ar" "سم خريطة:"
}
"Can't Nominate Current Map"
{
"ar" "الخريطة التي أخترت هي الحالية ولا يمكن تسميهتها."
}
"Map in Exclude List"
{
"ar" "الخريطة التي إخترت تم لعبها من قبل ولا يمكن تسميتها"
}
"Current Map"
{
"ar" "الخريطة الحالية."
}
"Recently Played"
{
"ar" "تم اللعب فيها قبل قليل."
}
"Nominated"
{
"ar" "أختيرت"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Slap player"
{
"ar" "صفع اللاعب"
}
"Slap damage"
{
"ar" "ضرر الصفعة"
}
"Slay player"
{
"ar" "قتل اللاعب"
}
"Slapped target"
{
"ar" "صفع {1}."
}
"Slayed target"
{
"ar" "تم قتل {1}"
}
"Name changed"
{
"ar" "آدمن غير إسمك"
}
"Renamed target"
{
"ar" "غير إسم {1}"
}
"Rename player"
{
"ar" "غير إسم اللاعب"
}
"Dead Player Rename"
{
"ar" "{1} سيتم تغيير إسمه الدور الآتي."
}
}

View File

@ -0,0 +1,128 @@
"Phrases"
{
"Unable to find cvar"
{
"ar" "لم يتم العثور على الإعداد: {1}"
}
"No access to cvar"
{
"ar" "ليس لك الحق لإسعمال هذا الإعداد."
}
"Value of cvar"
{
"ar" "قيمة الإعداد \"{1}\": \"{2}\""
}
"Cvar changed"
{
"ar" "غير ال'cvar' من \"{1}\" إلى \"{2}\"."
}
"Config not found"
{
"ar" "لم يتم العثور على ملف الأعدادات {1}."
}
"Executed config"
{
"ar" "شغل الإعداد \"{1}\"."
}
"Permabanned player"
{
"ar" "حضر الاعب \"{1}\" من الدخول أبديا."
}
"Permabanned player reason"
{
"ar" "حضر الاعب \"{1}\" من الدخول أبديا(السبب: {1})."
}
"Banned player"
{
"ar" "حظر اللاعب \"{1}\" لمدت {2} دقائق."
}
"Banned player reason"
{
"ar" "حظر اللاعب \"{1}\" لمدت {2} دقائق(السبب: {3})."
}
"Removed bans matching"
{
"ar" "تم حذف الأحظار المطابقة: {1}"
}
"Ban added"
{
"ar" "تم إضافة الحظر."
}
"Admin cache refreshed"
{
"ar" "تم إنعاش ترخيصات الآدمن."
}
"Identify player"
{
"ar" "تعريف اللاعب"
}
"Choose Map"
{
"ar" "إختر خريطة"
}
"Exec CFG"
{
"ar" "إستعمل ملف إعداد"
}
"Admin logged in as"
{
"ar" "\"{1}\" دخل ك\"{2}\" بالترخيص: {3}"
}
"Admin logged in anon"
{
"ar" "\"{1}\" لديه ترخيص: {2}"
}
"Player is not an admin"
{
"ar" "\"{1}\" ليس بآدمن."
}
"Player is an admin"
{
"ar" "\"{1}\" هو آدمن."
}
"Username"
{
"ar" "إسم المستخدم"
}
"Kicked target"
{
"ar" "طرد {1}"
}
"Admin access"
{
"ar" "ترخيص للآدمن"
}
"Cvar is now protected"
{
"ar" "تم تحصين ال'cvar' \"{1}\"."
}
"Kicked target reason"
{
"ar" "طرد {1} (السبب: {2})."
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Slot reserved"
{
"ar" "تم إلقاءك لمكان محجوز."
}
}

View File

@ -0,0 +1,103 @@
"Phrases"
{
"Rock The Vote"
{
"ar" "عجل التصويت:"
}
"RTV Not Allowed"
{
"ar" "لا يمكن التصويت بعد."
}
"RTV Started"
{
"ar" "لقد تم بدأ التصويت مسبقا."
}
"RTV Ended"
{
"ar" "لقد تم التصويت. لا يمكنك إختيار أو تسمية خريطة."
}
"Already Voted"
{
"ar" "لقد أردت التصويت مسبقا!"
}
"Minimal Players Not Met"
{
"ar" "عدد اللاعبين المطليب غير موجود."
}
"Map Already In Vote"
{
"ar" "تم إختيار الخريطة '{1}' مسبقا."
}
"Map Inserted"
{
"ar" "تم إضافت الخريطة '{1}' إلى التصويت."
}
"RTV Requested"
{
"ar" "{1} يريد أن يبدأ التصويت.({2} تصويت. {3} لازمة)"
}
"RTV Vote Ready"
{
"ar" "يتم تعجيل التصويت!"
}
"Don't Change"
{
"ar" "إستئناف الخريطة الحالية"
}
"Already Nominated"
{
"ar" "لقد إخترت خريطة مسبقا."
}
"Max Nominations"
{
"ar" "تم الوصول إلى العدد المحدود للإختيار."
}
"Selected Map"
{
"ar" "{1} إختار {2}"
}
"No Votes"
{
"ar" "لا تصويت. يتم إستئناف الخريطة الحالية."
}
"Current Map Stays"
{
"ar" "الخريطة الحالية تستأنف! لقد أستعمل التصويت!"
}
"Changing Maps"
{
"ar" "لقد أردت التصويت مسبقا.({1} تصويت، {1} لازمة)"
}
"Map Already Nominated"
{
"ar" "الخريطة التي أخترت تم إختيارها مسبقا."
}
"Map Nominated"
{
"ar" "{1} إختار الخريطة {2} للتصويت."
}
"Nominate Title"
{
"ar" "سم الخريطة."
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Played sound to target"
{
"ar" "شغل الصوت ل{1}"
}
}

View File

@ -0,0 +1,78 @@
"Phrases"
{
"Invalid authtype"
{
"ar" "يجب أن يتم الترخيص بإستعمال 'steam'، 'الإسم' أو 'ip'."
}
"Invalid immunity"
{
"ar" "يجب أن تكون الحصانة عدد صحيح."
}
"SQL Admin already exists"
{
"ar" "هناك آدمن مسبقا بنفس الترخيص المعطى."
}
"SQL Admin added"
{
"ar" "تمت إضافة الآدمن بنجاح."
}
"SQL Admin deleted"
{
"ar" "تم حذف الآدمن بنجاح."
}
"SQL Admin not found"
{
"ar" "لم يتم العثور على الآدمن بالمعطيات المعطى."
}
"SQL Group already exists"
{
"ar" "آدمن بنفس اللإسم موجود مسبقا."
}
"SQL Group added"
{
"ar" "تمت إضافة المجموعة بنجاح."
}
"SQL Group deleted"
{
"ar" "تم حذف المجموعة بنجاح."
}
"SQL Group not found"
{
"ar" "لم يتم العثور على المجموعة بالمعطياة المعطى."
}
"SQL Admin groups reset"
{
"ar" "تمت إعادت مجموعة الآدمن للحالة الأصلية."
}
"SQL Group X not found"
{
"ar" "لم يتم العثور على مجموعة: \"{1}\""
}
"SQL Group X failed to bind"
{
"ar" "تم فشل محاولت ربط: \"{1}\""
}
"Added group to user"
{
"ar" "تمت إضافة المجموعة المعطاة للآدمن بنجاح."
}
"Added groups to user"
{
"ar" "تمت إضافة {1} مجموعة معطاة للآدمن بنجاح."
}
}

View File

@ -0,0 +1,33 @@
"Phrases"
{
"SM help commands"
{
"bg" "SM помощни команди"
}
"No description available"
{
"bg" "Няма налично описание"
}
"No commands available"
{
"bg" "Няма налични команди"
}
"Type sm_help to see more"
{
"bg" "Напишете sm_help {1}, за да видите още команди"
}
"Entries n - m in page k"
{
"bg" "Резултати {1} - {2} на страница {3} "
}
"No matching results found"
{
"bg" "Не са намерени резултати по дадените критерии"
}
}

View File

@ -0,0 +1,23 @@
"Phrases"
{
"Admin Menu"
{
"bg" "Администраторско меню"
}
"Player Commands"
{
"bg" "Клиентски команди"
}
"Server Commands"
{
"bg" "Сървърни команди"
}
"Voting Commands"
{
"bg" "Команди за гласуване"
}
}

View File

@ -0,0 +1,3 @@
"Phrases"
{
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Ban player"
{
"bg" "Блокиране на играча"
}
"Ban reason"
{
"bg" "Причина за блокиране"
}
"Permabanned player"
{
"bg" "Играчът {1} е блокиран за постоянно."
}
"Permabanned player reason"
{
"bg" "Играчът {1} е блокиран за постоянно. (причина: {2}."
}
"Banned player"
{
"bg" "Играчът {1} е блокиран за {2} минути."
}
"Banned player reason"
{
"bg" "Играчът {1} е блокиран за {2} минути (причина: {3})."
}
"Removed bans matching"
{
"bg" "Премахнатите забрани отговарят на филтъра: {1}"
}
"Ban added"
{
"bg" "Забраната беше добавена."
}
"Cannot ban that IP"
{
"bg" "Не можете да блокирате този IP адрес."
}
}

View File

@ -0,0 +1,18 @@
"Phrases"
{
"Choose Type"
{
"bg" "Избиране на тип"
}
"Silenced target"
{
"bg" "{1} е заглушен."
}
"Unsilenced target"
{
"bg" "{1} вече не е заглушен."
}
}

View File

@ -0,0 +1,108 @@
"Phrases"
{
"Timeleft"
{
"bg" "Време, оставащо от картата:"
}
"Thetime"
{
"bg" "Текущото сървърно време е {1}"
}
"Friendly Fire On"
{
"bg" "Приятелският огън е включен."
}
"Friendly Fire Off"
{
"bg" "Приятелският огън е изключен."
}
"Current Map"
{
"bg" "Текущата карта е {1}."
}
"LastRound"
{
"bg" "Това е последният рунд!"
}
"NoTimelimit"
{
"bg" "Няма ограничение на времето за картата"
}
"Next Map"
{
"bg" "Следваща карта: {1}"
}
"Pending Vote"
{
"bg" "Гласуване в очакване"
}
"WinLimitAppend"
{
"bg" " или да се смени картата, след като отбор спечели един рунд"
}
"WinLimit"
{
"bg" "Картата ще се смени, след като отбор спечели един рунд"
}
"MaxRoundsAppend"
{
"bg" "или картата ще се смени след още един рунд"
}
"MaxRounds"
{
"bg" "Картата ще се смени след още един рунд"
}
"FragLimitAppend"
{
"bg" "или да се смени картата, след като играч достигне едно убийство"
}
"FragLimit"
{
"bg" "Картата ще се смени, след като играч достигне едно убийство"
}
"WinLimitAppendPlural"
{
"bg" "или да се смени картата, след като отбор спечели {1} рунда"
}
"WinLimitPlural"
{
"bg" "Картата ще се смени, след като отбор спечели {1} рунда"
}
"MaxRoundsAppendPlural"
{
"bg" "или картата ще се смени след още {1} рунда"
}
"MaxRoundsPlural"
{
"bg" "Картата ще се смени след още {1} рунда"
}
"FragLimitAppendPlural"
{
"bg" "или да се смени картата, след като играч достигне {1} убийства"
}
"FragLimitPlural"
{
"bg" "Картата ще се смени, след като играч достигне {1} убийства"
}
}

View File

@ -0,0 +1,63 @@
"Phrases"
{
"Map Vote"
{
"bg" "Гласуване за карта: {1}"
}
"Change Map To"
{
"bg" "Да се смени ли картата на {1}?"
}
"Votekick Player"
{
"bg" "Да бъде ли изритан {1}?"
}
"Voteban Player"
{
"bg" "Да бъде ли блокиран {1}?"
}
"Vote Successful"
{
"bg" "Гласуването е успешно. {Получени са {1}%% от {2} гласа)"
}
"Vote Failed"
{
"bg" "Гласуването се провали. {1}%% гласа са нужни. (Получени са {2}%% от {3} гласа)"
}
"Vote End"
{
"bg" "Отговорът на {1} е: {2}."
}
"Kick vote"
{
"bg" "Гласуване за изритване"
}
"Ban vote"
{
"bg" "Забрана на гласуването"
}
"Map vote"
{
"bg" "Гласуване за карта"
}
"Confirm Vote"
{
"bg" "Потвърждаване на гласуването"
}
"Map Vote In Use"
{
"bg" "Друг администратор в момента ползва менюто за гласуване за карта."
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Cookie List"
{
"bg" "Sourcemod списък с бисквити"
}
"Printing Cookie List"
{
"bg" "Извеждане на списъка с бисквитите в конзолата"
}
"Cookie not Found"
{
"bg" "Бисквитата \"{1} не може да бъде намерена"
}
"Cookie Value"
{
"bg" "Стойността на {1} е {2}"
}
"Protected Cookie"
{
"bg" "Стойността на защитената бисквита \"{1} не може да бъде променена"
}
"Cookie Changed Value"
{
"bg" "Стойността на бисквитата е сменена от \"{1}\" на \"{2}\""
}
"No Console"
{
"bg" " Менюто за настройките не може да бъде показано в конзолата "
}
"Choose Option"
{
"bg" "Изберете опция"
}
"Client Settings"
{
"bg" "Клиентски настройки"
}
}

View File

@ -0,0 +1,178 @@
"Phrases"
{
"Yes"
{
"bg" "Да"
}
"No"
{
"bg" "Не"
}
"Player no longer available"
{
"bg" "Играчът, когото избрахте, вече не е на разположение."
}
"Kick player"
{
"bg" "Изритване на играч"
}
"Kicked by admin"
{
"bg" "Изритан от администратор"
}
"Changing map"
{
"bg" "Картата се сменя на {1}..."
}
"Map was not found"
{
"bg" "Картата {1} не беше намерена."
}
"Unable to target"
{
"bg" "Не можете да изберете този играч."
}
"Name"
{
"bg" "Име"
}
"Access"
{
"bg" "Достъп"
}
"Cannot target bot"
{
"bg" "Тази команда не може да се използва върху бот."
}
"Config not found"
{
"bg" "Конфигурационният файл \"{1} не е намерен."
}
"Executed config"
{
"bg" "Конфигурационният файл \"{1}\" е изпълнен."
}
"Admin cache refreshed"
{
"bg" "Администраторският кеш е обновен"
}
"Cannot be performed on dead"
{
"bg" "Това действие не може да се приложи върху мъртвия играч {1}"
}
"Vote in Progress"
{
"bg" "Вече тече гласуване"
}
"Vote Not In Progress"
{
"bg" "В момента не тече гласуване."
}
"Cancelled Vote"
{
"bg" "Гласуването е прекъснато."
}
"Cancel vote"
{
"bg" "Прекъсване на гласуването"
}
"Vote Select"
{
"bg" "{1} избра {2}. "
}
"Vote Delay Minutes"
{
"bg" "Трябва да изчакате {1} минути преди да започнете ново гласуване."
}
"Vote Delay Seconds"
{
"bg" "Трябва да изчакате {1} секунди преди да започнете ново гласуване."
}
"Could not connect to database"
{
"bg" "Няма връзка с базата от данни."
}
"Reload admins"
{
"bg" "Презареждане на админите"
}
"Command is in-game only"
{
"bg" "Тази команда може да се ползва само по време на игра."
}
"Target must be dead"
{
"bg" "Тази команда може да се използва само върху мъртви играчи."
}
"Target must be alive"
{
"bg" "Тази команда може да се използва само върху живи играчи."
}
"Target is not in game"
{
"bg" "Избраният играч все още не е влязъл напълно в играта."
}
"Slapped player"
{
"bg" "Играчът {1} е шамаросан"
}
"Slayed player"
{
"bg" "Играчът {1} е убит"
}
"Kicked player"
{
"bg" "Играчът {1} е изритан"
}
"Cannot participate in vote"
{
"bg" "Не можете да участвате в това гласуване."
}
"Cannot change vote"
{
"bg" "Не можете да промените избора си в това гласуване."
}
"On"
{
"bg" "Включено"
}
"Off"
{
"bg" "Изключено"
}
}

View File

@ -0,0 +1,83 @@
"Phrases"
{
"No Access"
{
"bg" "Нямате достъп до тази команда"
}
"Back"
{
"bg" "Назад"
}
"Next"
{
"bg" "Напред"
}
"Exit"
{
"bg" "Изход"
}
"Previous"
{
"bg" "Предишен"
}
"all players"
{
"bg" "всички играчи"
}
"all humans"
{
"bg" "всички хора"
}
"all bots"
{
"bg" "всички ботове"
}
"all dead players"
{
"bg" "всички мъртви играчи"
}
"all alive players"
{
"bg" "всички живи играчи"
}
"_s"
{
"bg" "{1}"
}
"all spectators"
{
"bg" "всички наблюдатели"
}
"Vote Count"
{
"bg" "Гласове {1}/{2}, {3} остават"
}
"Voted For"
{
"bg" "{1} гласува за {2}"
}
"Changed Vote"
{
"bg" "{1} промени гласа си на {2}"
}
"No Vote"
{
"bg" "Няма гласуване"
}
}

View File

@ -0,0 +1,78 @@
"Phrases"
{
"Burn player"
{
"bg" "Запалване на играч"
}
"Freeze player"
{
"bg" "Замразяване на играч"
}
"Blind player"
{
"bg" "Заслепяване на играч"
}
"Drug player"
{
"bg" "Дрогиране на играч"
}
"Gravity player"
{
"bg" "Промяна гравитацията на играч"
}
"Fully blind"
{
"bg" "Напълно сляп"
}
"Half blind"
{
"bg" "Наполовина сляп"
}
"No blind"
{
"bg" "Не е сляп"
}
"Gravity amount"
{
"bg" "Гравитация?"
}
"Gravity Very High"
{
"bg" "Много висока гравитация"
}
"Gravity High"
{
"bg" "Висока гравитация"
}
"Gravity Normal"
{
"bg" "Нормална гравитация"
}
"Gravity Low"
{
"bg" "Ниска гравитация"
}
"Gravity Very Low"
{
"bg" "Много ниска гравитация"
}
"Unfrozen"
{
"bg" "Вече не сте замразен"
}
}

View File

@ -0,0 +1,3 @@
"Phrases"
{
}

View File

@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"bg" "Гласувайте за следваща карта!"
}
"Nextmap Voting Started"
{
"bg" "Започна гласуване за следваща карта."
}
"Nextmap Voting Finished"
{
"bg" "Гласуването за карта приключи. Следващата карта ще бъде {1}. (Получени са {2}%% от {3} гласа)"
}
"Current Map Extended"
{
"bg" "Текущата карта беше удължена. (Получени са {1}%% от {2} гласа)"
}
"Extend Map"
{
"bg" "Удължаване на текущата карта"
}
"Dont Change"
{
"bg" "Без промяна"
}
"Current Map Stays"
{
"bg" "Текущата карта продължава! Гласуването приключи! (Получени са {1}%% от {2} гласа)"
}
"Changed Next Map"
{
"bg" "Следващата карта е сменена на \"{1}\"."
}
}

View File

@ -0,0 +1,43 @@
"Phrases"
{
"Next Map"
{
"bg" "Следваща карта: {1}"
}
"Map History"
{
"bg" "История на картите"
}
"Map"
{
"bg" "[Карта]"
}
"Started"
{
"bg" "[Започнатa]"
}
"Played Time"
{
"bg" "[Изиграно време]"
}
"Reason"
{
"bg" "[Причина за приключване]"
}
"Current Map"
{
"bg" "Текуща карта"
}
"ago"
{
"bg" "преди"
}
}

View File

@ -0,0 +1,68 @@
"Phrases"
{
"Already Nominated"
{
"bg" "Вече номинирахте карта."
}
"Max Nominations"
{
"bg" "Максимално позволеният брой номинации беше достигнат."
}
"Map Already In Vote"
{
"bg" "Картата {1} вече е в списъка на номинираните."
}
"Map Inserted"
{
"bg" "Картата {1} е добавена в списъка на номинираните."
}
"Map Already Nominated"
{
"bg" "Картата, която избрахте, вече е номинирана."
}
"Map Nominated"
{
"bg" "{1} номинира {2}"
}
"Map Nomination Changed"
{
"bg" "{1} промени номинацията си на {2}."
}
"Nominate Title"
{
"bg" "Номиниране на карта:"
}
"Can't Nominate Current Map"
{
"bg" "Картата, която избрахте, е текущата карта и тя не може да бъде номинирана"
}
"Map in Exclude List"
{
"bg" "Картата, която избрахте, е играна наскоро и не може да бъде номинирана"
}
"Current Map"
{
"bg" "Текуща карта"
}
"Recently Played"
{
"bg" "Наскоро играна"
}
"Nominated"
{
"bg" "Номинирана"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Slap player"
{
"bg" "Шамаросване на играч"
}
"Slap damage"
{
"bg" "Щети на шамара"
}
"Slay player"
{
"bg" "Убиване на играч"
}
"Slapped target"
{
"bg" "{1} е шамаросан."
}
"Slayed target"
{
"bg" "{1} е убит."
}
"Name changed"
{
"bg" "Администратор Ви смени името."
}
"Renamed target"
{
"bg" "{1} е преименуван."
}
"Rename player"
{
"bg" "Преименуване на играч"
}
"Dead Player Rename"
{
"bg" "{1} ще бъде преименуван следващия рунд."
}
}

View File

@ -0,0 +1,23 @@
"Phrases"
{
"Exec CFG"
{
"bg" "Изпълняване на CFG файл"
}
"Player is an admin"
{
"bg" "\"{1}\" е администратор."
}
"Username"
{
"bg" "Потребителско име"
}
"Admin access"
{
"bg" "Администраторски достъп"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Slot reserved"
{
"bg" "Изхвърлен сте поради наличието на резервиран слот"
}
}

View File

@ -0,0 +1,3 @@
"Phrases"
{
}

View File

@ -0,0 +1,3 @@
"Phrases"
{
}

View File

@ -0,0 +1,3 @@
"Phrases"
{
}

View File

@ -0,0 +1,33 @@
"Phrases"
{
"SM help commands"
{
"chi" "SourceMod 帮助: 指令信息"
}
"No description available"
{
"chi" "无详细描述"
}
"No commands available"
{
"chi" "无适用指令"
}
"Type sm_help to see more"
{
"chi" "键入 sm_help {1} 查看更多指令"
}
"Entries n - m in page k"
{
"chi" "条目 {1} - {2} 于第 {3} 页"
}
"No matching results found"
{
"chi" "无匹配结果可寻"
}
}

View File

@ -0,0 +1,23 @@
"Phrases"
{
"Admin Menu"
{
"chi" "管理员菜单"
}
"Player Commands"
{
"chi" "玩家指令"
}
"Server Commands"
{
"chi" "服务器指令"
}
"Voting Commands"
{
"chi" "投票指令"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Flooding the server"
{
"chi" "请勿刷屏!"
}
}

View File

@ -0,0 +1,63 @@
"Phrases"
{
"Ban player"
{
"chi" "封禁玩家"
}
"Ban reason"
{
"chi" "封禁原因"
}
"Permabanned player"
{
"chi" "玩家 \"{1}\" 已被永久封禁."
}
"Permabanned player reason"
{
"chi" "玩家 \"{1}\" 已被永久封禁 (原因: {2})."
}
"Banned player"
{
"chi" "封禁玩家 \"{1}\" {2} 分钟."
}
"Banned player reason"
{
"chi" "封禁玩家 \"{1}\" {2} 分钟 (原因: {3})."
}
"Removed bans matching"
{
"chi" "移除符合条件: {1} 的封禁"
}
"Ban added"
{
"chi" "封禁已添加."
}
"Cannot ban that IP"
{
"chi" "您无法封禁该 IP 地址."
}
"Custom ban reason explanation"
{
"chi" "以聊天信息方式输入理由. 按 {1} 则中止."
}
"AbortBan applied successfully"
{
"chi" "中止封禁."
}
"AbortBan not waiting for custom reason"
{
"chi" "不等待键入封禁理由, 无封禁可中止."
}
}

View File

@ -0,0 +1,73 @@
"Phrases"
{
"Gag/Mute player"
{
"chi" "将玩家禁言/禁声"
}
"Choose Type"
{
"chi" "选择类别"
}
"Gagged target"
{
"chi" "{1} 已被禁言."
}
"Ungagged target"
{
"chi" "{1} 已被解除禁言."
}
"Muted target"
{
"chi" "{1} 已被禁声."
}
"Unmuted target"
{
"chi" "{1} 已被解除禁声."
}
"Silenced target"
{
"chi" "{1} 已被静音."
}
"Unsilenced target"
{
"chi" "{1} 已被解除静音."
}
"Mute Player"
{
"chi" "将玩家禁声"
}
"UnMute Player"
{
"chi" "解除玩家禁声"
}
"Gag Player"
{
"chi" "将玩家禁言"
}
"UnGag Player"
{
"chi" "解除玩家禁言"
}
"Silence Player"
{
"chi" "将玩家禁音"
}
"UnSilence Player"
{
"chi" "解除玩家禁音"
}
}

View File

@ -0,0 +1,108 @@
"Phrases"
{
"Timeleft"
{
"chi" "当前地图剩余时间: "
}
"Thetime"
{
"chi" "当前服务器时间为 {1}"
}
"Friendly Fire On"
{
"chi" "友军伤害已开启"
}
"Friendly Fire Off"
{
"chi" "友军伤害已关闭"
}
"Current Map"
{
"chi" "当前地图为 {1}."
}
"LastRound"
{
"chi" "最后一局了!!"
}
"NoTimelimit"
{
"chi" "当前地图无时间限制"
}
"Next Map"
{
"chi" "下一幅地图: {1}"
}
"Pending Vote"
{
"chi" "投票正在进行中"
}
"WinLimitAppend"
{
"chi" ", 或当某方赢得一局后更换地图"
}
"WinLimit"
{
"chi" "地图将于某方赢得一局后更换"
}
"MaxRoundsAppend"
{
"chi" ", 或再过一局后更换地图"
}
"MaxRounds"
{
"chi" "地图将再过一局后更换"
}
"FragLimitAppend"
{
"chi" ", 或当某玩家杀满一人后更换地图"
}
"FragLimit"
{
"chi" "地图将于某玩家杀满一人后更换"
}
"WinLimitAppendPlural"
{
"chi" ", 或当某方赢得 {1} 局后更换地图"
}
"WinLimitPlural"
{
"chi" "地图将于某方赢得 {1} 局后更换"
}
"MaxRoundsAppendPlural"
{
"chi" ", 或再过 {1} 局后更换地图"
}
"MaxRoundsPlural"
{
"chi" "地图将再过 {1} 局后更换"
}
"FragLimitAppendPlural"
{
"chi" ", 或当某玩家杀满 {1} 人后更换地图"
}
"FragLimitPlural"
{
"chi" "地图将于某玩家杀满 {1} 人后更换"
}
}

View File

@ -0,0 +1,93 @@
"Phrases"
{
"Initiate Vote"
{
"chi" "已启动投票: {1}"
}
"Initiated Vote Map"
{
"chi" "已启动地图投票."
}
"Initiated Vote Kick"
{
"chi" "已启动踢出 {1} 的投票."
}
"Initiated Vote Ban"
{
"chi" "已启动封禁 {1} 的投票."
}
"Map Vote"
{
"chi" "地图投票: {1}"
}
"Change Map To"
{
"chi" "更换地图为 {1}?"
}
"Votekick Player"
{
"chi" "踢出 {1}?"
}
"Voteban Player"
{
"chi" "封禁 {1}?"
}
"Vote Successful"
{
"chi" "投票通过. (同意 {1}%% 总共 {2} 票)"
}
"Vote Failed"
{
"chi" "投票失败. 至少需要 {1}%% 支持. (同意 {2}%% 总共 {3} 票)"
}
"Vote End"
{
"chi" "投票 {1} 的结果为: {2}."
}
"Kick vote"
{
"chi" "踢出投票"
}
"Ban vote"
{
"chi" "封禁投票"
}
"Map vote"
{
"chi" "地图投票"
}
"Confirm Vote"
{
"chi" "确认投票"
}
"Map Vote In Use"
{
"chi" "地图投票正被调用"
}
"Please select a map"
{
"chi" "请选择地图"
}
"Start the Vote"
{
"chi" "开始投票"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Cookie List"
{
"chi" "Sourcemod Cookie 列表"
}
"Printing Cookie List"
{
"chi" "打印 cookie 列表至控制台"
}
"Cookie not Found"
{
"chi" "无法找到 cookie \"{1}\""
}
"Cookie Value"
{
"chi" "{1} 的值为 {2}"
}
"Protected Cookie"
{
"chi" "无法更改受保护 cookie \"{1}\" 的值"
}
"Cookie Changed Value"
{
"chi" "更改 cookie \"{1}\" 的值为 \"{2}\""
}
"No Console"
{
"chi" "无法显示设置菜单至控制台"
}
"Choose Option"
{
"chi" "择取选项"
}
"Client Settings"
{
"chi" "客户端设定"
}
}

View File

@ -0,0 +1,253 @@
"Phrases"
{
"Yes"
{
"chi" "是"
}
"No"
{
"chi" "否"
}
"No matching client"
{
"chi" "未发现匹配的客户端."
}
"No matching clients"
{
"chi" "未发现匹配的客户端."
}
"More than one client matches"
{
"chi" "存在多个符合样式 \"{1}\" 的客户端"
}
"More than one client matched"
{
"chi" "存在多个符合所提样式的客户端."
}
"Player no longer available"
{
"chi" "您选定的玩家已不再适用."
}
"Kick player"
{
"chi" "踢出玩家"
}
"Kicked by admin"
{
"chi" "被管理员踢出"
}
"Changing map"
{
"chi" "更换地图为 {1}..."
}
"Map was not found"
{
"chi" "地图 {1} 未找到."
}
"Unable to target"
{
"chi" "您无法操作该玩家."
}
"Name"
{
"chi" "名称"
}
"Access"
{
"chi" "权限"
}
"See console for output"
{
"chi" "请看控制台输出."
}
"Cannot target bot"
{
"chi" "无法对机器人发出该指令."
}
"Unable to find cvar"
{
"chi" "无法找到 cvar: {1}"
}
"No access to cvar"
{
"chi" "您无权设置该 cvar."
}
"Value of cvar"
{
"chi" "cvar \"{1}\" 值: \"{2}\""
}
"Cvar changed"
{
"chi" "更改 cvar \"{1}\" 为 \"{2}\"."
}
"Config not found"
{
"chi" "配置文件 \"{1}\" 未找到."
}
"Executed config"
{
"chi" "执行配置 \"{1}\"."
}
"Admin cache refreshed"
{
"chi" "管理员缓存已被刷新."
}
"Invalid Amount"
{
"chi" "指定数量无效"
}
"Cannot be performed on dead"
{
"chi" "该操作无法在暂时“死亡”的客户端 \"{1}\" 上生效"
}
"Player has since died"
{
"chi" "操作无法执行, 玩家已死亡."
}
"Vote in Progress"
{
"chi" "已有投票在进行中."
}
"Vote Not In Progress"
{
"chi" "当前无投票进行."
}
"Cancelled Vote"
{
"chi" "投票已取消."
}
"Cancel vote"
{
"chi" "取消投票"
}
"Vote Select"
{
"chi" "{1} 选了 {2}."
}
"No Votes Cast"
{
"chi" "无投票发起."
}
"Vote Delay Minutes"
{
"chi" "您必须再等 {1} 分钟后才能发起新一轮投票."
}
"Vote Delay Seconds"
{
"chi" "您必须再等 {1} 秒钟后才能发起新一轮投票."
}
"Could not connect to database"
{
"chi" "无法连接至该数据库."
}
"Failed to query database"
{
"chi" "查询数据库失败."
}
"Invalid SteamID specified"
{
"chi" "您指定了一个无效 Steam ID (有效格式须以 'STEAM_:' 开头)."
}
"Reload admins"
{
"chi" "重载管理员"
}
"Command is in-game only"
{
"chi" "该指令只能在游戏界面中使用."
}
"Target must be dead"
{
"chi" "该指令只能用于已死玩家."
}
"Target must be alive"
{
"chi" "该指令只能用于活人玩家."
}
"Target is not in game"
{
"chi" "指定玩家尚未完全进入游戏."
}
"Played Sound"
{
"chi" "已播放声音给玩家 '{1}'"
}
"Slapped player"
{
"chi" "已拍打玩家 '{1}'"
}
"Slayed player"
{
"chi" "已处死玩家 '{1}'"
}
"Kicked player"
{
"chi" "已踢出玩家 '{1}'"
}
"Cannot participate in vote"
{
"chi" "您无法参与该项投票."
}
"Cannot change vote"
{
"chi" "您无法改变对该项投票作出的选择."
}
"On"
{
"chi" "开"
}
"Off"
{
"chi" "关"
}
}

View File

@ -0,0 +1,88 @@
"Phrases"
{
"No Access"
{
"chi" "您无权使用该指令"
}
"Back"
{
"chi" "返回"
}
"Next"
{
"chi" "下一页"
}
"Exit"
{
"chi" "退出"
}
"Previous"
{
"chi" "上一页"
}
"all players"
{
"chi" "全体玩家"
}
"all humans"
{
"chi" "全体真人"
}
"all bots"
{
"chi" "全体机器人"
}
"all dead players"
{
"chi" "全体已死玩家"
}
"all alive players"
{
"chi" "全体活人玩家"
}
"_s"
{
"chi" "{1}"
}
"all spectators"
{
"chi" "所有旁观者"
}
"Vote Count"
{
"chi" "投票计数:{1}/{2},剩余{3}人"
}
"Voted For"
{
"chi" "{1}投票选择了{2}"
}
"Changed Vote"
{
"chi" "{1} 已更改其投票为 {2} "
}
"No Vote"
{
"chi" "无投票"
}
"Name Reserved"
{
"chi" "你所用名称已由 SourceMod 保留; 请输入相应密码启用."
}
}

View File

@ -0,0 +1,168 @@
"Phrases"
{
"Burn player"
{
"chi" "烧烤玩家"
}
"FireBomb player"
{
"chi" "把玩家变成燃烧弹"
}
"Freeze player"
{
"chi" "冰冻玩家"
}
"FreezeBomb player"
{
"chi" "把玩家变成冰冻弹"
}
"TimeBomb player"
{
"chi" "把玩家变成定时炸弹"
}
"Beacon player"
{
"chi" "点玩家灯"
}
"NoClip player"
{
"chi" "设置穿墙模式"
}
"Blind player"
{
"chi" "把玩家变成瞎子"
}
"Drug player"
{
"chi" "给玩家下毒药"
}
"Gravity player"
{
"chi" "改变玩家重力指标"
}
"Blind amount"
{
"chi" "致盲到何程度?"
}
"Fully blind"
{
"chi" "全盲"
}
"Half blind"
{
"chi" "半盲"
}
"No blind"
{
"chi" "不盲"
}
"Gravity amount"
{
"chi" "改重力指标为多少?"
}
"Gravity Very High"
{
"chi" "超高重力"
}
"Gravity High"
{
"chi" "高重力"
}
"Gravity Normal"
{
"chi" "常规重力"
}
"Gravity Low"
{
"chi" "低重力"
}
"Gravity Very Low"
{
"chi" "超低重力"
}
"Set target on fire"
{
"chi" "将 {1} 点燃."
}
"Toggled FireBomb on target"
{
"chi" "触发 {1} 身上的燃烧弹."
}
"Froze target"
{
"chi" "冰冻了 {1}."
}
"Toggled FreezeBomb on target"
{
"chi" "触发 {1} 身上的冰冻弹."
}
"Toggled beacon on target"
{
"chi" "触发 {1} 身上的灯."
}
"Toggled TimeBomb on target"
{
"chi" "触发 {1} 身上的定时炸弹."
}
"Toggled noclip on target"
{
"chi" "触发{1}的穿墙模式"
}
"Toggled drug on target"
{
"chi" "激活 {1} 身上的毒药."
}
"Set blind on target"
{
"chi" "使 {1} 致盲."
}
"Set gravity on target"
{
"chi" "更改 {1} 的重力指标."
}
"Till Explodes"
{
"chi" "还有 {2} 秒钟 {1} 就要爆炸."
}
"Unfrozen"
{
"chi" "您已被冻结."
}
"You will be unfrozen"
{
"chi" "您将被解冻."
}
}

View File

@ -0,0 +1,98 @@
"Phrases"
{
"Initiated Vote Gravity"
{
"chi" "发起重力投票."
}
"Initiated Vote Burn"
{
"chi" "发起烧烤 {1} 的投票."
}
"Initiated Vote Slay"
{
"chi" "发起处死 {1} 的投票."
}
"Initiated Vote Alltalk"
{
"chi" "发起开启全局语音通讯的投票."
}
"Initiated Vote FF"
{
"chi" "发起友军伤害投票"
}
"Gravity Vote"
{
"chi" "重力投票: {1}"
}
"Change Gravity To"
{
"chi" "更改重力为 {1}?"
}
"Voteburn player"
{
"chi" "烧烤玩家 {1}?"
}
"Voteslay Player"
{
"chi" "处死 {1}?"
}
"Votealltalk Off"
{
"chi" "关闭全局语音通讯? {1}"
}
"Votealltalk On"
{
"chi" "开启全局语音通讯? {1}"
}
"Voteff Off"
{
"chi" "关闭友军伤害? {1}"
}
"Voteff On"
{
"chi" "开启友军伤害? {1}"
}
"Gravity vote"
{
"chi" "重力投票"
}
"Vote FF"
{
"chi" "队友伤害投票"
}
"Burn vote"
{
"chi" "烧烤投票"
}
"Alltalk vote"
{
"chi" "全局语音投票"
}
"Slay vote"
{
"chi" "处死投票"
}
"Slayed player"
{
"chi" "处死了玩家 '{1}'"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Vote Nextmap"
{
"chi" "下一幅地图投票了!"
}
"Nextmap Voting Started"
{
"chi" "下一幅地图投选已开始."
}
"Nextmap Voting Finished"
{
"chi" " 地图投票已结束. 下一幅地图将为 {1}. ( 得票{2}%% , {3}票)"
}
"Current Map Extended"
{
"chi" "当前地图已被延长."
}
"Extend Map"
{
"chi" "延长当前地图"
}
"Dont Change"
{
"chi" "请勿更换"
}
"Current Map Stays"
{
"chi" "当前地图已被延长! 投票显示! (得票 {1}%% 共 {2} 票)"
}
"Changed Next Map"
{
"chi" "更换下一幅地图为 \"{1}\"."
}
"Starting Runoff"
{
"chi" "无地图获得 {1}%% 以上票数 ({2} [{3}%%] & {4} [{5}%%]), 开始决胜轮投票"
}
}

View File

@ -0,0 +1,43 @@
"Phrases"
{
"Next Map"
{
"chi" "下一幅地图: {1}"
}
"Map History"
{
"chi" "地图历史纪录"
}
"Map"
{
"chi" "[地图]"
}
"Started"
{
"chi" "[已启动]"
}
"Played Time"
{
"chi" "[已运行时间]"
}
"Reason"
{
"chi" "[终止理由]"
}
"Current Map"
{
"chi" "当前地图"
}
"ago"
{
"chi" "之前"
}
}

View File

@ -0,0 +1,68 @@
"Phrases"
{
"Already Nominated"
{
"chi" "您已预订了一幅地图."
}
"Max Nominations"
{
"chi" "已达最大预订数."
}
"Map Already In Vote"
{
"chi" "地图 '{1}' 已在预订列表中."
}
"Map Inserted"
{
"chi" "地图 '{1}' 加入了预订列表."
}
"Map Already Nominated"
{
"chi" "您所选的地图已被预订."
}
"Map Nominated"
{
"chi" "{1} 预订了 {2}."
}
"Map Nomination Changed"
{
"chi" "{1} 将其所订改为了 {2}."
}
"Nominate Title"
{
"chi" "预订地图:"
}
"Can't Nominate Current Map"
{
"chi" "您所选的图正是当前地图, 无法预订"
}
"Map in Exclude List"
{
"chi" "您所选的图是最近已玩过的地图, 无法预订"
}
"Current Map"
{
"chi" "当前地图"
}
"Recently Played"
{
"chi" "最近玩过的地图"
}
"Nominated"
{
"chi" "已预订的地图"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Slap player"
{
"chi" "拍打玩家"
}
"Slap damage"
{
"chi" "拍打伤害值"
}
"Slay player"
{
"chi" "处死玩家"
}
"Slapped target"
{
"chi" "拍打了 {1}."
}
"Slayed target"
{
"chi" "处死了 {1}."
}
"Name changed"
{
"chi" "某管理员更改了您的名称"
}
"Renamed target"
{
"chi" "更改了 {1} 的名称."
}
"Rename player"
{
"chi" "玩家更名"
}
"Dead Player Rename"
{
"chi" "{1} 将会在下局被改名"
}
}

View File

@ -0,0 +1,128 @@
"Phrases"
{
"Unable to find cvar"
{
"chi" "无法找到 cvar: {1}"
}
"No access to cvar"
{
"chi" "你无权操作这个键值"
}
"Value of cvar"
{
"chi" "cvar \"{1}\" 的值: \"{2}\""
}
"Cvar changed"
{
"chi" "更改键值 \"{1}\" 为 \"{2}\". "
}
"Config not found"
{
"chi" "配置文件 \"{1}\" 未找到."
}
"Executed config"
{
"chi" "执行配置文件 \"{1}\"."
}
"Permabanned player"
{
"chi" "已永久封禁玩家 \"{1}\"."
}
"Permabanned player reason"
{
"chi" "已永久封禁玩家 \"{1}\" (原因: {2})."
}
"Banned player"
{
"chi" "封禁玩家 \"{1}\" {2} 分钟."
}
"Banned player reason"
{
"chi" "封禁玩家 \"{1}\" {2} 分钟 (原因: {3})."
}
"Removed bans matching"
{
"chi" "移除了符合过滤条件: {1} 的封禁"
}
"Ban added"
{
"chi" "封禁记录已添加."
}
"Admin cache refreshed"
{
"chi" "管理员缓存已刷新."
}
"Identify player"
{
"chi" "玩家认证"
}
"Choose Map"
{
"chi" "选择地图"
}
"Exec CFG"
{
"chi" "执行 CFG"
}
"Admin logged in as"
{
"chi" "\"{1}\" 以 \"{2}\" 身份登录并带权限: {3}"
}
"Admin logged in anon"
{
"chi" "\"{1}\" 具备权限: {2}"
}
"Player is not an admin"
{
"chi" "\"{1}\" 非管理员."
}
"Player is an admin"
{
"chi" "\"{1}\" 为管理员."
}
"Username"
{
"chi" "用户名"
}
"Kicked target"
{
"chi" "已踢出 {1}"
}
"Admin access"
{
"chi" "管理员权限"
}
"Cvar is now protected"
{
"chi" "键值{1}已经受保护"
}
"Kicked target reason"
{
"chi" "踢出 {1} (理由: {2})"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Slot reserved"
{
"chi" "无权使用保留通道而被踢出"
}
}

View File

@ -0,0 +1,103 @@
"Phrases"
{
"Rock The Vote"
{
"chi" "滚动投票:"
}
"RTV Not Allowed"
{
"chi" "当前无法启动RTV (滚动投票)."
}
"RTV Started"
{
"chi" "RTV (滚动投票)已开始."
}
"RTV Ended"
{
"chi" "RTV (滚动投票)已结束, 您无法重来或再预订地图."
}
"Already Voted"
{
"chi" "您已经发起了投票(现有{1}票,仍需{2}票)"
}
"Minimal Players Not Met"
{
"chi" "未达所需人数下限."
}
"Map Already In Vote"
{
"chi" "地图 '{1}' 已在 RTV (滚动投票)列表中."
}
"Map Inserted"
{
"chi" "地图 '{1}' 加入了 RTV (滚动投票)."
}
"RTV Requested"
{
"chi" "{1} 要滚动投票. ({2} 票同意, 至少需要 {3} 票)"
}
"RTV Vote Ready"
{
"chi" "开始滚动投票!"
}
"Don't Change"
{
"chi" "继续运行当前地图"
}
"Already Nominated"
{
"chi" "您已经提名过一张地图"
}
"Max Nominations"
{
"chi" "已达最大预订数"
}
"Selected Map"
{
"chi" "{1} 选了 {2}"
}
"No Votes"
{
"chi" "RTV (滚动投票)无选票投递, 当前地图继续运行."
}
"Current Map Stays"
{
"chi" "当前地图继续运行! 滚动投票已显示!"
}
"Changing Maps"
{
"chi" "更换地图为 {1}! 滚动投票已显示!"
}
"Map Already Nominated"
{
"chi" "您所选的地图已有人预订."
}
"Map Nominated"
{
"chi" "{1} 预订了地图 {2} 加入滚动投票."
}
"Nominate Title"
{
"chi" "预订地图:"
}
}

View File

@ -0,0 +1,28 @@
"Phrases"
{
"Slap player"
{
"chi" "拍打玩家"
}
"Slap damage"
{
"chi" "拍打伤害值"
}
"Slay player"
{
"chi" "处死玩家"
}
"Slapped target"
{
"chi" "拍打了 {1}."
}
"Slayed target"
{
"chi" "处死了 {1}."
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Played sound to target"
{
"chi" "播放音乐给 {1}"
}
}

View File

@ -0,0 +1,78 @@
"Phrases"
{
"Invalid authtype"
{
"chi" "认证方式必须为 'steam', 'name', 或 'ip'."
}
"Invalid immunity"
{
"chi" "免疫级别必须为正整数."
}
"SQL Admin already exists"
{
"chi" "授予该凭证标志的管理员已存在."
}
"SQL Admin added"
{
"chi" "管理员被成功添加进数据库."
}
"SQL Admin deleted"
{
"chi" "管理员被已从数据库中成功删除."
}
"SQL Admin not found"
{
"chi" "授予该凭证标志的管理员未找到."
}
"SQL Group already exists"
{
"chi" "符合该名称的组已存在."
}
"SQL Group added"
{
"chi" "组被成功添加进数据库."
}
"SQL Group deleted"
{
"chi" "组已从数据库中成功删除."
}
"SQL Group not found"
{
"chi" "符合该名称的组未找到."
}
"SQL Admin groups reset"
{
"chi" "管理员组已被成功重置."
}
"SQL Group X not found"
{
"chi" "未找到组: \"{1}\""
}
"SQL Group X failed to bind"
{
"chi" "无法绑定组: \"{1}\""
}
"Added group to user"
{
"chi" "成功添加一个组至指定管理员类别."
}
"Added groups to user"
{
"chi" "成功添加 {1} 个组至指定管理员类别."
}
}

View File

@ -0,0 +1,33 @@
"Phrases"
{
"SM help commands"
{
"cze" "SourceMod Help: Informace o prikazech "
}
"No description available"
{
"cze" "Zadny dostupny popis "
}
"No commands available"
{
"cze" "Zadne dostupne prikazy"
}
"Type sm_help to see more"
{
"cze" "Napiste sm_help {1} pro vice prikazu "
}
"Entries n - m in page k"
{
"cze" "Polozky {1} - {2} na strance {3} "
}
"No matching results found"
{
"cze" "Nebyly nalezeny zadne vhodne vysledky "
}
}

View File

@ -0,0 +1,23 @@
"Phrases"
{
"Admin Menu"
{
"cze" "Admin Menu"
}
"Player Commands"
{
"cze" "Hracske prikazy"
}
"Server Commands"
{
"cze" "Serverove prikazy"
}
"Voting Commands"
{
"cze" "Hlasovani"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Flooding the server"
{
"cze" "Zahlcujete server!"
}
}

View File

@ -0,0 +1,63 @@
"Phrases"
{
"Ban player"
{
"cze" "Zabanovat hrace"
}
"Ban reason"
{
"cze" "Duvod banu"
}
"Permabanned player"
{
"cze" "Permanentne zabanoval hrace \"{1}\"."
}
"Permabanned player reason"
{
"cze" "Permanentne zabanoval hrace \"{1}\" (duvod: {2})"
}
"Banned player"
{
"cze" "Zabanoval hrace \"{1}\" na {2} minut."
}
"Banned player reason"
{
"cze" "Zabanoval hrace \"{1}\" na {2} minut (duvod: {3})."
}
"Removed bans matching"
{
"cze" "Byly odstraneny bany splnujici filter: {1}"
}
"Ban added"
{
"cze" "Ban byl pridan."
}
"Cannot ban that IP"
{
"cze" "Nemuzete zabanovat tuto IP adresu."
}
"Custom ban reason explanation"
{
"cze" "Zadejte duvod zpravou do chatu. Pouzijte {1} pro zruseni."
}
"AbortBan applied successfully"
{
"cze" "Ban zrusen."
}
"AbortBan not waiting for custom reason"
{
"cze" "Neceka se na zadani duvodu banu, zadny ban na zruseni."
}
}

View File

@ -0,0 +1,73 @@
"Phrases"
{
"Gag/Mute player"
{
"cze" "Umlcet hrace"
}
"Choose Type"
{
"cze" "Vyberte typ"
}
"Gagged target"
{
"cze" "Hrac {1} byl odstrihnut od chatu."
}
"Ungagged target"
{
"cze" "Hrac {1} muze znovu psat."
}
"Muted target"
{
"cze" "Hrac {1} byl utisen."
}
"Unmuted target"
{
"cze" "Hrac {1} muze znovu mluvit."
}
"Silenced target"
{
"cze" "Hrac {1} byl uplne umlcen."
}
"Unsilenced target"
{
"cze" "Hrac {1} se muze znovu projevovat."
}
"Mute Player"
{
"cze" "Utisit hrace"
}
"UnMute Player"
{
"cze" "Povolit hraci mluvit"
}
"Gag Player"
{
"cze" "Odstrihnout hrace od chatu"
}
"UnGag Player"
{
"cze" "Povolit hraci psat"
}
"Silence Player"
{
"cze" "Umlcet hrace"
}
"UnSilence Player"
{
"cze" "Povolit hraci mluvit a psat"
}
}

View File

@ -0,0 +1,108 @@
"Phrases"
{
"Timeleft"
{
"cze" "Zbyvajici cas:"
}
"Thetime"
{
"cze" "Soucasny cas je {1}"
}
"Friendly Fire On"
{
"cze" "Friendly Fire je zapnut."
}
"Friendly Fire Off"
{
"cze" "Friendly Fire je vypnut."
}
"Current Map"
{
"cze" "Aktualni mapa je {1}."
}
"LastRound"
{
"cze" "Toto je posledni kolo!!"
}
"NoTimelimit"
{
"cze" "Tato mapa neni casove omezena"
}
"Next Map"
{
"cze" "Pristi mapa: {1}"
}
"Pending Vote"
{
"cze" "Neprobehlo hlasovani"
}
"WinLimitAppend"
{
"cze" ", nebo se mapa zmeni pote, co nejaky tym vyhraje jedno kolo "
}
"WinLimit"
{
"cze" "Mapa se zmeni pote, co nejaky tym vyhraje jedno kolo"
}
"MaxRoundsAppend"
{
"cze" ", nebo se mapa zmeni po pristim kole"
}
"MaxRounds"
{
"cze" "Mapa se zmeni po pristim kole"
}
"FragLimitAppend"
{
"cze" ", nebo se mapa zmeni pote, co hrac dosahne jednoho zabiti"
}
"FragLimit"
{
"cze" "Mapa se zmeni pote, co hrac dosahne jednoho zabiti"
}
"WinLimitAppendPlural"
{
"cze" ", nebo se mapa zmeni pote, co nejaky tym vyhraje {1} kol"
}
"WinLimitPlural"
{
"cze" "Mapa se zmeni pote, co nejaky tym vyhraje {1} kol"
}
"MaxRoundsAppendPlural"
{
"cze" ", nebo se mapa zmeni po {1} kolech"
}
"MaxRoundsPlural"
{
"cze" "Mapa se zmeni po {1} kolech"
}
"FragLimitAppendPlural"
{
"cze" " , nebo se mapa zmeni pote, co hrac dosahne {1} zabiti "
}
"FragLimitPlural"
{
"cze" "Mapa se zmeni pote, co hrac dosahne {1} zabiti"
}
}

View File

@ -0,0 +1,93 @@
"Phrases"
{
"Initiate Vote"
{
"cze" " Zahajil hlasovani: {1}"
}
"Initiated Vote Map"
{
"cze" "Zahajil hlasovani o mape."
}
"Initiated Vote Kick"
{
"cze" "Zahajil hlasovani o vyhozeni proti hraci {1}."
}
"Initiated Vote Ban"
{
"cze" "Zahajil hlasovani o banu proti hraci {1}"
}
"Map Vote"
{
"cze" "Hlasovani o mape: {1}"
}
"Change Map To"
{
"cze" "Zmenit mapu na {1}?"
}
"Votekick Player"
{
"cze" "Vyhodit {1}?"
}
"Voteban Player"
{
"cze" "Zabanovat {1}?"
}
"Vote Successful"
{
"cze" "Hlasovani prijato. (Obdrzeno {1}%% z {2} hlasu)"
}
"Vote Failed"
{
"cze" "Hlasovani selhalo. Bylo potreba {1}%% hlasu. (Obdrzeno {2}%% z {3} hlasu)"
}
"Vote End"
{
"cze" "Odpoved na otazku {1} je: {2}."
}
"Kick vote"
{
"cze" "Hlasovani o vyhozeni"
}
"Ban vote"
{
"cze" "Hlasovani o banu"
}
"Map vote"
{
"cze" "Hlasovani o mape"
}
"Confirm Vote"
{
"cze" "Potvrdit hlasovani"
}
"Map Vote In Use"
{
"cze" "Jiny admin prave pouziva hlasovaci menu."
}
"Please select a map"
{
"cze" "Prosim, zvol mapu"
}
"Start the Vote"
{
"cze" "Zacit hlasovani"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Cookie List"
{
"cze" "Seznam Sourcemod Cookies"
}
"Printing Cookie List"
{
"cze" "Vypisuji seznam cookie do konzole"
}
"Cookie not Found"
{
"cze" "Nelze nalezt cookie \"{1}\""
}
"Cookie Value"
{
"cze" "Hodnota hrace {1} je {2}"
}
"Protected Cookie"
{
"cze" "Nelze zmenit hodnotu chranene cookie \"{1}\""
}
"Cookie Changed Value"
{
"cze" "Zmena hodnoty cookie \"{1}\" na \"{2}\""
}
"No Console"
{
"cze" "Nelze zobrazit menu nastaveni do konzole"
}
"Choose Option"
{
"cze" "Zvolte moznost"
}
"Client Settings"
{
"cze" "Nastaveni hrace"
}
}

View File

@ -0,0 +1,273 @@
"Phrases"
{
"Yes"
{
"cze" "Ano"
}
"No"
{
"cze" "Ne"
}
"No matching client"
{
"cze" "Nebyl nalezen zadny shodny hrac."
}
"No matching clients"
{
"cze" "Nebyli nalezeni zadni shodni hraci."
}
"More than one client matches"
{
"cze" "Vice nez jeden hrac splnuje podminku \"{1}\""
}
"More than one client matched"
{
"cze" "Vice nez jeden hrac splnuje danou podminku."
}
"Player no longer available"
{
"cze" "Hrac, ktereho jste zvolil, jiz neni dostupny."
}
"Kick player"
{
"cze" "Vyhodit hrace"
}
"Kicked by admin"
{
"cze" "Vyhozen administratorem"
}
"Changing map"
{
"cze" "Zmena mapy na {1}..."
}
"Map was not found"
{
"cze" "Mapa {1} nebyla nalezena."
}
"Unable to target"
{
"cze" "Nemuzete zvolit tohoto hrace."
}
"Name"
{
"cze" "Jmeno"
}
"Access"
{
"cze" "Pristup"
}
"See console for output"
{
"cze" "Pro vystup se podivejte do konzole."
}
"Cannot target bot"
{
"cze" "Tento prikaz nelze vykonat na botovi."
}
"Unable to find cvar"
{
"cze" "Nelze nalezt cvar: {1}"
}
"No access to cvar"
{
"cze" "Nemate pristup k tomuto cvaru."
}
"Value of cvar"
{
"cze" "Hodnota cvaru \"{1}\" je: \"{2}\""
}
"Cvar changed"
{
"cze" "Zmenen cvar \"{1}\" na \"{2}\"."
}
"Config not found"
{
"cze" "Konfiguracni soubor \"{1}\" nebyl nalezen."
}
"Executed config"
{
"cze" "Spustil konfiguracni soubor \"{1}\"."
}
"Admin cache refreshed"
{
"cze" "Cache adminu byla obnovena."
}
"Invalid Amount"
{
"cze" "Byla zadana neplatna hodnota"
}
"Cannot be performed on dead"
{
"cze" "Tato akce nemuze byt vykonana na mrtvem hraci \"{1}\""
}
"Player has since died"
{
"cze" "Akce nemuze byt vykonana, hrac mezitim zemrel."
}
"Vote in Progress"
{
"cze" "Hlasovani jiz probiha."
}
"Vote Not In Progress"
{
"cze" "V tuto chvili neprobiha zadne hlasovani."
}
"Cancelled Vote"
{
"cze" "Zrusil hlasovani."
}
"Cancel vote"
{
"cze" "Zrusit hlasovani"
}
"Vote Select"
{
"cze" "{1} zvolil {2}."
}
"No Votes Cast"
{
"cze" "Nebyly prijaty zadne hlasy."
}
"Vote Delay Minutes"
{
"cze" "Musite pockat {1} minut pred zapocetim dalsiho hlasovani."
}
"Vote Delay Seconds"
{
"cze" "Musite pockat {1} vterin pred zapocetim dalsiho hlasovani."
}
"Could not connect to database"
{
"cze" "Nelze se pripojit k databazi."
}
"Failed to query database"
{
"cze" "Nelze se spojit s databazi."
}
"Invalid SteamID specified"
{
"cze" "Byl zadan neplatny Steam ID (musi zacinat 'STEAM_')"
}
"Reload admins"
{
"cze" "Obnovit adminy"
}
"Command is in-game only"
{
"cze" "Tento prikaz lze pouzit pouze ze hry."
}
"Target must be dead"
{
"cze" "Tento prikaz muze byt pouzit pouze na mrtve hrace."
}
"Target must be alive"
{
"cze" "Tento prikaz muze byt pouzit pouze na zive hrace."
}
"Target is not in game"
{
"cze" "Zvoleny hrac jeste neni plne pripojen do hry."
}
"Played Sound"
{
"cze" " Byl prehran zvuk hraci '{1}'"
}
"Slapped player"
{
"cze" "Vyliskal hrace '{1}'"
}
"Slayed player"
{
"cze" "Zabil hrace '{1}'"
}
"Kicked player"
{
"cze" "Vyhodil hrace '{1}'"
}
"Cannot participate in vote"
{
"cze" "Nemuzete se zucastnit tohoto hlasovani."
}
"Cannot change vote"
{
"cze" "Nemuzete zmenit svoji volbu v tomto hlasovani."
}
"On"
{
"cze" "Zapnout"
}
"Off"
{
"cze" "Vypnout"
}
"Say all"
{
"cze" "(VSEM) {1}"
}
"Chat admins"
{
"cze" "(ADMINOVE) {1}"
}
"Chat to admins"
{
"cze" "(ADMINUM) {1}"
}
"Private say to"
{
"cze" "(Privatne {1}) {2}"
}
}

View File

@ -0,0 +1,88 @@
"Phrases"
{
"No Access"
{
"cze" "Nemate pristup k tomuto prikazu"
}
"Back"
{
"cze" "Zpet"
}
"Next"
{
"cze" "Dalsi"
}
"Exit"
{
"cze" "Exit"
}
"Previous"
{
"cze" "Predchozi"
}
"all players"
{
"cze" "vsichni hraci"
}
"all humans"
{
"cze" "vsichni lide"
}
"all bots"
{
"cze" "vsichni boti"
}
"all dead players"
{
"cze" "vsichni mrtvi hraci"
}
"all alive players"
{
"cze" "vsichni zivi hraci"
}
"_s"
{
"cze" "{1}"
}
"all spectators"
{
"cze" "vsichni pozorovatele"
}
"Vote Count"
{
"cze" "Hlasy: {1}/{2}, zbyva {3}s"
}
"Voted For"
{
"cze" "{1} hlasoval pro {2}"
}
"Changed Vote"
{
"cze" " {1} zmenil svou volbu na {2}"
}
"No Vote"
{
"cze" "Zadny hlas"
}
"Name Reserved"
{
"cze" "Tvuj nick je rezervovan SourceModem; nastav sve heslo, abys ho mohl pouzivat."
}
}

View File

@ -0,0 +1,168 @@
"Phrases"
{
"Burn player"
{
"cze" "Zapalit hrace"
}
"FireBomb player"
{
"cze" "Udelat z hrace ohnivou bombu"
}
"Freeze player"
{
"cze" " Zmrazit hrace"
}
"FreezeBomb player"
{
"cze" "Udelat z hrace mrazici bombu"
}
"TimeBomb player"
{
"cze" " Udelat z hrace casovanou bombu"
}
"Beacon player"
{
"cze" "Oznacit hrace"
}
"NoClip player"
{
"cze" "Dat hraci NoClip"
}
"Blind player"
{
"cze" "Oslepit hrace"
}
"Drug player"
{
"cze" "Zfetovat hrace"
}
"Gravity player"
{
"cze" "Nastavit hraci gravitaci"
}
"Blind amount"
{
"cze" "Sila oslepeni?"
}
"Fully blind"
{
"cze" "Uplne oslepeni"
}
"Half blind"
{
"cze" "Polovicni oslepeni"
}
"No blind"
{
"cze" "Zadne oslepeni"
}
"Gravity amount"
{
"cze" "Sila gravitace?"
}
"Gravity Very High"
{
"cze" "Velmi vysoka gravitace"
}
"Gravity High"
{
"cze" "Vysoka gravitace"
}
"Gravity Normal"
{
"cze" "Normalni gravitace"
}
"Gravity Low"
{
"cze" "Nizka gravitace"
}
"Gravity Very Low"
{
"cze" "Velmi nizka gravitace"
}
"Set target on fire"
{
"cze" "zapalil hrace {1}."
}
"Toggled FireBomb on target"
{
"cze" "zmenil hrace {1} v ohnivou bombu."
}
"Froze target"
{
"cze" "zmrazil hrace {1}."
}
"Toggled FreezeBomb on target"
{
"cze" "zmenil hrace {1} v mrazici bombu."
}
"Toggled beacon on target"
{
"cze" "oznacil hrace {1}."
}
"Toggled TimeBomb on target"
{
"cze" "zmenil hrace {1} v casovanou bombu."
}
"Toggled noclip on target"
{
"cze" "prepl NoClip na hraci {1}."
}
"Toggled drug on target"
{
"cze" "zfetoval hrace {1}."
}
"Set blind on target"
{
"cze" "oslepil hrace {1}."
}
"Set gravity on target"
{
"cze" "nastavil gravitaci hraci {1}."
}
"Till Explodes"
{
"cze" "{2} sekund(y) nez {1} vybuchne."
}
"Unfrozen"
{
"cze" "Byl jsi rozmrazen."
}
"You will be unfrozen"
{
"cze" "Budes rozmrazen za {1} vterin."
}
}

View File

@ -0,0 +1,98 @@
"Phrases"
{
"Initiated Vote Gravity"
{
"cze" "Zahajil hlasovani o gravitaci."
}
"Initiated Vote Burn"
{
"cze" "Zahajil hlasovani o zapaleni proti hraci {1}."
}
"Initiated Vote Slay"
{
"cze" "Zahajil hlasovani o zabiti proti hraci {1}."
}
"Initiated Vote Alltalk"
{
"cze" "Zahajil hlasovani o alltalku."
}
"Initiated Vote FF"
{
"cze" "Zahajil hlasovani o Friendly Fire."
}
"Gravity Vote"
{
"cze" "Hlasovani o gravitaci: {1}"
}
"Change Gravity To"
{
"cze" "Zmenit gravitaci na {1}?"
}
"Voteburn player"
{
"cze" " Zapalit hrace {1}?"
}
"Voteslay Player"
{
"cze" "Zabit hrace {1}?"
}
"Votealltalk Off"
{
"cze" " Vypnout alltalk? {1}"
}
"Votealltalk On"
{
"cze" "Zapnout alltalk? {1}"
}
"Voteff Off"
{
"cze" "Vypnout FriendlyFire? {1}"
}
"Voteff On"
{
"cze" "Zapnout FriendlyFire? {1}"
}
"Gravity vote"
{
"cze" "Hlasovani o gravitaci"
}
"Vote FF"
{
"cze" "Hlasovani o FriendlyFire"
}
"Burn vote"
{
"cze" "Hlasovani o zapaleni"
}
"Alltalk vote"
{
"cze" "Hlasovani o Alltalk"
}
"Slay vote"
{
"cze" "Hlasovani o zabiti"
}
"Slayed player"
{
"cze" "Zabil hrace '{1}'"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Vote Nextmap"
{
"cze" "Hlasujte o pristi mape!"
}
"Nextmap Voting Started"
{
"cze" "Hlasovani o pristi mape zacalo."
}
"Nextmap Voting Finished"
{
"cze" "Hlasovani o mape skoncilo. Pristi mapou bude {1}. (Obdrzela {2}%% z {3} hlasu)"
}
"Current Map Extended"
{
"cze" "Soucasna mapa byla prodlouzena. (Obdrzela {1}%% z {2} hlasu)"
}
"Extend Map"
{
"cze" "Prodlouzit soucasnou mapu"
}
"Dont Change"
{
"cze" " Nemenit soucasnou mapu"
}
"Current Map Stays"
{
"cze" "Soucasna mapa pokracuje! Hlasovani rozhodlo! (Obdrzela {1}%% z {2} hlasu)"
}
"Changed Next Map"
{
"cze" "Zmenil pristi mapu na \"{1}\"."
}
"Starting Runoff"
{
"cze" "Zadna mapa neziskala {1]%% hlasu ({2} [{3}%%] & {4} [{5}%%]), zacina rozhodujici hlasovani."
}
}

View File

@ -0,0 +1,43 @@
"Phrases"
{
"Next Map"
{
"cze" "Pristi mapa: {1}"
}
"Map History"
{
"cze" "Historie map"
}
"Map"
{
"cze" "[Mapa]"
}
"Started"
{
"cze" "[Zacala]"
}
"Played Time"
{
"cze" "[Odehrany cas]"
}
"Reason"
{
"cze" " [Duvod k ukonceni]"
}
"Current Map"
{
"cze" "Soucasna mapa"
}
"ago"
{
"cze" "pred"
}
}

View File

@ -0,0 +1,68 @@
"Phrases"
{
"Already Nominated"
{
"cze" "Uz jsi nominoval mapu."
}
"Max Nominations"
{
"cze" "Maximalni pocet nominaci byl dosahnut."
}
"Map Already In Vote"
{
"cze" "Mapa '{1}' byla jiz nominovana."
}
"Map Inserted"
{
"cze" "Mapa '{1}' byla pridana do nominaci."
}
"Map Already Nominated"
{
"cze" "Mapa, kterou jsi zvolil, byla jiz nominovana."
}
"Map Nominated"
{
"cze" "{1} nominoval {2}."
}
"Map Nomination Changed"
{
"cze" "{1} zmenil svou nominaci na {2}."
}
"Nominate Title"
{
"cze" "Nominovat mapu:"
}
"Can't Nominate Current Map"
{
"cze" "Mapa, kterou jsi zvolil, je soucasna mapa a nemuze byt nominovana."
}
"Map in Exclude List"
{
"cze" "Mapa, kterou jsi zvolil, se nedavno hrala a nemuze byt nominovana."
}
"Current Map"
{
"cze" "Soucasna mapa"
}
"Recently Played"
{
"cze" "Nedavno hrana"
}
"Nominated"
{
"cze" "Nominovana"
}
}

View File

@ -0,0 +1,48 @@
"Phrases"
{
"Slap player"
{
"cze" "Vyliskat hrace"
}
"Slap damage"
{
"cze" "Sila lisknuti"
}
"Slay player"
{
"cze" "Zabit hrace"
}
"Slapped target"
{
"cze" "Vyliskal hrace {1}."
}
"Slayed target"
{
"cze" "Zabil hrace {1}."
}
"Name changed"
{
"cze" "Admin zmenil tve jmeno"
}
"Renamed target"
{
"cze" "Prejmenoval hrace {1}."
}
"Rename player"
{
"cze" " Prejmenovat hrace"
}
"Dead Player Rename"
{
"cze" "Hrac {1} bude pristi kolo prejmenovan."
}
}

View File

@ -0,0 +1,138 @@
"Phrases"
{
"Unable to find cvar"
{
"cze" "Nelze nalezt cvar: {1}"
}
"No access to cvar"
{
"cze" "Nemate pristup k tomuto cvaru."
}
"Value of cvar"
{
"cze" "Hodnota cvaru \"{1}\" je: \"{2}\""
}
"Cvar changed"
{
"cze" "Zmenil cvar \"{1}\" na \"{2}\"."
}
"Config not found"
{
"cze" "Konfiguracni soubor \"{1}\" nebyl nalezen."
}
"Executed config"
{
"cze" "Spustil konfiguracni soubor \"{1}\"."
}
"Permabanned player"
{
"cze" "Permanentne zabanoval hrace \"{1}\"."
}
"Permabanned player reason"
{
"cze" "Permanentne zabanoval hrace \"{1}\" (Duvod: {2})."
}
"Banned player"
{
"cze" "Zabanoval hrace \"{1}\" na {2} minut."
}
"Banned player reason"
{
"cze" "Zabanoval hrace \"{1}\" na {2} minut (duvod: {3})."
}
"Removed bans matching"
{
"cze" "Byly odstraneny bany splnujici filtr: {1}"
}
"Ban added"
{
"cze" "Ban byl pridan."
}
"Admin cache refreshed"
{
"cze" "Cache adminu byla obnovena."
}
"Identify player"
{
"cze" "Identifikovat hrace"
}
"Choose Map"
{
"cze" "Vyberte mapu"
}
"Exec CFG"
{
"cze" "Spustit CFG"
}
"Admin logged in as"
{
"cze" "\"{1}\" je prihlasen jako \"{2}\" s pristupem: {3}"
}
"Admin logged in anon"
{
"cze" "\"{1}\" ma pristup: {2}"
}
"Player is not an admin"
{
"cze" "Hrac \"{1}\" neni admin."
}
"Player is an admin"
{
"cze" " Hrac \"{1}\" je admin."
}
"Username"
{
"cze" "Uzivatelske jmeno"
}
"Kicked target"
{
"cze" "Vyhodil hrace {1}."
}
"Admin access"
{
"cze" "Administratorsky pristup"
}
"Cvar is now protected"
{
"cze" "Cvar {1} je nyni chranen."
}
"Kicked target reason"
{
"cze" "Vyhodil hrace {1} (Duvod: {2})"
}
"Please select a map"
{
"cze" "Prosim zvolte mapu"
}
"Choose Config"
{
"cze" "Vyberte konfiguraci"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Slot reserved"
{
"cze" "Pokousite se pripojit na rezervovany slot"
}
}

View File

@ -0,0 +1,103 @@
"Phrases"
{
"Rock The Vote"
{
"cze" "Rock the Vote:"
}
"RTV Not Allowed"
{
"cze" "Rock the Vote zatim neni povoleno."
}
"RTV Started"
{
"cze" "Rock the Vote jiz zacalo."
}
"RTV Ended"
{
"cze" "RTV jiz skoncilo, nemuzete ho znovu zacit ani nominovat mapy."
}
"Already Voted"
{
"cze" "Uz jste hlasoval pro Rock the Vote. ({1} hlasu z {2} potrebnych)"
}
"Minimal Players Not Met"
{
"cze" "Nebyl dosahnut minimalni pocet potrebnych hracu."
}
"Map Already In Vote"
{
"cze" "Mapa '{1}' je jiz v Rock the Vote seznamu."
}
"Map Inserted"
{
"cze" "Mapa '{1}' byla pridana do Rock the Vote."
}
"RTV Requested"
{
"cze" "{1} chce zacit Rock the Vote. ({2} hlasu z {3} potrebnych)"
}
"RTV Vote Ready"
{
"cze" "Rock the Vote zacalo!"
}
"Don't Change"
{
"cze" "Zachovat soucasnou mapu"
}
"Already Nominated"
{
"cze" "Uz jsi nominoval mapu."
}
"Max Nominations"
{
"cze" "Maximalni pocet nominaci byl dosahnut."
}
"Selected Map"
{
"cze" "{1} hlasoval pro {2}"
}
"No Votes"
{
"cze" "Nebyly prijaty zadne hlasy pro Rock the Vote, zachovana soucasna mapa."
}
"Current Map Stays"
{
"cze" "Soucasna mapa pokracuje! Rock the Vote promluvilo!"
}
"Changing Maps"
{
"cze" "Zmena mapy na {1}! Rock the Vote promluvilo!"
}
"Map Already Nominated"
{
"cze" "Mapa, kterou jsi zvolil, byla jiz nominovana."
}
"Map Nominated"
{
"cze" "{1} nominoval {2} pro Rock the Vote."
}
"Nominate Title"
{
"cze" "Nominovat mapu:"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Played sound to target"
{
"cze" "Prehral zvuk hraci {1}"
}
}

View File

@ -0,0 +1,78 @@
"Phrases"
{
"Invalid authtype"
{
"cze" "Typ autorizace musi byt bud 'steam', 'name', nebo 'ip'."
}
"Invalid immunity"
{
"cze" "Hodnota imunity musi byt kladne cele cislo."
}
"SQL Admin already exists"
{
"cze" "Administrator se zadanymi hodnotami jiz existuje."
}
"SQL Admin added"
{
"cze" "Administrator byl uspesne pridan do databaze."
}
"SQL Admin deleted"
{
"cze" "Administrator byl uspesne smazan z databaze."
}
"SQL Admin not found"
{
"cze" "Zadny administrator se zadanymi hodnotami nebyl nalezen."
}
"SQL Group already exists"
{
"cze" "Skupina s timto nazvem jiz existuje."
}
"SQL Group added"
{
"cze" "Skupina byla uspesne pridana do databaze."
}
"SQL Group deleted"
{
"cze" "Skupina byla uspesne smazana z databaze."
}
"SQL Group not found"
{
"cze" "Zadna skupina se zadanym nazvem nebyla nalezena."
}
"SQL Admin groups reset"
{
"cze" "Administratorske skupiny byly uspesne resetovany."
}
"SQL Group X not found"
{
"cze" "Nelze nalezt skupinu: \"{1}\""
}
"SQL Group X failed to bind"
{
"cze" "Nelze priradit skupinu: \"{1}\""
}
"Added group to user"
{
"cze" "Skupina byla uspesne pridana zvolenemu administratorovi."
}
"Added groups to user"
{
"cze" "{1} skupin bylo uspesne pridano zvolenemu administratorovi."
}
}

View File

@ -0,0 +1,33 @@
"Phrases"
{
"SM help commands"
{
"da" "SourceMod Hjælp: Kommando Information"
}
"No description available"
{
"da" "Ingen beskrivelse tilgængelig"
}
"No commands available"
{
"da" "Ingen kommandoer tilgængelige"
}
"Type sm_help to see more"
{
"da" "Skriv sm_help {1} for at se flere kommandoer"
}
"Entries n - m in page k"
{
"da" "Opslag {1} - {2} på side {3}"
}
"No matching results found"
{
"da" "Ingen matchende resultater fundet "
}
}

View File

@ -0,0 +1,23 @@
"Phrases"
{
"Admin Menu"
{
"da" "Administrator menu"
}
"Player Commands"
{
"da" "Spiller kommandoer"
}
"Server Commands"
{
"da" "Server kommandoer"
}
"Voting Commands"
{
"da" "Afstemnings kommandoer"
}
}

View File

@ -0,0 +1,8 @@
"Phrases"
{
"Flooding the server"
{
"da" "Du overbelaster serveren!"
}
}

View File

@ -0,0 +1,63 @@
"Phrases"
{
"Ban player"
{
"da" "Bandlys spiller"
}
"Ban reason"
{
"da" "Bandlysnings årsag"
}
"Permabanned player"
{
"da" "Spiller \"{1}\" er blevet bandlyst permanent."
}
"Permabanned player reason"
{
"da" " Spiller \"{1}\" er blevet bandlyst permanent (årsag: {2})."
}
"Banned player"
{
"da" "Spiller \"{1}\" er blevet bandlyst i {2} minutter."
}
"Banned player reason"
{
"da" " Spiller \"{1}\" er blevet bandlyst i {2} minutter (årsag: {3})."
}
"Removed bans matching"
{
"da" "Bandlysninger som matcher filter: \"{1}\" er blevet fjernet."
}
"Ban added"
{
"da" "Bandlysningen er blevet tilføjet. "
}
"Cannot ban that IP"
{
"da" "Du kan ikke bandlyse den IP adresse."
}
"Custom ban reason explanation"
{
"da" "Skriv årsag som en chat besked. Brug {1} for at afbryde dette."
}
"AbortBan applied successfully"
{
"da" "Bandlysning afbrudt."
}
"AbortBan not waiting for custom reason"
{
"da" "Venter ikke på at en bandlysnings årsag bliver skrevet ind, ingen bandlysning til at afbryde."
}
}

View File

@ -0,0 +1,73 @@
"Phrases"
{
"Gag/Mute player"
{
"da" "Gør spiller stum/tavs"
}
"Choose Type"
{
"da" "Vælg type"
}
"Gagged target"
{
"da" "{1} er blevet gjort tavs."
}
"Ungagged target"
{
"da" "{1} er ikke længere tavs."
}
"Muted target"
{
"da" "{1} er nu stum."
}
"Unmuted target"
{
"da" "{1} er ikke længere stum."
}
"Silenced target"
{
"da" "{1} er blevet gjort stum og tavs."
}
"Unsilenced target"
{
"da" "{1} kan tale igen."
}
"Mute Player"
{
"da" "Gør spiller stum"
}
"UnMute Player"
{
"da" "Fjern stumhed fra spiller "
}
"Gag Player"
{
"da" "Gør spiller tavs"
}
"UnGag Player"
{
"da" "Fjern tavshed fra spiller"
}
"Silence Player"
{
"da" "Gør spiller stum og tavs "
}
"UnSilence Player"
{
"da" "Fjern stumhed og tavshed fra spiller"
}
}

View File

@ -0,0 +1,108 @@
"Phrases"
{
"Timeleft"
{
"da" "Resterende tid for denne bane:"
}
"Thetime"
{
"da" "Den nuværende server tid er {1}"
}
"Friendly Fire On"
{
"da" "Friendly Fire er slået til."
}
"Friendly Fire Off"
{
"da" "Friendly Fire er slået fra."
}
"Current Map"
{
"da" "Den nuværende bane er {1}."
}
"LastRound"
{
"da" "Dette er den sidste runde!!"
}
"NoTimelimit"
{
"da" "Ingen tidsbegrænsninger for banen"
}
"Next Map"
{
"da" "Næste bane: {1} "
}
"Pending Vote"
{
"da" "Afventende Afstemning"
}
"WinLimitAppend"
{
"da" ", eller skifte bane efter et hold vinder en runde"
}
"WinLimit"
{
"da" "Banen vil skifte efter et hold vinder en runde"
}
"MaxRoundsAppend"
{
"da" ", eller skifte bane efter en runde mere"
}
"MaxRounds"
{
"da" "Banen vil skifte efter en runde mere"
}
"FragLimitAppend"
{
"da" ", eller skifte map efter en spiller når et frag"
}
"FragLimit"
{
"da" "Banen vil skifte efter en spiller når et frag"
}
"WinLimitAppendPlural"
{
"da" ", eller skifte bane efter et hold vinder {1} runder"
}
"WinLimitPlural"
{
"da" "Banen vil skifte efter et hold vinder {1} runder"
}
"MaxRoundsAppendPlural"
{
"da" ", eller skifte bane efter {1} runder mere"
}
"MaxRoundsPlural"
{
"da" "Bane vil skifte efter {1} runder mere."
}
"FragLimitAppendPlural"
{
"da" ", eller skifte bane efter en spiller når {1} frags"
}
"FragLimitPlural"
{
"da" "Banen vil skifte, efter en spiller når {1} frags"
}
}

View File

@ -0,0 +1,93 @@
"Phrases"
{
"Initiate Vote"
{
"da" "Afstemning startet: {1}"
}
"Initiated Vote Map"
{
"da" "Afsteming om bane-skift startet."
}
"Initiated Vote Kick"
{
"da" "Afstemning om udsmidning mod {1} startet."
}
"Initiated Vote Ban"
{
"da" "Afstemning om bandlysning mod {1} startet."
}
"Map Vote"
{
"da" "Bane afstemning: {1}"
}
"Change Map To"
{
"da" "Skift bane til {1}?"
}
"Votekick Player"
{
"da" "Smid {1} ud?"
}
"Voteban Player"
{
"da" "Bandlys {1}?"
}
"Vote Successful"
{
"da" "Afstemning er succesfuld. (Modtog {1}%% af {2} stemmer)"
}
"Vote Failed"
{
"da" "Afstemning slog fejl. {1}%% stemmer er påkrævet. (Modtog {2}%% af {3} stemmer)"
}
"Vote End"
{
"da" "Svaret på {1} er: {2}"
}
"Kick vote"
{
"da" "Stem om udsmidning"
}
"Ban vote"
{
"da" "Stem om bandlysning"
}
"Map vote"
{
"da" "Stem om bane skift"
}
"Confirm Vote"
{
"da" "Bekræft stemme"
}
"Map Vote In Use"
{
"da" "Map afstemningen er allerede i brug."
}
"Please select a map"
{
"da" "Vælg venligst en bane"
}
"Start the Vote"
{
"da" "Start afstemningen"
}
}

Some files were not shown because too many files have changed in this diff Show More