Compare commits

...

20 commits

Author SHA1 Message Date
j
570fa30d41 fix "Find in" for annotations with quotes 2024-06-19 13:52:52 +02:00
j
1a9fe95530 fix typo 2024-06-02 16:32:12 +01:00
j
f46a70d793 re-enable scrollbar-color for non chrome browsers 2024-06-02 16:29:11 +01:00
j
a67b633bcf scrollbar-color breaks scrollbars on chrome 2024-06-01 10:12:33 +01:00
j
038ff06766 balance subtitles 2024-05-17 16:38:44 +02:00
j
fc001a2f44 version can contain dots 2024-02-17 14:15:34 +00:00
j
d25fe788ee group vars into block (coding style) 2023-10-07 10:22:56 +01:00
qsniyg
d71ad7cad6 Allow setting multiple values for ButtonGroup 2023-10-07 09:20:16 +00:00
qsniyg
2c4e0b8f7b Use self.pageLength instead of self.options.pageLength in List::getPageByPosition
self.options.pageLength is a hint, the actual pageLength can differ. For example when orientation == both, self.options.pageLength is disregarded entirely.
2023-09-04 22:29:38 +00:00
j
2a147446c2 Ox.formPanel: update options.section on interactive change 2023-09-03 12:15:20 +01:00
j
9a7c3144f5 fix FormPanel selections 2023-09-03 12:11:12 +01:00
j
fb6c862b88 typo 2023-09-03 11:50:05 +01:00
j
6252e27f6c Ox.FormPanel: support setting inital and updating selected panel 2023-09-03 11:47:07 +01:00
j
49742b8b1a Ox.FormPanel.values now accepts values too 2023-09-03 11:24:01 +01:00
j
ac1a4ef961 avoid memory leak in jQuery.cache 2023-08-06 11:49:55 +02:00
j
b11dd36c7a typo 2023-08-04 17:48:11 +02:00
j
7b3ae57103 update turkish translations 2023-08-04 17:46:25 +02:00
j
7ffb5b6b9e typo 2023-08-04 14:58:37 +02:00
j
99ae1509cd some turkish translations 2023-07-27 16:58:07 +02:00
j
f8b218ec59 only post if target exists 2023-07-21 11:21:30 +01:00
12 changed files with 449 additions and 29 deletions

View file

@ -37,7 +37,7 @@
} }
function getPath() { function getPath() {
var index, regexp = /Ox\.js(\?\d+|)$/, var index, regexp = /Ox\.js(\?[\d\.]+|)$/,
scripts = document.getElementsByTagName('script'), src; scripts = document.getElementsByTagName('script'), src;
for (index = scripts.length - 1; index >= 0; index--) { for (index = scripts.length - 1; index >= 0; index--) {
src = scripts[index].src; src = scripts[index].src;

View file

@ -63,7 +63,8 @@ Ox.LOCALE_NAMES = {
'el': 'Ελληνικά', 'el': 'Ελληνικά',
'en': 'English', 'en': 'English',
'fr': 'Français', 'fr': 'Français',
'hi': 'हिन्दी' 'hi': 'हिन्दी',
'tr': 'Türkçe'
}; };
//@ Ox.LOCALES <o> Locales per module //@ Ox.LOCALES <o> Locales per module
Ox.LOCALES = {}; Ox.LOCALES = {};

View file

@ -0,0 +1,89 @@
{
"%": "%",
",": ",",
".": ".",
"%A, %B %e, %Y": "%A, %B %e, %Y",
"%a, %b %e, %Y": "%a, %b %e, %Y",
"AD": "MS",
"AM": "",
"Apr": "",
"April": "Nisan",
"Aug": "",
"August": "Ağustos",
"BC": "MÖ",
"%B %e, %Y": "",
"%b %e, %Y": "",
"d": "g",
"day": "gün",
"days": "gün",
"days{2}": "gün",
"Dec": "",
"December": "Aralık",
"Fall": "Düşmek",
"Feb": "",
"February": "Şubat",
"Fri": "",
"Friday": "Cuma",
"h": "s",
"hour": "saat",
"hours": "saat",
"hours{2}": "saat",
"%I:%M %p": "",
"%I:%M:%S %p": "",
"Jan": "",
"January": "Ocak",
"Jul": "",
"July": "Temmuz",
"Jun": "",
"June": "Haziran",
"m": "d",
"Mar": "",
"March": "Mart",
"May": "Mayıs",
"%m/%d/%Y": "",
"%m/%d/%y": "",
"minute": "dakika",
"minutes": "dakika",
"minutes{2}": "dakika",
"Mon": "",
"Monday": "Pazartesi",
"nd": ".",
"nd{22}": ".",
"no": "hayır",
"Nov": "",
"November": "Kasım",
"Oct": "",
"October": "Ekim",
"PM": "",
"rd": ".",
"rd{23}": ".",
"s": "s",
"Sat": "",
"Saturday": "Cumartesi",
"second": "saniye",
"seconds": "saniye",
"seconds{2}": "saniye",
"Sep": "",
"September": "Eylül",
"Spring": "Bahar",
"st": ".",
"st{21}": ".",
"Summer": "Yaz",
"Sun": "",
"Sunday": "Pazar",
"th": ".",
"th{11}": ".",
"th{12}": ".",
"th{13}": ".",
"Thu": "",
"Thursday": "Perşembe",
"Tue": "",
"Tuesday": "Salı",
"Wed": "",
"Wednesday": "Çarşamba",
"Winter": "kış",
"y": "yy",
"year": "yıl",
"years": "yıl",
"years{2}": "yıl"
}

View file

@ -2458,6 +2458,7 @@ Video
font-size: 8px; font-size: 8px;
line-height: 10px; line-height: 10px;
text-align: center; text-align: center;
text-wrap: balance;
text-overflow: ellipsis; text-overflow: ellipsis;
text-shadow: rgba(0, 0, 0, 1) 1px 1px 1px; text-shadow: rgba(0, 0, 0, 1) 1px 1px 1px;
color: rgb(255, 255, 255); color: rgb(255, 255, 255);

View file

@ -1188,8 +1188,10 @@ Scrollbars
background: -webkit-linear-gradient(left, $buttonActiveGradient); background: -webkit-linear-gradient(left, $buttonActiveGradient);
} }
body.$themeClass { @supports not selector(::-webkit-scrollbar) {
body.$themeClass {
scrollbar-color: $bodyBorder $bodyBackground; scrollbar-color: $bodyBorder $bodyBackground;
}
} }
/* /*

View file

@ -710,6 +710,7 @@
Ox.Focus.removeElement(this.oxid); Ox.Focus.removeElement(this.oxid);
this.self(_).unbindKeyboard(); this.self(_).unbindKeyboard();
this.$tooltip && this.$tooltip.remove(); this.$tooltip && this.$tooltip.remove();
jQuery.cleanData(this.$element);
delete Ox.$elements[this.oxid]; delete Ox.$elements[this.oxid];
// If setElement($element) was used, delete $element too // If setElement($element) was used, delete $element too
delete Ox.$elements[this.$element.oxid]; delete Ox.$elements[this.$element.oxid];
@ -738,6 +739,7 @@
this.findElements().forEach(function($element) { this.findElements().forEach(function($element) {
$element.removeElement(false); $element.removeElement(false);
}); });
jQuery.cleanData(this.$element);
this.$element.replaceWith($element); this.$element.replaceWith($element);
if ($element.$element) { // $element is Ox.Element if ($element.$element) { // $element is Ox.Element
this.$element = $element.$element; this.$element = $element.$element;

View file

@ -438,7 +438,7 @@
Ox.forEach( Ox.forEach(
Ox.makeObject(Ox.slice(arguments)), Ox.makeObject(Ox.slice(arguments)),
function(data, event) { function(data, event) {
target.postMessage(JSON.stringify({ target && target.postMessage(JSON.stringify({
data: data, data: data,
event: event, event: event,
target: isParent ? Ox.oxid : null target: isParent ? Ox.oxid : null

View file

@ -31,18 +31,29 @@ Ox.ButtonGroup = function(options, self) {
.options(options || {}) .options(options || {})
.update({ .update({
value: function() { value: function() {
// fixme: this doesn't work in cases where var positions = [],
// multiple buttons can be selected values = Ox.makeArray(self.options.value);
Ox.forEach(values, function(value) {
var position = Ox.getIndexById( var position = Ox.getIndexById(
self.options.buttons, self.options.value self.options.buttons, value
); );
if (position > -1) { if (position > -1) {
self.$buttons[position].trigger('click'); positions.push(position);
} else if (self.options.min == 0) {
self.$buttons.forEach(function($button, i) {
$button.options('value') && $button.trigger('click');
});
} }
});
if (positions.length < self.options.min) {
return;
}
Ox.forEach(self.$buttons, function(button, pos) {
var enabled = positions.indexOf(pos) > -1;
if (enabled !== button.value()) {
button.trigger('click');
}
});
} }
}) })
.addClass( .addClass(

View file

@ -15,11 +15,18 @@ Ox.FormPanel = function(options, self) {
var that = Ox.Element({}, self) var that = Ox.Element({}, self)
.defaults({ .defaults({
form: [], form: [],
listSize: 256 listSize: 256,
section: null
}) })
.options(options || {}); .options(options || {})
.update({
section: setSection
});
self.section = 0; if (self.options.section === null) {
self.options.section = self.options.form[0].id;
}
self.section = Ox.getIndexById(self.options.form, self.options.section);
self.sectionTitle = self.options.form[self.section].title; self.sectionTitle = self.options.form[self.section].title;
self.$list = Ox.TableList({ self.$list = Ox.TableList({
columns: [ columns: [
@ -62,7 +69,7 @@ Ox.FormPanel = function(options, self) {
}), }),
max: 1, max: 1,
min: 1, min: 1,
selected: [self.options.form[0].id], selected: [self.options.section],
sort: [{key: 'id', operator: '+'}], sort: [{key: 'id', operator: '+'}],
unique: 'id', unique: 'id',
width: self.options.listSize width: self.options.listSize
@ -70,7 +77,11 @@ Ox.FormPanel = function(options, self) {
select: function(data) { select: function(data) {
self.$sections[self.section].hide(); self.$sections[self.section].hide();
self.section = Ox.getIndexById(self.options.form, data.ids[0]); self.section = Ox.getIndexById(self.options.form, data.ids[0]);
if (self.section == -1) {
self.section = 0
}
self.$sections[self.section].show(); self.$sections[self.section].show();
self.options.section = self.options.form[self.section].id;
that.triggerEvent('select', {section: data.ids[0]}); that.triggerEvent('select', {section: data.ids[0]});
} }
}); });
@ -130,7 +141,18 @@ Ox.FormPanel = function(options, self) {
}); });
}); });
self.$sections[0].show(); self.$sections[self.section].show();
function setSection() {
var id = self.options.section,
section = Ox.getIndexById(self.options.form, id);
if (section > -1 && self.section != section) {
self.$sections[self.section].hide();
self.section = section;
self.$list.options('selected', [id]);
self.$sections[self.section].show();
}
};
that.setElement(Ox.SplitPanel({ that.setElement(Ox.SplitPanel({
elements: [ elements: [
@ -191,13 +213,24 @@ Ox.FormPanel = function(options, self) {
values <f> values values <f> values
@*/ @*/
that.values = function() { that.values = function() {
if (arguments.length === 0) {
var values = {}; var values = {};
self.options.form.forEach(function(section, i) { self.options.form.forEach(function(section, i) {
values[section.id] = self.$forms[i].values(); values[section.id] = self.$forms[i].values();
}); });
return values; return values;
} else {
var sections = arguments[0];
self.options.form.forEach(function(form, i) {
if (form.id in sections) {
self.$forms[i].values(sections[form.id]);
}
});
}
}; };
return that; return that;
}; };

View file

@ -624,7 +624,7 @@ Ox.List = function(options, self) {
} }
function getPageByPosition(pos) { function getPageByPosition(pos) {
return Math.floor(pos / self.options.pageLength); return Math.floor(pos / self.pageLength);
} }
function getPageByScrollPosition(pos) { function getPageByScrollPosition(pos) {

View file

@ -325,9 +325,9 @@ Ox.AnnotationPanel = function(options, self) {
} else if (data.id == 'export') { } else if (data.id == 'export') {
that.triggerEvent('exportannotations'); that.triggerEvent('exportannotations');
} else if (data.id == 'find') { } else if (data.id == 'find') {
that.triggerEvent('find', {value: value}); that.triggerEvent('find', {value: Ox.decodeHTMLEntities(value)});
} else if (data.id == 'findannotations') { } else if (data.id == 'findannotations') {
that.triggerEvent('findannotations', {key: key, value: value}); that.triggerEvent('findannotations', {key: key, value: Ox.decodeHTMLEntities(value)});
} else if (data.id == 'import') { } else if (data.id == 'import') {
that.triggerEvent('importannotations'); that.triggerEvent('importannotations');
} else if (data.id == 'insert') { } else if (data.id == 'insert') {

View file

@ -0,0 +1,281 @@
{
", doubleclick to edit": ", düzenlemek için çift tıkla",
"Add": "Ekle",
"Add Files": "Dosya Ekle",
"Add Place": "Yer Ekle",
"Add a condition": "koşul ekle",
"Add a group of conditions": "Bir grup koşul ekle",
"Add column after": "Sonrasına sütun ekle",
"Add column before": "Önce sütun ekle",
"Add row above": "Üste satır ekle",
"Add row below": "Altına satır ekle",
"Add {0}": "{0} ekle",
"Adding...": "Ekleniyor..",
"All": "Tüm",
"Alternative Names": "Alternatif İsimler",
"Area": "Alan",
"At Current Position": "Mevcut Konumda",
"Blockquote": "Blok halinde alıntıla",
"Bold": "Kalın",
"Borough": "Mahalle",
"Building": "Bina",
"Bullets": "Madde İşaretleri",
"By Duration": "Süreye göre",
"By Position": "Pozisyona Göre",
"By Text": "Metne gore",
"Cancel": "İptal et",
"Cancel/Deselect": "İptal et/Seçimi kaldır",
"Cancelled": "İptal edildi",
"City": "Şehir",
"Clear": "Temizle",
"Clear Event": "Etkinliği temizle",
"Clear Place": "Yeri Temizle",
"Clearing...": "Temizleniyor",
"Click to hide": "gizlemek için tıklayın",
"Click to pan, doubleclick to zoom": "Kaydırmak için tıklayın, yakınlaştırmak için çift tıklayın",
"Click to select": "Seçmek için tıklayın",
"Click to select, doubleclick to edit": "Seçmek için tıklayın, düzenlemek için çift tıklayın",
"Click to show": "Göstermek için tıklayın",
"Close": "Kapat",
"Complete": "Tamamlandı",
"Country": "Ülke",
"Date": "Tarih",
"Date Created": "Oluşturulma Tarihi",
"Date Modified": "Değiştirilme Tarihi",
"Define": "Tanımla",
"Define Event": "Etkinlik Tanımla",
"Define Place": "Yer Tanımla",
"Delete Annotation": "Ek Açıklamayı Sil",
"Deselect": "Seçimi Kaldır",
"Deselect Annotation": "Ek Açıklamanın Seçimini Kaldır",
"Don't Shuffle": "Karıştırma",
"Done": "Bitti",
"Download": "İndir",
"Download Selection...": "Seçimi İndir...",
"Download Video...": "Video İndir",
"Drag to resize": "Yeniden boyutlandırmak için sürükleyin",
"Drag to resize or click to hide": "Yeniden boyutlandırmak için sürükleyin veya gizlemek için tıklayın",
"Drag to resize or click to toggle map": "eniden boyutlandırmak için sürükleyin veya haritayı değiştirmek için tıklayın",
"Duration": "Süre",
"East": "Doğu",
"Edit": "Kurgula",
"Edit Annotation": "Ek Açıklamayı Kurgula",
"Edit/Submit": "Kurgula/Gönder",
"Editing Options": "Kurgulama Seçenekleri",
"Embed Selection...": "Seçimi Yerleştir",
"End": "Son",
"Enter Fullscreen": "Tam Ekran Gir",
"Event": "Etkinlik",
"Events": "Etkinlikler",
"Examples...": "Örnekler...",
"Exit Fullscreen": "Tam Ekrandan Çık",
"Feature": "Özellik",
"Find": "Bul",
"Find in All {0}": "Tüm {0} İçinde Bul",
"Find in List": "Listede Bul",
"Find in This {0}": "Bu {0}'da Bul",
"Find on Map": "Haritada Bul",
"Find...": "Bul...",
"Find: All": "Bul: Tümü",
"Find: Alternative Names": "Bul: Alternatif İsimler",
"Find: Geoname": "Bul: Geoisim",
"Find: Name": "Bul: İsim",
"Flag": "Bayrak",
"Font Size": "Yazı Tipi Boyutu",
"Generating Documentation...": "Dokümantasyon Oluşturuyor...",
"Geoname": "Geo isim",
"Go One Frame Back": "Bir Kare Geri Git",
"Go One Frame Forward": "Bir Kare İleri Git",
"Go One Line Down": "Bir Satır Aşağı Git",
"Go One Line Up": "Bir Satır Yukarı Git",
"Go One Second Back": "Bir Saniye Geri Git",
"Go One Second Forward": "Bir Saniye İleriye Git",
"Go to First Frame": "İlk Kareye Git",
"Go to In Point": "Giriş Noktasına Git",
"Go to Last Frame": "Son Kareye Git",
"Go to Next Annotation": "Sonraki Açıklamaya Git",
"Go to Next Cut": "Sonraki Kesime Git",
"Go to Next Result": "Sonraki Sonuca Git",
"Go to Out Point": ıkış Noktasına Git",
"Go to Poster Frame": "Poster Çerçevesine Git",
"Go to Previous Annotation": "Önceki Ek Açıklamaya Git",
"Go to Previous Cut": "Önceki Kesmeye Git",
"Go to Previous Result": "Önceki Sonuca Git",
"Headline": "Başlık",
"Hide": "Sakla",
"Hide Controls": "Kontrolleri Gizle",
"Hide Labels": "Etiketleri Gizle",
"Home": "Ana Sayfa",
"Home Channel": "Ana Kanal",
"Image": "İmge",
"Import Annotations...": "Ek Açıklamaları İçe Aktar...",
"In Current Selection": "Mevcut Seçimde",
"Insert": "Ekle",
"Insert HTML": "HTML Ekle",
"Insert...": "Ekle...",
"Italic": "İtalik",
"Join Clip(s) at Cuts": "Klip(ler)i Kesimlerde Birleştir",
"Keyboard Shortcuts": "Klavye Kısayolları",
"Keyboard Shortcuts...": "Klavye Kısayolları...",
"Large": "Büyük",
"Large Player": "Büyük Oynatıcı",
"Larger": "Daha Büyük",
"Latitude": "Enlem",
"Limit to": "Sınırla",
"Linebreak": "Satır Sonu",
"Link": "Link",
"List": "Liste",
"Longitude": "Boylam",
"Make Clip(s) Static": "Klip(ler)i Statik Yap",
"Map Options": "Harita Seçenekleri",
"Match": "Eşleme",
"Matches": "Eşlemeler",
"Medium": "Orta",
"Monospace": "Monospace",
"Mute": "Sessiz",
"Mute/Unmute": "Sesi Kapat/Sesi Aç",
"Name": "İsim",
"New Event": "Yeni Etkinlik",
"New Place": "Yeni Yer",
"Next": "Sıradaki",
"Next Channel": "Yeni Kanal",
"Next Result": "Bir Sonraki Sonuç",
"No file selected": "Seçili dosya yok",
"No files selected": "Seçili dosya yok",
"North": "Kuzey",
"Numbers": "Sayılar",
"Open in New Tab": "Yeni Sekmede Aç",
"Options": "Seçenekler",
"Other": "Diğer",
"Paragraph": "Paragraf",
"Pause": "Durdur",
"Paused": "Durduruldu",
"Person": "Kişi",
"Place": "Yer",
"Place or Event": "Yer ya da Etkinlik",
"Play": "Oynat",
"Play Current Track": "Seçili Parçayı Çal",
"Play In to Out": "Giriş-Çıkış Arasında Oynat",
"Play Next Track": "Bir Sonraki Parçayı Çal",
"Play/Pause": "Başlat/Durdur",
"Previous": "Önceki",
"Previous Channel": "Önceki Kanal",
"Previous Result": "Önceki Sonuç",
"Region": "Bölge",
"Reload": "Yeniden Yükle",
"Remove": "Kaldır",
"Remove Event": "Etkinliği Kaldır",
"Remove File": "Dosyayı Kaldır",
"Remove Place": "Yeri Kaldır",
"Remove this column": "Bu sütunu kaldır",
"Remove this condition": "Bu koşulu kaldır",
"Remove this group of conditions": "Bu koşul grubunu kaldır ",
"Remove this row": "Bu satırı kaldır",
"Removing...": "Kaldırıyor...",
"Repeat All": "Hepsini Tekrarla",
"Repeat None": "Hiçbirini Tekrarlama",
"Repeat One": "Birini Tekrarla",
"Reset this condition": "Bu koşulu sıfırla",
"Resolution": "Çözünürlük",
"Restart": "Yeniden Başlat",
"Restore Defaults": "Varsayılanları Geri Yükle",
"Results": "Sonuçlar",
"Resume": "Devam Et",
"Right-to-Left": "Sağdan Sola",
"Run Tests": "Testleri Çalıştır",
"Save Changes": "Değişiklikleri Kaydet",
"Save as Smart List": "Akıllı Liste olarak Kaydet",
"Scale to Fill": "Doldurmak için Ölç",
"Scale to Fit": "Sığacak Şekilde Ölç",
"Scroll to Player": "Oyuncuya Kaydır",
"Select Current Annotation": "Geçerli Ek Açılamayı Seç",
"Select Current Cut": "Geçerli Kesimi Seç",
"Select File": "Dosya Seç",
"Select Next Annotation": "Sonraki Açıklamayı Seç",
"Select Previous Annotation": "Önceki Açıklamayı Seç",
"Set ": "Berlie",
"Set In Point": "Giriş Noktası Belirle",
"Set Out Point": ıkış Noktası Belirle",
"Set Poster Frame": "Poster Karesi Belirle",
"Settings": "Ayarlar",
"Show Annotations": "Ek Açıklamayı Göster",
"Show Controls": "Kontrol Çubuğunu Göster",
"Show Dates": "Tarihleri Göster",
"Show Labels": "Etiketleri Göster",
"Show Other": "Diğerini Göster",
"Show People": "İnsanları Göster",
"Show Places": "Yerleri Göster",
"Show Remaining Time": "Kalan Zamanı Göster",
"Show Subtitles": "Altyazıları Göster",
"Show Users": "Kullanıcıları Göster",
"Shuffle": "Karıştır",
"Small": "Küçük",
"Small Player": "Küçük Oynatıcı",
"Smaller": "Daha Küçük",
"Sort Annotations": "Ek Açıklamayı Düzenle",
"South": "Güney",
"Split Clip(s) at Cuts": "Klip(ler)i Kesimlerde Böl",
"Start": "Başlat",
"Street": "Sokak",
"Strike": "Üstünü Çiz",
"Subscript": "Alt Simge",
"Subtitles": "Altyazılar",
"Superscript": "Üst Simge",
"Switch Theme": "Temayı Değiştir",
"Timeline": "Zaman Çizelgesi",
"Title": "Başlık",
"Turn Volume Down": "Sesi Kıs",
"Turn Volume Up": "Sesi Aç",
"Type": "Tür",
"Underline": "Altını Çiz",
"Undo Changes": "Değişiklikleri Geri Al",
"Unmute": "Sesi Aç",
"Untitled": "İsimsiz",
"User": "Kullanıcı",
"Valid": "Geçerli",
"View": "Görüntüle",
"View Live": "Canlı Görüntüle",
"View Source": "Kaynağı Görüntüle",
"View as Grid": "Izgara Olarak Görüntüle",
"View as List": "Liste Olarak Görüntüle",
"Volume": "Ses Seviyesi",
"West": "Batı",
"add": "ekle",
"all": "hepsi",
"and": "ve",
"annotations": "ek açıklamalar",
"any": "herhangi",
"ascending": "artan",
"bracket": "parantez",
"contains": "içerir",
"descending": "azalan",
"does not contain": "içermez",
"does not end with": "ile bitmiyor",
"does not start with": "ile başlamaz",
"ends with": "ile biter",
"file": "dosya",
"files": "dosyalar",
"in": "içinde",
"is": "",
"is after": "sonra",
"is before": "önce",
"is between": "arasında",
"is greater than": "'den büyüktür",
"is less than": "daha azdır",
"is not": "değil",
"is not after": "sonra değil",
"is not before": "önce değil",
"is not between": "arasında değil",
"is not greater than": "daha büyük değil",
"is not less than": "daha az değil",
"items": "öğeler",
"of the following conditions": "aşağıdaki koşullardan",
"order": "sırala",
"sorted by": "göre sırala",
"starts with": "ile başla",
"unknown": "bilinmiyor",
"{0} Century": "Yüzyıl",
"{0} Century BC": "Yüzyıl MÖ",
"{0} Millennium": "{0} Milenyum",
"{0} Millennium BC": "MÖ {0} Milenyum"
}