summaryrefslogtreecommitdiffstats
path: root/l10n/km.js
blob: 06ef71c30e4f1bca9dc3e266020a7967624f88a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
OC.L10N.register(
    "news",
    {
    "Can not add feed: Exists already" : "មិន​អាច​បន្ថែម​ព័ត៌មាន៖ មាន​រួច​ហើយ",
    "Articles without feed" : "អត្ថបទគ្មាន feed",
    "Can not add folder: Exists already" : "មិន​អាច​បន្ថែម​ថត៖ មាន​រួច​ហើយ",
    "Saved" : "បាន​រក្សាទុក",
    "Download" : "ទាញយក",
    "Close" : "បិទ",
    "by" : "ដោយ",
    "from" : "ពី",
    "Description" : "ការ​អធិប្បាយ",
    "right" : "ខាង​ស្ដាំ",
    "left" : "ខាង​ឆ្វេង",
    "Folder" : "ថត",
    "New folder" : "ថត​ថ្មី",
    "Folder name" : "ឈ្មោះ​ថត",
    "Credentials" : "Credentials",
    "Username" : "ឈ្មោះ​អ្នកប្រើ",
    "Password" : "ពាក្យសម្ងាត់",
    "Create" : "បង្កើត",
    "Rename" : "ប្ដូរ​ឈ្មោះ",
    "Delete" : "លុប",
    "Collapse" : "បត់បង្រួម",
    "Starred" : "បាន​ដាក់​ផ្កាយ",
    "Unread articles" : "អត្ថបទ​ដែល​មិន​ទាន់​អាន",
    "All articles" : "អត្ថបទ​ទាំង​អស់",
    "Settings" : "ការកំណត់",
    "Subscriptions (OPML)" : "ការ​តាមដាន (OPML)",
    "Import" : "នាំយកចូល",
    "Export" : "នាំចេញ",
    "Unread/Starred Articles" : "អត្ថបទ​ដែល​មិន​បាន​អាន ឬ​បាន​ដាក់​ផ្កាយ",
    "Error when importing: file does not contain valid JSON" : "កំហុស​ពេល​នាំ​ចូល៖ ឯកសារ​មិន​មាន JSON ត្រឹម​ត្រូវ",
    "Help" : "ជំនួយ",
    "Documentation" : "កម្រង​ឯកសារ"
},
"nplurals=1; plural=0;");
n>cell, shapes) in self.iter() { buff.push_str(&format!("\ncell: {} ", cell)); for shape in shapes { buff.push_str(&format!("\n {}", shape)); } } buff } /// Add a single fragment to this cell pub fn add_fragment_to_cell(&mut self, cell: Cell, fragment: Fragment) { if let Some(existing) = self.get_mut(&cell) { existing.push(fragment); } else { self.insert(cell, vec![fragment]); } self.sort_fragments_in_cell(cell); } /// sort the fragments content in this cell fn sort_fragments_in_cell(&mut self, cell: Cell) { if let Some(fragments) = &mut self.get_mut(&cell) { (*fragments).sort(); } } fn bounds(&self) -> Option<(Cell, Cell)> { let xlimits = self.iter().map(|(cell, _)| cell.x).minmax().into_option(); let ylimits = self.iter().map(|(cell, _)| cell.y).minmax().into_option(); match (xlimits, ylimits) { (Some((min_x, max_x)), Some((min_y, max_y))) => { Some((Cell::new(min_x, min_y), Cell::new(max_x, max_y))) } _ => None, } } pub fn get_size(&self, settings: &Settings) -> (f32, f32) { let (_top_left, bottom_right) = self.bounds().unwrap_or((Cell::new(0, 0), Cell::new(0, 0))); let w = settings.scale * (bottom_right.x + 2) as f32 * Cell::width(); let h = settings.scale * (bottom_right.y + 2) as f32 * Cell::height(); (w, h) } /// add multiple fragments to cell pub fn add_fragments_to_cell( &mut self, cell: Cell, fragments: Vec<Fragment>, ) { if let Some(existing) = self.get_mut(&cell) { existing.extend(fragments); } else { self.insert(cell, fragments); } self.sort_fragments_in_cell(cell); } pub fn merge_fragments(&self, settings: &Settings) -> Vec<Fragment> { let fragments = self.first_pass_merge(settings); Fragment::merge_recursive(fragments, settings) } /// merge fragments that can be merged. /// This is only merging the fragments that are in the same /// cell fn first_pass_merge(&self, settings: &Settings) -> Vec<Fragment> { let mut merged: Vec<Fragment> = vec![]; for (cell, fragments) in self.iter() { for frag in fragments.iter() { //Note: The fragments are calculated with their absolute // parameters and is derived from the cell position let abs_frag = frag.absolute_position(*cell); let had_merged = merged.iter_mut().rev().any(|mfrag| { if let Some(new_merge) = mfrag.merge(&abs_frag, settings) { *mfrag = new_merge; true } else { false } }); if !had_merged { merged.push(abs_frag); } } } merged } }