diff --git a/ChangeLog b/ChangeLog index ebd6e38ef..20ffbca13 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Version 1.0.31 (unreleased) +-------------- + +Improvements: + +* Make embedded documentation available in multiple languages + Version 1.0.30 -------------- diff --git a/app/Controller/DocumentationController.php b/app/Controller/DocumentationController.php index d86fb3c84..0d02ebda3 100644 --- a/app/Controller/DocumentationController.php +++ b/app/Controller/DocumentationController.php @@ -20,16 +20,7 @@ class DocumentationController extends BaseController $page = 'index'; } - if ($this->languageModel->getCurrentLanguage() === 'fr_FR') { - $filename = __DIR__.'/../../doc/fr/' . $page . '.markdown'; - } else { - $filename = __DIR__ . '/../../doc/' . $page . '.markdown'; - } - - if (!file_exists($filename)) { - $filename = __DIR__.'/../../doc/index.markdown'; - } - + $filename = $this->getPageFilename($page); $this->response->html($this->helper->layout->app('doc/show', $this->render($filename))); } @@ -83,10 +74,63 @@ class DocumentationController extends BaseController */ public function replaceImageUrl(array $matches) { - if ($this->languageModel->getCurrentLanguage() === 'fr_FR') { - return '('.$this->helper->url->base().'doc/fr/'.$matches[1].')'; + return '('.$this->getFileBaseUrl($matches[1]).')'; + } + + /** + * Get Markdown file according to the current language + * + * @access private + * @param string $page + * @return string + */ + private function getPageFilename($page) + { + return $this->getFileLocation($page . '.markdown') ?: + implode(DIRECTORY_SEPARATOR, array(ROOT_DIR, 'doc', 'index.markdown')); + } + + /** + * Get base URL for Markdown links + * + * @access private + * @param string $filename + * @return string + */ + private function getFileBaseUrl($filename) + { + $language = $this->languageModel->getCurrentLanguage(); + $path = $this->getFileLocation($filename); + + if (strpos($path, $language) !== false) { + $url = implode('/', array('doc', $language, $filename)); + } else { + $url = implode('/', array('doc', $filename)); } - return '('.$this->helper->url->base().'doc/'.$matches[1].')'; + return $this->helper->url->base().$url; + } + + /** + * Get file location according to the current language + * + * @access private + * @param string $filename + * @return string + */ + private function getFileLocation($filename) + { + $files = array( + implode(DIRECTORY_SEPARATOR, array(ROOT_DIR, 'doc', $this->languageModel->getCurrentLanguage(), $filename)), + implode(DIRECTORY_SEPARATOR, array(ROOT_DIR, 'doc', $filename)), + ); + + foreach ($files as $filename) { + if (file_exists($filename)) { + return $filename; + } + } + + return ''; } } diff --git a/doc/es_ES/kanban-vs-todo-and-scrum.markdown b/doc/es_ES/kanban-vs-todo-and-scrum.markdown index ad9dd1a91..6e8d9e6ce 100644 --- a/doc/es_ES/kanban-vs-todo-and-scrum.markdown +++ b/doc/es_ES/kanban-vs-todo-and-scrum.markdown @@ -6,13 +6,13 @@ Kanban vs Todo lists ### Todo lists (lista de tareas) : -Fase unica (es solo una lista de tareas) -Multitarea posible (no eficiente) +- Fase unica (es solo una lista de tareas) +- Multitarea posible (no eficiente) ### Kanban: -Multi fases, -Concentración absoluta para evitar multitareas por que se puede establecer un limite por columna para mejorar el progreso +- Multi fases, +- Concentración absoluta para evitar multitareas por que se puede establecer un limite por columna para mejorar el progreso Kanban vs Scrum @@ -20,13 +20,13 @@ Kanban vs Scrum ### Scrum: -Los sprints son time-boxed, usualmente 2 o 4 semanas -No permitir cambios durante la iteración -La estimación es requerida -Utiliza la velocidad como métrica predeterminada -El tablero de Scrum se borra entre cada sprint -Scrum tiene funciones predefinidas como scrum master , los dueños del producto y el equipo -Una gran cantidad de reuniones: planeaciones, backlogs grooming, daily stand-up, retrospectiva +- Los sprints son time-boxed, usualmente 2 o 4 semanas +- No permitir cambios durante la iteración +- La estimación es requerida +- Utiliza la velocidad como métrica predeterminada +- El tablero de Scrum se borra entre cada sprint +- Scrum tiene funciones predefinidas como scrum master , los dueños del producto y el equipo +- Una gran cantidad de reuniones: planeaciones, backlogs grooming, daily stand-up, retrospectiva ### Kanban: diff --git a/doc/fr/2fa.markdown b/doc/fr_FR/2fa.markdown similarity index 100% rename from doc/fr/2fa.markdown rename to doc/fr_FR/2fa.markdown diff --git a/doc/fr/analytics-tasks.markdown b/doc/fr_FR/analytics-tasks.markdown similarity index 100% rename from doc/fr/analytics-tasks.markdown rename to doc/fr_FR/analytics-tasks.markdown diff --git a/doc/fr/analytics.markdown b/doc/fr_FR/analytics.markdown similarity index 100% rename from doc/fr/analytics.markdown rename to doc/fr_FR/analytics.markdown diff --git a/doc/fr/application-configuration.markdown b/doc/fr_FR/application-configuration.markdown similarity index 100% rename from doc/fr/application-configuration.markdown rename to doc/fr_FR/application-configuration.markdown diff --git a/doc/fr/application-configuration.markup b/doc/fr_FR/application-configuration.markup similarity index 100% rename from doc/fr/application-configuration.markup rename to doc/fr_FR/application-configuration.markup diff --git a/doc/fr/automatic-actions.markdown b/doc/fr_FR/automatic-actions.markdown similarity index 100% rename from doc/fr/automatic-actions.markdown rename to doc/fr_FR/automatic-actions.markdown diff --git a/doc/fr/board-collapsed-expanded.markdown b/doc/fr_FR/board-collapsed-expanded.markdown similarity index 100% rename from doc/fr/board-collapsed-expanded.markdown rename to doc/fr_FR/board-collapsed-expanded.markdown diff --git a/doc/fr/board-configuration.markdown b/doc/fr_FR/board-configuration.markdown similarity index 100% rename from doc/fr/board-configuration.markdown rename to doc/fr_FR/board-configuration.markdown diff --git a/doc/fr/board-horizontal-scrolling-and-compact-view.markdown b/doc/fr_FR/board-horizontal-scrolling-and-compact-view.markdown similarity index 100% rename from doc/fr/board-horizontal-scrolling-and-compact-view.markdown rename to doc/fr_FR/board-horizontal-scrolling-and-compact-view.markdown diff --git a/doc/fr/board-show-hide-columns.markdown b/doc/fr_FR/board-show-hide-columns.markdown similarity index 100% rename from doc/fr/board-show-hide-columns.markdown rename to doc/fr_FR/board-show-hide-columns.markdown diff --git a/doc/fr/calendar-configuration.markdown b/doc/fr_FR/calendar-configuration.markdown similarity index 100% rename from doc/fr/calendar-configuration.markdown rename to doc/fr_FR/calendar-configuration.markdown diff --git a/doc/fr/calendar.markdown b/doc/fr_FR/calendar.markdown similarity index 100% rename from doc/fr/calendar.markdown rename to doc/fr_FR/calendar.markdown diff --git a/doc/fr/closing-tasks.markdown b/doc/fr_FR/closing-tasks.markdown similarity index 100% rename from doc/fr/closing-tasks.markdown rename to doc/fr_FR/closing-tasks.markdown diff --git a/doc/fr/create-tasks-by-email.markdown b/doc/fr_FR/create-tasks-by-email.markdown similarity index 100% rename from doc/fr/create-tasks-by-email.markdown rename to doc/fr_FR/create-tasks-by-email.markdown diff --git a/doc/fr/creating-projects.markdown b/doc/fr_FR/creating-projects.markdown similarity index 100% rename from doc/fr/creating-projects.markdown rename to doc/fr_FR/creating-projects.markdown diff --git a/doc/fr/creating-tasks.markdown b/doc/fr_FR/creating-tasks.markdown similarity index 100% rename from doc/fr/creating-tasks.markdown rename to doc/fr_FR/creating-tasks.markdown diff --git a/doc/fr/currency-rate.markdown b/doc/fr_FR/currency-rate.markdown similarity index 100% rename from doc/fr/currency-rate.markdown rename to doc/fr_FR/currency-rate.markdown diff --git a/doc/fr/duplicate-move-tasks.markdown b/doc/fr_FR/duplicate-move-tasks.markdown similarity index 100% rename from doc/fr/duplicate-move-tasks.markdown rename to doc/fr_FR/duplicate-move-tasks.markdown diff --git a/doc/fr/editing-projects.markdown b/doc/fr_FR/editing-projects.markdown similarity index 100% rename from doc/fr/editing-projects.markdown rename to doc/fr_FR/editing-projects.markdown diff --git a/doc/fr/gantt-chart-projects.markdown b/doc/fr_FR/gantt-chart-projects.markdown similarity index 100% rename from doc/fr/gantt-chart-projects.markdown rename to doc/fr_FR/gantt-chart-projects.markdown diff --git a/doc/fr/gantt-chart-tasks.markdown b/doc/fr_FR/gantt-chart-tasks.markdown similarity index 100% rename from doc/fr/gantt-chart-tasks.markdown rename to doc/fr_FR/gantt-chart-tasks.markdown diff --git a/doc/fr/index.markdown b/doc/fr_FR/index.markdown similarity index 100% rename from doc/fr/index.markdown rename to doc/fr_FR/index.markdown diff --git a/doc/fr/kanban-vs-todo-and-scrum.markdown b/doc/fr_FR/kanban-vs-todo-and-scrum.markdown similarity index 100% rename from doc/fr/kanban-vs-todo-and-scrum.markdown rename to doc/fr_FR/kanban-vs-todo-and-scrum.markdown diff --git a/doc/fr/keyboard-shortcuts.markdown b/doc/fr_FR/keyboard-shortcuts.markdown similarity index 100% rename from doc/fr/keyboard-shortcuts.markdown rename to doc/fr_FR/keyboard-shortcuts.markdown diff --git a/doc/fr/link-labels.markdown b/doc/fr_FR/link-labels.markdown similarity index 100% rename from doc/fr/link-labels.markdown rename to doc/fr_FR/link-labels.markdown diff --git a/doc/fr/notifications.markdown b/doc/fr_FR/notifications.markdown similarity index 100% rename from doc/fr/notifications.markdown rename to doc/fr_FR/notifications.markdown diff --git a/doc/fr/project-configuration.markdown b/doc/fr_FR/project-configuration.markdown similarity index 100% rename from doc/fr/project-configuration.markdown rename to doc/fr_FR/project-configuration.markdown diff --git a/doc/fr/project-permissions.markdown b/doc/fr_FR/project-permissions.markdown similarity index 100% rename from doc/fr/project-permissions.markdown rename to doc/fr_FR/project-permissions.markdown diff --git a/doc/fr/project-types.markdown b/doc/fr_FR/project-types.markdown similarity index 100% rename from doc/fr/project-types.markdown rename to doc/fr_FR/project-types.markdown diff --git a/doc/fr/project-views.markdown b/doc/fr_FR/project-views.markdown similarity index 100% rename from doc/fr/project-views.markdown rename to doc/fr_FR/project-views.markdown diff --git a/doc/fr/recurring-tasks.markdown b/doc/fr_FR/recurring-tasks.markdown similarity index 100% rename from doc/fr/recurring-tasks.markdown rename to doc/fr_FR/recurring-tasks.markdown diff --git a/doc/fr/roles.markdown b/doc/fr_FR/roles.markdown similarity index 100% rename from doc/fr/roles.markdown rename to doc/fr_FR/roles.markdown diff --git a/doc/fr/screenshots.markdown b/doc/fr_FR/screenshots.markdown similarity index 100% rename from doc/fr/screenshots.markdown rename to doc/fr_FR/screenshots.markdown diff --git a/doc/fr/screenshots/automatic-action-creation.png b/doc/fr_FR/screenshots/automatic-action-creation.png similarity index 100% rename from doc/fr/screenshots/automatic-action-creation.png rename to doc/fr_FR/screenshots/automatic-action-creation.png diff --git a/doc/fr/screenshots/board-collapsed-mode.png b/doc/fr_FR/screenshots/board-collapsed-mode.png similarity index 100% rename from doc/fr/screenshots/board-collapsed-mode.png rename to doc/fr_FR/screenshots/board-collapsed-mode.png diff --git a/doc/fr/screenshots/board-compact-mode.png b/doc/fr_FR/screenshots/board-compact-mode.png similarity index 100% rename from doc/fr/screenshots/board-compact-mode.png rename to doc/fr_FR/screenshots/board-compact-mode.png diff --git a/doc/fr/screenshots/board-expanded-mode.png b/doc/fr_FR/screenshots/board-expanded-mode.png similarity index 100% rename from doc/fr/screenshots/board-expanded-mode.png rename to doc/fr_FR/screenshots/board-expanded-mode.png diff --git a/doc/fr/screenshots/board-task-limit.png b/doc/fr_FR/screenshots/board-task-limit.png similarity index 100% rename from doc/fr/screenshots/board-task-limit.png rename to doc/fr_FR/screenshots/board-task-limit.png diff --git a/doc/fr/screenshots/board-view.png b/doc/fr_FR/screenshots/board-view.png similarity index 100% rename from doc/fr/screenshots/board-view.png rename to doc/fr_FR/screenshots/board-view.png diff --git a/doc/fr/screenshots/calendar-view.png b/doc/fr_FR/screenshots/calendar-view.png similarity index 100% rename from doc/fr/screenshots/calendar-view.png rename to doc/fr_FR/screenshots/calendar-view.png diff --git a/doc/fr/screenshots/gantt-view.png b/doc/fr_FR/screenshots/gantt-view.png similarity index 100% rename from doc/fr/screenshots/gantt-view.png rename to doc/fr_FR/screenshots/gantt-view.png diff --git a/doc/fr/screenshots/hide-column.png b/doc/fr_FR/screenshots/hide-column.png similarity index 100% rename from doc/fr/screenshots/hide-column.png rename to doc/fr_FR/screenshots/hide-column.png diff --git a/doc/fr/screenshots/list-view.png b/doc/fr_FR/screenshots/list-view.png similarity index 100% rename from doc/fr/screenshots/list-view.png rename to doc/fr_FR/screenshots/list-view.png diff --git a/doc/fr/screenshots/new-project.png b/doc/fr_FR/screenshots/new-project.png similarity index 100% rename from doc/fr/screenshots/new-project.png rename to doc/fr_FR/screenshots/new-project.png diff --git a/doc/fr/screenshots/new-user.png b/doc/fr_FR/screenshots/new-user.png similarity index 100% rename from doc/fr/screenshots/new-user.png rename to doc/fr_FR/screenshots/new-user.png diff --git a/doc/fr/screenshots/project-disable-sharing.png b/doc/fr_FR/screenshots/project-disable-sharing.png similarity index 100% rename from doc/fr/screenshots/project-disable-sharing.png rename to doc/fr_FR/screenshots/project-disable-sharing.png diff --git a/doc/fr/screenshots/project-edition.png b/doc/fr_FR/screenshots/project-edition.png similarity index 100% rename from doc/fr/screenshots/project-edition.png rename to doc/fr_FR/screenshots/project-edition.png diff --git a/doc/fr/screenshots/project-enable-sharing.png b/doc/fr_FR/screenshots/project-enable-sharing.png similarity index 100% rename from doc/fr/screenshots/project-enable-sharing.png rename to doc/fr_FR/screenshots/project-enable-sharing.png diff --git a/doc/fr/screenshots/project-permissions.png b/doc/fr_FR/screenshots/project-permissions.png similarity index 100% rename from doc/fr/screenshots/project-permissions.png rename to doc/fr_FR/screenshots/project-permissions.png diff --git a/doc/fr/screenshots/project-view.png b/doc/fr_FR/screenshots/project-view.png similarity index 100% rename from doc/fr/screenshots/project-view.png rename to doc/fr_FR/screenshots/project-view.png diff --git a/doc/fr/screenshots/show-column.png b/doc/fr_FR/screenshots/show-column.png similarity index 100% rename from doc/fr/screenshots/show-column.png rename to doc/fr_FR/screenshots/show-column.png diff --git a/doc/fr/screenshots/swimlane-configuration.png b/doc/fr_FR/screenshots/swimlane-configuration.png similarity index 100% rename from doc/fr/screenshots/swimlane-configuration.png rename to doc/fr_FR/screenshots/swimlane-configuration.png diff --git a/doc/fr/screenshots/swimlanes.png b/doc/fr_FR/screenshots/swimlanes.png similarity index 100% rename from doc/fr/screenshots/swimlanes.png rename to doc/fr_FR/screenshots/swimlanes.png diff --git a/doc/fr/sharing-projects.markdown b/doc/fr_FR/sharing-projects.markdown similarity index 100% rename from doc/fr/sharing-projects.markdown rename to doc/fr_FR/sharing-projects.markdown diff --git a/doc/fr/subtasks.markdown b/doc/fr_FR/subtasks.markdown similarity index 100% rename from doc/fr/subtasks.markdown rename to doc/fr_FR/subtasks.markdown diff --git a/doc/fr/swimlanes.markdown b/doc/fr_FR/swimlanes.markdown similarity index 100% rename from doc/fr/swimlanes.markdown rename to doc/fr_FR/swimlanes.markdown diff --git a/doc/fr/task-links.markdown b/doc/fr_FR/task-links.markdown similarity index 100% rename from doc/fr/task-links.markdown rename to doc/fr_FR/task-links.markdown diff --git a/doc/fr/time-tracking.markdown b/doc/fr_FR/time-tracking.markdown similarity index 100% rename from doc/fr/time-tracking.markdown rename to doc/fr_FR/time-tracking.markdown diff --git a/doc/fr/transitions.markdown b/doc/fr_FR/transitions.markdown similarity index 100% rename from doc/fr/transitions.markdown rename to doc/fr_FR/transitions.markdown diff --git a/doc/fr/usage-examples.markdown b/doc/fr_FR/usage-examples.markdown similarity index 100% rename from doc/fr/usage-examples.markdown rename to doc/fr_FR/usage-examples.markdown diff --git a/doc/fr/user-management.markdown b/doc/fr_FR/user-management.markdown similarity index 100% rename from doc/fr/user-management.markdown rename to doc/fr_FR/user-management.markdown diff --git a/doc/fr/what-is-kanban.markdown b/doc/fr_FR/what-is-kanban.markdown similarity index 100% rename from doc/fr/what-is-kanban.markdown rename to doc/fr_FR/what-is-kanban.markdown