]> BookStack Code Mirror - bookstack/commitdiff
Merge pull request #753 from Alwaysin/master
authorDan Brown <redacted>
Sat, 24 Mar 2018 14:36:12 +0000 (14:36 +0000)
committerGitHub <redacted>
Sat, 24 Mar 2018 14:36:12 +0000 (14:36 +0000)
Update french language

14 files changed:
config/app.php
package-lock.json
package.json
resources/assets/js/components/index.js
resources/assets/js/components/toggle-switch.js [new file with mode: 0644]
resources/assets/sass/_buttons.scss
resources/assets/sass/_forms.scss
resources/lang/en/settings.php
resources/lang/fr/entities.php
resources/lang/ja/common.php
resources/lang/ja/entities.php
resources/views/components/toggle-switch.blade.php
resources/views/settings/index.blade.php
webpack.config.js

index ce2225221a7081dd19e54a279caee63806bf3f69..fad0c20f247fb97c84833f268c3c545c55ef6465 100755 (executable)
@@ -150,8 +150,6 @@ return [
          */
         Intervention\Image\ImageServiceProvider::class,
         Barryvdh\DomPDF\ServiceProvider::class,
-        Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
-        Barryvdh\Debugbar\ServiceProvider::class,
         Barryvdh\Snappy\ServiceProvider::class,
 
 
@@ -166,7 +164,6 @@ return [
         BookStack\Providers\EventServiceProvider::class,
         BookStack\Providers\RouteServiceProvider::class,
         BookStack\Providers\CustomFacadeProvider::class,
-
     ],
 
     /*
@@ -224,7 +221,6 @@ return [
         'ImageTool' => Intervention\Image\Facades\Image::class,
         'DomPDF' => Barryvdh\DomPDF\Facade::class,
         'SnappyPDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
-        'Debugbar'  => Barryvdh\Debugbar\Facade::class,
 
         /**
          * Custom
index 536a6791191e2b0662fb2a9f41cf4ce0b4a5b962..ddb40574e92b7ffc7db7d559d02d531163bfb076 100644 (file)
         "loader-utils": "1.1.0"
       }
     },
+    "extract-text-webpack-plugin": {
+      "version": "4.0.0-beta.0",
+      "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz",
+      "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==",
+      "dev": true,
+      "requires": {
+        "async": "2.6.0",
+        "loader-utils": "1.1.0",
+        "schema-utils": "0.4.5",
+        "webpack-sources": "1.1.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "2.6.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+          "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+          "dev": true,
+          "requires": {
+            "lodash": "4.17.4"
+          }
+        }
+      }
+    },
     "extsprintf": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
index d26ff334e4e7aa9ec3bdb040af83054b21e25794..eebda1fd6e7b1a912b4a12082c56db0b00b4e686 100644 (file)
   "devDependencies": {
     "@babel/core": "^7.0.0-beta.40",
     "@babel/preset-env": "^7.0.0-beta.40",
+    "autoprefixer": "^8.1.0",
     "babel-loader": "^8.0.0-beta.0",
     "babel-polyfill": "^6.26.0",
-    "autoprefixer": "^8.1.0",
     "css-loader": "^0.28.10",
-    "extract-loader": "^1.0.2",
-    "file-loader": "^1.1.11",
+    "extract-text-webpack-plugin": "^4.0.0-beta.0",
     "livereload": "^0.7.0",
     "node-sass": "^4.7.2",
     "npm-run-all": "^4.1.2",
index 5d091623a0bd110faf7f15a18ea7445d546312a7..6069dd18bfece7c9ae1e4d43634889814eb397e7 100644 (file)
@@ -16,6 +16,7 @@ let componentMapping = {
     'editor-toolbox': require('./editor-toolbox'),
     'image-picker': require('./image-picker'),
     'collapsible': require('./collapsible'),
+    'toggle-switch': require('./toggle-switch'),
 };
 
 window.components = {};
diff --git a/resources/assets/js/components/toggle-switch.js b/resources/assets/js/components/toggle-switch.js
new file mode 100644 (file)
index 0000000..8eb5595
--- /dev/null
@@ -0,0 +1,19 @@
+
+class ToggleSwitch {
+
+    constructor(elem) {
+        this.elem = elem;
+        this.input = elem.querySelector('input');
+
+        this.elem.onclick = this.onClick.bind(this);
+    }
+
+    onClick(event) {
+        let checked = this.input.value !== 'true';
+        this.input.value = checked ? 'true' : 'false';
+        checked ? this.elem.classList.add('active') : this.elem.classList.remove('active');
+    }
+
+}
+
+module.exports = ToggleSwitch;
\ No newline at end of file
index c38e0ca1cd8561e4a58af610c3f10a32a038e75d..41a6e02c86189b059cdb405b9c08d029ac832dec 100644 (file)
@@ -65,6 +65,7 @@ $button-border-radius: 2px;
 .button.outline {
   background-color: transparent;
   color: #888;
+  fill: #888;
   border: 1px solid #DDD;
   &:hover, &:focus, &:active {
     box-shadow: none;
@@ -73,25 +74,31 @@ $button-border-radius: 2px;
   &.page {
     border-color: $color-page;
     color: $color-page;
+    fill: $color-page;
     &:hover, &:focus, &:active {
       background-color: $color-page;
       color: #FFF;
+      fill: #FFF;
     }
   }
   &.chapter {
     border-color: $color-chapter;
     color: $color-chapter;
+    fill: $color-chapter;
     &:hover, &:focus, &:active {
       background-color: $color-chapter;
       color: #FFF;
+      fill: #FFF;
     }
   }
   &.book {
     border-color: $color-book;
     color: $color-book;
+    fill: $color-book;
     &:hover, &:focus, &:active {
       background-color: $color-book;
       color: #FFF;
+      fill: #FFF;
     }
   }
 }
index 94d38f4e86f5d98b36fb38334ada6ca04efa3de5..11adc7951917aea665df3272f23578a2186bdbc4 100644 (file)
@@ -98,7 +98,6 @@ label {
   font-size: 0.94em;
   font-weight: 400;
   color: #999;
-  text-transform: uppercase;
   padding-bottom: 2px;
   margin-bottom: 0.2em;
   &.inline {
@@ -192,6 +191,13 @@ input:checked + .toggle-switch {
   }
 }
 
+.simple-code-input {
+  background-color: #F8F8F8;
+  font-family: monospace;
+  font-size: 12px;
+  min-height: 100px;
+}
+
 .form-group {
   .text-pos, .text-neg {
     padding: $-xs 0;
index d5ef4840ee3d00aaab4f0d567f982042f218ac9a..ba631fb9e4bb2d08c14a178e6b03d432f8aa7f15 100755 (executable)
@@ -19,7 +19,7 @@ return [
     'app_settings' => 'App Settings',
     'app_name' => 'Application name',
     'app_name_desc' => 'This name is shown in the header and any emails.',
-    'app_name_header' => 'Show Application name in header?',
+    'app_name_header' => 'Show application name in header?',
     'app_public_viewing' => 'Allow public viewing?',
     'app_secure_images' => 'Enable higher security image uploads?',
     'app_secure_images_desc' => 'For performance reasons, all images are public. This option adds a random, hard-to-guess string in front of image urls. Ensure directory indexes are not enabled to prevent easy access.',
@@ -31,7 +31,7 @@ return [
     'app_logo_desc' => 'This image should be 43px in height. <br>Large images will be scaled down.',
     'app_primary_color' => 'Application primary color',
     'app_primary_color_desc' => 'This should be a hex value. <br>Leave empty to reset to the default color.',
-    'app_homepage' => 'Application Homepage',
+    'app_homepage' => 'Application homepage',
     'app_homepage_desc' => 'Select a page to show on the homepage instead of the default view. Page permissions are ignored for selected pages.',
     'app_homepage_default' => 'Default homepage view chosen',
     'app_disable_comments' => 'Disable comments',
index d4d9d247575ae25eda3ed1ff2325268fe0f9e976..011d8678c42fb814cce0c189e383c043cd734b92 100644 (file)
@@ -14,6 +14,7 @@ return [
     'recent_activity' => 'Activité récente',
     'create_now' => 'En créer un maintenant',
     'revisions' => 'Révisions',
+    'meta_revision' => 'Révision #:revisionCount',
     'meta_created' => 'Créé :timeLength',
     'meta_created_name' => 'Créé :timeLength par :user',
     'meta_updated' => 'Mis à jour :timeLength',
@@ -43,19 +44,39 @@ return [
      * Search
      */
     'search_results' => 'Résultats de recherche',
+    'search_total_results_found' => ':count résultats trouvés|:count résultats trouvés au total',
     'search_clear' => 'Réinitialiser la recherche',
     'search_no_pages' => 'Aucune page correspondant à cette recherche',
     'search_for_term' => 'recherche pour :term',
+    'search_more' => 'Plus de résultats',
+    'search_filters' => 'Filtres de recherche',
+    'search_content_type' => 'Type de contenu',
+    'search_exact_matches' => 'Correspondances exactes',
+    'search_tags' => 'Recherche par tags',
+    'search_viewed_by_me' => 'Vu par moi',
+    'search_not_viewed_by_me' => 'Non vu par moi',
+    'search_permissions_set' => 'Ensemble d\'autorisations',
+    'search_created_by_me' => 'Créé par moi',
+    'search_updated_by_me' => 'Mis à jour par moi',
+    'search_updated_before' => 'Mis à jour avant',
+    'search_updated_after' => 'Mis à jour après',
+    'search_created_before' => 'Créé avant',
+    'search_created_after' => 'Créé après',
+    'search_set_date' => 'Choisir la date',
+    'search_update' => 'Actualiser la recherche'
 
     /**
      * Books
      */
     'book' => 'Livre',
     'books' => 'Livres',
+    'x_books' => ':count livre|:count livres',
     'books_empty' => 'Aucun livre n\'a été créé',
     'books_popular' => 'Livres populaires',
     'books_recent' => 'Livres récents',
+    'books_new' => 'Nouveaux livres',
     'books_popular_empty' => 'Les livres les plus populaires apparaîtront ici.',
+    'books_new_empty' => 'Les livres les plus récents apparaitront ici.',
     'books_create' => 'Créer un nouveau livre',
     'books_delete' => 'Supprimer un livre',
     'books_delete_named' => 'Supprimer le livre :bookName',
@@ -85,6 +106,7 @@ return [
      */
     'chapter' => 'Chapitre',
     'chapters' => 'Chapitres',
+    'x_chapters' => ':count chapitre|:count chapitres',
     'chapters_popular' => 'Chapitres populaires',
     'chapters_new' => 'Nouveau chapitre',
     'chapters_create' => 'Créer un nouveau chapitre',
@@ -102,6 +124,7 @@ return [
     'chapters_empty' => 'Il n\'y a pas de page dans ce chapitre actuellement.',
     'chapters_permissions_active' => 'Permissions du chapitre activées',
     'chapters_permissions_success' => 'Permissions du chapitre mises à jour',
+    'chapters_search_this' => 'Rechercher dans ce chapitre',
 
     /**
      * Pages
@@ -139,16 +162,19 @@ return [
     'pages_md_preview' => 'Prévisualisation',
     'pages_md_insert_image' => 'Insérer une image',
     'pages_md_insert_link' => 'Insérer un lien',
+    'pages_md_insert_drawing' => 'Insérer un dessin',
     'pages_not_in_chapter' => 'La page n\'est pas dans un chapitre',
     'pages_move' => 'Déplacer la page',
     'pages_move_success' => 'Page déplacée à ":parentName"',
     'pages_permissions' => 'Permissions de la page',
     'pages_permissions_success' => 'Permissions de la page mises à jour',
+    'pages_revision' => 'Révision',
     'pages_revisions' => 'Révisions de la page',
     'pages_revisions_named' => 'Révisions pour :pageName',
     'pages_revision_named' => 'Révision pour :pageName',
     'pages_revisions_created_by' => 'Créé par',
     'pages_revisions_date' => 'Date de révision',
+    'pages_revisions_number' => '#',
     'pages_revisions_changelog' => 'Journal des changements',
     'pages_revisions_changes' => 'Changements',
     'pages_revisions_current' => 'Version courante',
@@ -219,6 +245,18 @@ return [
      */
     'comment' => 'Commentaire',
     'comments' => 'Commentaires',
+    'comment_add' => 'Ajouter un commentaire',
     'comment_placeholder' => 'Entrez vos commentaires ici',
+    'comment_count' => '{0} Pas de commentaires|{1} 1 Commentaire|[2,*] :count Commentaires',
     'comment_save' => 'Enregistrer le commentaire',
+    'comment_saving' => 'Enregistrement du commentaire...',
+    'comment_deleting' => 'Suppression du commentaire...',
+    'comment_new' => 'Nouveau commentaire',
+    'comment_created' => 'commenté :createDiff',
+    'comment_updated' => 'Mis à jour :updateDiff par :username',
+    'comment_deleted_success' => 'Commentaire supprimé',
+    'comment_created_success' => 'Commentaire ajouté',
+    'comment_updated_success' => 'Commentaire mis à jour',
+    'comment_delete_confirm' => 'Etes-vous sûr de vouloir supprimer ce commentaire?',
+    'comment_in_reply_to' => 'En réponse à :commentId',
 ];
index 185e6116cf463d7115f3c46c6e3f9d24c741eabb..8b6ffb777c675a8ae22a215e47f86585be139cb3 100644 (file)
@@ -23,6 +23,7 @@ return [
      */
     'actions' => '実行',
     'view' => '表示',
+    'reply' => '返信',
     'create' => '作成',
     'update' => '更新',
     'edit' => '編集',
index 8d215516d2b6657334ca747d25cef76f3173ab34..4431e0578fa50c527d5e5b50a43197ec42d4a8f1 100644 (file)
@@ -233,4 +233,23 @@ return [
     'profile_not_created_pages' => ':userNameはページを作成していません',
     'profile_not_created_chapters' => ':userNameはチャプターを作成していません',
     'profile_not_created_books' => ':userNameはブックを作成していません',
+
+    /**
+     * Comments
+     */
+    'comment' => 'コメント',
+    'comments' => 'コメント',
+    'comment_placeholder' => 'コメントを記入してく下さい',
+    'comment_count' => '{0} コメントはありません|{1} コメント(1)|[2,*] コメント(:count)',
+    'comment_save' => 'コメントを保存',
+    'comment_saving' => 'コメントを保存中...',
+    'comment_deleting' => 'コメントを削除中...',
+    'comment_new' => '新規コメント作成',
+    'comment_created' => 'コメントを作成しました :createDiff',
+    'comment_updated' => ':username により更新しました :updateDiff',
+    'comment_deleted_success' => 'コメントを削除しました',
+    'comment_created_success' => 'コメントを追加しました',
+    'comment_updated_success' => 'コメントを更新しました',
+    'comment_delete_confirm' => '本当にこのコメントを削除しますか?',
+    'comment_in_reply_to' => ':commentIdへ返信',
 ];
index ad54d5ab1f965eef8f435e66098c3abab5684f68..c5a30a60f9dae1842a75fcbc9ee3418b52584d18 100644 (file)
@@ -1,15 +1,4 @@
 <div toggle-switch="{{$name}}" class="toggle-switch @if($value) active @endif">
     <input type="hidden" name="{{$name}}" value="{{$value?'true':'false'}}"/>
     <div class="switch-handle"></div>
-</div>
-<script>
-    (function() {
-       var toggle = document.querySelector('[toggle-switch="{{$name}}"]');
-       var toggleInput = toggle.querySelector('input');
-       toggle.onclick = function(event) {
-           var checked = toggleInput.value !== 'true';
-           toggleInput.value = checked ? 'true' : 'false';
-           checked ? toggle.classList.add('active') : toggle.classList.remove('active');
-       };
-    })()
-</script>
\ No newline at end of file
+</div>
\ No newline at end of file
index 0b9ddd482c4f81ef57eaf5e74957bf4cc9fca0d8..51ca8ccb41403033c0c7e5ac08bbd24f12a7fc9c 100644 (file)
@@ -88,7 +88,7 @@
                 <div class="form-group">
                     <label for="setting-app-custom-head">{{ trans('settings.app_custom_html') }}</label>
                     <p class="small">{{ trans('settings.app_custom_html_desc') }}</p>
-                    <textarea name="setting-app-custom-head" id="setting-app-custom-head">{{ setting('app-custom-head', '') }}</textarea>
+                    <textarea class="simple-code-input" name="setting-app-custom-head" id="setting-app-custom-head">{{ setting('app-custom-head', '') }}</textarea>
                 </div>
 
                 <div class="form-group text-right">
index 5abde44231910f58ee02e406af892b5771fa6df3..c5ce4829fde1c99caf55ccd6025cbfb91c6971ae 100644 (file)
@@ -2,6 +2,7 @@ const path = require('path');
 const dev = process.env.NODE_ENV !== 'production';
 
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
+const ExtractTextPlugin = require("extract-text-webpack-plugin");
 
 const config = {
     target: 'web',
@@ -30,40 +31,33 @@ const config = {
             },
             {
                 test: /\.scss$/,
-                use: [{
-                    loader: 'file-loader',
-                    options: {
-                        name: '[name].css',
-                        context: './src/css/',
-                        outputPath: './',
-                        publicPath: 'public/'
-                    }
-                }, {
-                    loader: 'extract-loader', options: {
-                        publicPath: '',
-                    }
-                }, {
-                    loader: "css-loader", options: {
-                        sourceMap: dev
-                    }
-                }, {
-                    loader: 'postcss-loader',
-                    options: {
-                        ident: 'postcss',
-                        sourceMap: dev,
-                        plugins: (loader) => [
-                            require('autoprefixer')(),
-                        ]
-                    }
-                }, {
-                    loader: "sass-loader", options: {
-                        sourceMap: dev
-                    }
-                }]
+                use: ExtractTextPlugin.extract({
+                    fallback: "style-loader",
+                    use: [{
+                        loader: "css-loader", options: {
+                            sourceMap: dev
+                        }
+                    }, {
+                        loader: 'postcss-loader',
+                        options: {
+                            ident: 'postcss',
+                            sourceMap: dev,
+                            plugins: (loader) => [
+                                require('autoprefixer')(),
+                            ]
+                        }
+                    }, {
+                        loader: "sass-loader", options: {
+                            sourceMap: dev
+                        }
+                    }]
+                })
             }
         ]
     },
-    plugins: []
+    plugins: [
+        new ExtractTextPlugin("[name].css"),
+    ]
 };
 
 if (dev) {