OSDN Git Service

added test script and translated
authorkokkiemouse <kokkiemouse@gmail.com>
Sat, 10 Oct 2020 01:09:39 +0000 (10:09 +0900)
committerkokkiemouse <kokkiemouse@gmail.com>
Sat, 10 Oct 2020 01:09:39 +0000 (10:09 +0900)
Signed-off-by: kokkiemouse <kokkiemouse@gmail.com>
15 files changed:
.gitignore
calamares-qmls/qml/calamares/CMakeLists.txt [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/BackButton.qml [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/ForwardButton.qml [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/NavButton.qml [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/Presentation.qml [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/Slide.qml [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/SlideCounter.qml [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/qmldir [new file with mode: 0644]
calamares-qmls/qml/calamares/slideshow/qmldir.license [new file with mode: 0644]
calamares-test [new file with mode: 0755]
channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-default_en.ts [deleted file]
channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-default_ja.ts [deleted file]
channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-serene_ja.ts [new file with mode: 0644]
channels/share/airootfs/usr/share/calamares/branding/serene/show.qml

index b3d71a7..326146d 100644 (file)
@@ -2,3 +2,4 @@ test/
 cache/
 work/
 out/
+channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-serene_ja.qm
\ No newline at end of file
diff --git a/calamares-qmls/qml/calamares/CMakeLists.txt b/calamares-qmls/qml/calamares/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d74e79e
--- /dev/null
@@ -0,0 +1,40 @@
+# === This file is part of Calamares - <https://calamares.io> ===
+#
+#   SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
+#   SPDX-License-Identifier: BSD-2-Clause
+#
+
+# Install "slideshows" and other QML-sources for Calamares.
+#
+# In practice, in the central source repositoy, this means
+# just-install-the-slideshow-example. For alternative slideshows,
+# see the approach in the calamares-extensions repository.
+
+# Iterate over all the subdirectories which have a qmldir file, copy them over to the build dir,
+# and install them into share/calamares/qml/calamares
+file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" )
+foreach( SUBDIRECTORY ${SUBDIRECTORIES} )
+    if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}"
+        AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/qmldir" )
+
+        set( QML_DIR share/calamares/qml )
+        set( QML_MODULE_DESTINATION ${QML_DIR}/calamares/${SUBDIRECTORY} )
+
+        # We glob all the files inside the subdirectory, and we make sure they are
+        # synced with the bindir structure and installed.
+        file( GLOB QML_MODULE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" )
+        foreach( QML_MODULE_FILE ${QML_MODULE_FILES} )
+            if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE} )
+                configure_file( ${SUBDIRECTORY}/${QML_MODULE_FILE} ${SUBDIRECTORY}/${QML_MODULE_FILE} COPYONLY )
+
+                install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${QML_MODULE_FILE}
+                         DESTINATION ${QML_MODULE_DESTINATION} )
+            endif()
+        endforeach()
+
+        message( "-- ${BoldYellow}Configured QML module: ${BoldRed}calamares.${SUBDIRECTORY}${ColorReset}" )
+
+    endif()
+endforeach()
+
+message( "" )
diff --git a/calamares-qmls/qml/calamares/slideshow/BackButton.qml b/calamares-qmls/qml/calamares/slideshow/BackButton.qml
new file mode 100644 (file)
index 0000000..4e420e0
--- /dev/null
@@ -0,0 +1,15 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ *   SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
+ *   SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ *   Calamares is Free Software: see the License-Identifier above.
+ *
+ */
+
+NavButton {
+    id: backButton
+    anchors.left: parent.left
+    visible: parent.currentSlide > 0
+    isForward: false
+}
diff --git a/calamares-qmls/qml/calamares/slideshow/ForwardButton.qml b/calamares-qmls/qml/calamares/slideshow/ForwardButton.qml
new file mode 100644 (file)
index 0000000..7838fab
--- /dev/null
@@ -0,0 +1,14 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ *   SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
+ *   SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ *   Calamares is Free Software: see the License-Identifier above.
+ *
+ */
+
+NavButton {
+    id: forwardButton
+    anchors.right: parent.right
+    visible: parent.currentSlide + 1 < parent.slides.length;
+}
diff --git a/calamares-qmls/qml/calamares/slideshow/NavButton.qml b/calamares-qmls/qml/calamares/slideshow/NavButton.qml
new file mode 100644 (file)
index 0000000..bdb2f40
--- /dev/null
@@ -0,0 +1,59 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ *   SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
+ *   SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ *   Calamares is Free Software: see the License-Identifier above.
+ *
+ */
+
+/* This is a navigation (arrow) button that fades in on hover, and
+ * which calls forward / backward navigation on the presentation it
+ * is in. It should be a child item of the presentation (not of a
+ * single slide). Use the ForwardButton or BackButton for a pre-
+ * configured instance that interacts with the presentation.
+ */
+
+import QtQuick 2.5;
+
+Image {
+    id: fade
+
+    property bool isForward : true
+
+    width: 100
+    height: 100
+    anchors.verticalCenter: parent.verticalCenter
+    opacity: 0.3
+
+    OpacityAnimator {
+        id: fadeIn
+        target: fade
+        from: fade.opacity
+        to: 1.0
+        duration: 500
+        running: false
+    }
+
+    OpacityAnimator {
+        id: fadeOut
+        target: fade
+        from: fade.opacity
+        to: 0.3
+        duration: 250
+        running: false
+    }
+
+    MouseArea {
+        anchors.fill: parent
+        hoverEnabled: true
+        onEntered: { fadeOut.running = false; fadeIn.running = true }
+        onExited: { fadeIn.running = false ; fadeOut.running = true }
+        onClicked: {
+            if (isForward)
+                fade.parent.goToNextSlide()
+            else
+                fade.parent.goToPreviousSlide()
+        }
+    }
+}
diff --git a/calamares-qmls/qml/calamares/slideshow/Presentation.qml b/calamares-qmls/qml/calamares/slideshow/Presentation.qml
new file mode 100644 (file)
index 0000000..1eed2e8
--- /dev/null
@@ -0,0 +1,243 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ *   SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org>
+ *   SPDX-FileCopyrightText: 2016 The Qt Company Ltd.
+ *   SPDX-License-Identifier: LGPL-2.1-only
+ *
+ *   2017, Adriaan de Groot <groot@kde.org>
+ *     - added looping, keys-instead-of-shortcut
+ *   2018, Adriaan de Groot <groot@kde.org>
+ *     - make looping a property, drop the 'c' fade-key
+ *     - drop navigation through entering a slide number
+ *       (this and the 'c' key make sense in a *presentation*
+ *       slideshow, not in a passive slideshow like Calamares)
+ *     - remove quit key
+ *   2019, Adriaan de Groot <groot@kde.org>
+ *     - Support "V2" loading
+ *     - Disable shortcuts until the content is visible in Calamares
+ *   2020, Adriaan de Groot <groot@kde.org>
+ *     - Updated to SPDX headers
+ */
+
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QML Presentation System.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import QtQuick 2.5
+import QtQuick.Window 2.0
+
+Item {
+    id: root
+
+    property variant slides: []
+    property int currentSlide: 0
+
+    property bool loopSlides: true
+
+    property bool showNotes: false;
+    property bool allowDelay: true;
+    property alias mouseNavigation: mouseArea.enabled
+    property bool arrowNavigation: true
+    property bool keyShortcutsEnabled: true
+
+    property color titleColor: textColor;
+    property color textColor: "black"
+    property string fontFamily: "Helvetica"
+    property string codeFontFamily: "Courier New"
+
+    // This is set by the C++ part of Calamares when the slideshow
+    // becomes visible. You can connect it to a timer, or whatever
+    // else needs to start only when the slideshow becomes visible.
+    //
+    // It is used in this example also to keep the keyboard shortcuts
+    // enabled only while the slideshow is active.
+    property bool activatedInCalamares: false
+
+    // Private API
+    property int _lastShownSlide: 0
+
+    Component.onCompleted: {
+        var slideCount = 0;
+        var slides = [];
+        for (var i=0; i<root.children.length; ++i) {
+            var r = root.children[i];
+            if (r.isSlide) {
+                slides.push(r);
+            }
+        }
+
+        root.slides = slides;
+
+        // Make first slide visible...
+        if (root.slides.length > 0)
+            root.slides[root.currentSlide].visible = true;
+    }
+
+    function switchSlides(from, to, forward) {
+        from.visible = false
+        to.visible = true
+        return true
+    }
+
+    onCurrentSlideChanged: {
+        switchSlides(root.slides[_lastShownSlide], root.slides[currentSlide], currentSlide > _lastShownSlide)
+        _lastShownSlide = currentSlide
+        // Always keep focus on the slideshow
+        root.focus = true
+    }
+
+    function goToNextSlide() {
+        if (root.slides[currentSlide].delayPoints) {
+            if (root.slides[currentSlide]._advance())
+                return;
+        }
+        if (currentSlide + 1 < root.slides.length)
+            ++currentSlide;
+        else if (loopSlides)
+            currentSlide = 0;  // Loop at the end
+    }
+
+    function goToPreviousSlide() {
+        if (currentSlide - 1 >= 0)
+            --currentSlide;
+        else if (loopSlides)
+            currentSlide = root.slides.length - 1
+    }
+
+    focus: true  // Keep focus
+
+    // Navigation through key events, too
+    Keys.onSpacePressed: goToNextSlide()
+    Keys.onRightPressed: goToNextSlide()
+    Keys.onLeftPressed: goToPreviousSlide()
+
+    // navigate with arrow keys
+    Shortcut { sequence: StandardKey.MoveToNextLine; enabled: root.activatedInCalamares && root .arrowNavigation; onActivated: goToNextSlide() }
+    Shortcut { sequence: StandardKey.MoveToPreviousLine; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToPreviousSlide() }
+    Shortcut { sequence: StandardKey.MoveToNextChar; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToNextSlide() }
+    Shortcut { sequence: StandardKey.MoveToPreviousChar; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToPreviousSlide() }
+
+    // presentation-specific single-key shortcuts (which interfere with normal typing)
+    Shortcut { sequence: " "; enabled: root.activatedInCalamares && root.keyShortcutsEnabled; onActivated: goToNextSlide() }
+
+    // standard shortcuts
+    Shortcut { sequence: StandardKey.MoveToNextPage; enabled: root.activatedInCalamares; onActivated: goToNextSlide() }
+    Shortcut { sequence: StandardKey.MoveToPreviousPage; enabled: root.activatedInCalamares; onActivated: goToPreviousSlide() }
+
+    MouseArea {
+        id: mouseArea
+        anchors.fill: parent
+        acceptedButtons: Qt.LeftButton | Qt.RightButton
+        onClicked: {
+            if (mouse.button == Qt.RightButton)
+                goToPreviousSlide()
+            else
+                goToNextSlide()
+        }
+        onPressAndHold: goToPreviousSlide(); //A back mechanism for touch only devices
+    }
+
+    Window {
+        id: notesWindow;
+        width: 400
+        height: 300
+
+        title: "QML Presentation: Notes"
+        visible: root.showNotes
+
+        Flickable {
+            anchors.fill: parent
+            contentWidth: parent.width
+            contentHeight: textContainer.height
+
+            Item {
+                id: textContainer
+                width: parent.width
+                height: notesText.height + 2 * notesText.padding
+
+                Text {
+                    id: notesText
+
+                    property real padding: 16;
+
+                    x: padding
+                    y: padding
+                    width: parent.width - 2 * padding
+
+
+                    font.pixelSize: 16
+                    wrapMode: Text.WordWrap
+
+                    property string notes: root.slides[root.currentSlide].notes;
+
+                    onNotesChanged: {
+                        var result = "";
+
+                        var lines = notes.split("\n");
+                        var beginNewLine = false
+                        for (var i=0; i<lines.length; ++i) {
+                            var line = lines[i].trim();
+                            if (line.length == 0) {
+                                beginNewLine = true;
+                            } else {
+                                if (beginNewLine && result.length) {
+                                    result += "\n\n"
+                                    beginNewLine = false
+                                }
+                                if (result.length > 0)
+                                    result += " ";
+                                result += line;
+                            }
+                        }
+
+                        if (result.length == 0) {
+                            font.italic = true;
+                            text = "no notes.."
+                        } else {
+                            font.italic = false;
+                            text = result;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/calamares-qmls/qml/calamares/slideshow/Slide.qml b/calamares-qmls/qml/calamares/slideshow/Slide.qml
new file mode 100644 (file)
index 0000000..9cb9e73
--- /dev/null
@@ -0,0 +1,206 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ *   SPDX-FileCopyrightText: 2012 Digia Plc and/or its subsidiary(-ies).
+ *   SPDX-License-Identifier: LGPL-2.1-only
+ */
+
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QML Presentation System.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import QtQuick 2.5
+
+Item {
+    /*
+      Slides can only be instantiated as a direct child of a Presentation {} as they rely on
+      several properties there.
+     */
+
+    id: slide
+
+    property bool isSlide: true;
+
+    property bool delayPoints: false;
+    property int _pointCounter: 0;
+    function _advance() {
+        if (!parent.allowDelay)
+            return false;
+
+        _pointCounter = _pointCounter + 1;
+        if (_pointCounter < content.length)
+            return true;
+        _pointCounter = 0;
+        return false;
+    }
+
+    property string title;
+    property variant content: []
+    property string centeredText
+    property string writeInText;
+    property string notes;
+
+    property real fontSize: parent.height * 0.05
+    property real fontScale: 1
+
+    property real baseFontSize: fontSize * fontScale
+    property real titleFontSize: fontSize * 1.2 * fontScale
+    property real bulletSpacing: 1
+
+    property real contentWidth: width
+
+    // Define the slide to be the "content area"
+    x: parent.width * 0.05
+    y: parent.height * 0.2
+    width: parent.width * 0.9
+    height: parent.height * 0.7
+
+    property real masterWidth: parent.width
+    property real masterHeight: parent.height
+
+    property color titleColor: parent.titleColor;
+    property color textColor: parent.textColor;
+    property string fontFamily: parent.fontFamily;
+    property int textFormat: Text.PlainText
+
+    visible: false
+
+    Text {
+        id: titleText
+        font.pixelSize: titleFontSize
+        text: title;
+        anchors.horizontalCenter: parent.horizontalCenter
+        anchors.bottom: parent.top
+        anchors.bottomMargin: parent.fontSize * 1.5
+        font.bold: true;
+        font.family: slide.fontFamily
+        color: slide.titleColor
+        horizontalAlignment: Text.Center
+        z: 1
+    }
+
+    Text {
+        id: centeredId
+        width: parent.width
+        anchors.centerIn: parent
+        anchors.verticalCenterOffset: - parent.y / 3
+        text: centeredText
+        horizontalAlignment: Text.Center
+        font.pixelSize: baseFontSize
+        font.family: slide.fontFamily
+        color: slide.textColor
+        wrapMode: Text.Wrap
+    }
+
+    Text {
+        id: writeInTextId
+        property int length;
+        font.family: slide.fontFamily
+        font.pixelSize: baseFontSize
+        color: slide.textColor
+
+        anchors.fill: parent;
+        wrapMode: Text.Wrap
+
+        text: slide.writeInText.substring(0, length);
+
+        NumberAnimation on length {
+            from: 0;
+            to: slide.writeInText.length;
+            duration: slide.writeInText.length * 30;
+            running: slide.visible && parent.visible && slide.writeInText.length > 0
+        }
+
+        visible: slide.writeInText != undefined;
+    }
+
+
+    Column {
+        id: contentId
+        anchors.fill: parent
+
+        Repeater {
+            model: content.length
+
+            Row {
+                id: row
+
+                function decideIndentLevel(s) { return s.charAt(0) == " " ? 1 + decideIndentLevel(s.substring(1)) : 0 }
+                property int indentLevel: decideIndentLevel(content[index])
+                property int nextIndentLevel: index < content.length - 1 ? decideIndentLevel(content[index+1]) : 0
+                property real indentFactor: (10 - row.indentLevel * 2) / 10;
+
+                height: text.height + (nextIndentLevel == 0 ? 1 : 0.3) * slide.baseFontSize * slide.bulletSpacing
+                x: slide.baseFontSize * indentLevel
+                visible: (!slide.parent.allowDelay || !delayPoints) || index <= _pointCounter
+
+                Rectangle {
+                    id: dot
+                    anchors.baseline: text.baseline
+                    anchors.baselineOffset: -text.font.pixelSize / 2
+                    width: text.font.pixelSize / 3
+                    height: text.font.pixelSize / 3
+                    color: slide.textColor
+                    radius: width / 2
+                    opacity: text.text.length == 0 ? 0 : 1
+                }
+
+                Item {
+                    id: space
+                    width: dot.width * 1.5
+                    height: 1
+                }
+
+                Text {
+                    id: text
+                    width: slide.contentWidth - parent.x - dot.width - space.width
+                    font.pixelSize: baseFontSize * row.indentFactor
+                    text: content[index]
+                    textFormat: slide.textFormat
+                    wrapMode: Text.WordWrap
+                    color: slide.textColor
+                    horizontalAlignment: Text.AlignLeft
+                    font.family: slide.fontFamily
+                }
+            }
+        }
+    }
+
+}
diff --git a/calamares-qmls/qml/calamares/slideshow/SlideCounter.qml b/calamares-qmls/qml/calamares/slideshow/SlideCounter.qml
new file mode 100644 (file)
index 0000000..d5b2de7
--- /dev/null
@@ -0,0 +1,29 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ *   SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
+ *   SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ *   Calamares is Free Software: see the License-Identifier above.
+ *
+ */
+
+/* This control just shows a (non-translated) count of the slides
+ * in the slideshow in the format "n / total".
+ */
+
+import QtQuick 2.5;
+
+Rectangle {
+    id: slideCounter
+    anchors.right: parent.right
+    anchors.bottom: parent.bottom
+    width: 100
+    height: 50
+
+    Text {
+        id: slideCounterText
+        anchors.centerIn: parent
+        //: slide counter, %1 of %2 (numeric)
+        text: qsTr("%L1 / %L2").arg(parent.parent.currentSlide + 1).arg(parent.parent.slides.length)
+    }
+}
diff --git a/calamares-qmls/qml/calamares/slideshow/qmldir b/calamares-qmls/qml/calamares/slideshow/qmldir
new file mode 100644 (file)
index 0000000..7b964b8
--- /dev/null
@@ -0,0 +1,10 @@
+module calamares.slideshow
+
+Presentation 1.0 Presentation.qml
+Slide 1.0 Slide.qml
+
+NavButton 1.0 NavButton.qml
+ForwardButton 1.0 ForwardButton.qml
+BackButton 1.0 BackButton.qml
+
+SlideCounter 1.0 SlideCounter.qml
diff --git a/calamares-qmls/qml/calamares/slideshow/qmldir.license b/calamares-qmls/qml/calamares/slideshow/qmldir.license
new file mode 100644 (file)
index 0000000..d2da9cf
--- /dev/null
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: no
+SPDX-License-Identifier: CC0-1.0
diff --git a/calamares-test b/calamares-test
new file mode 100755 (executable)
index 0000000..efab20a
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+cd $(readlink -f "${0%/*}")
+lrelease channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-serene_ja.ts
+qmlscene -I calamares-qmls/qml/ -geometry 600x400 -translation channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-serene_ja.qm channels/share/airootfs/usr/share/calamares/branding/serene/show.qml
\ No newline at end of file
diff --git a/channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-default_en.ts b/channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-default_en.ts
deleted file mode 100644 (file)
index d18f2f7..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="en_US">
-<context>
-    <name>show</name>
-    <message>
-        <location filename="../show.qml" line="41"/>
-        <source>Slide_Text_1</source>
-        <translation type="unfinished">&lt;h1 id=&quot;welcome-to-serene-linux&quot;&gt;Welcome to Serene Linux&lt;/h1&gt;&lt;p&gt;Serene Linux is a New OS developed based on Fedora.&lt;br/&gt;&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="52"/>
-        <source>Slide_Text_2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="63"/>
-        <source>Slide_Text_3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="74"/>
-        <source>Slide_Text_4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="85"/>
-        <source>Slide_Text_5</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-</TS>
diff --git a/channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-default_ja.ts b/channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-default_ja.ts
deleted file mode 100644 (file)
index 0c2d163..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="ja_JP">
-<context>
-    <name>show</name>
-    <message>
-        <location filename="../show.qml" line="41"/>
-        <source>Slide_Text_1</source>
-        <translation type="unfinished">&lt;h1 id=&quot;ようこそ-serene-linuxへ&quot;&gt;ようこそ Serene Linuxへ&lt;/h1&gt;&lt;p&gt;Serene Linux はFedoraをベースとしたOSです。&lt;br/&gt;Xfceベースの美しいUIと、&lt;br /&gt;RHEL系でおなじみの&lt;b&gt;DNF&lt;/b&gt;パッケージマネージャーを搭載しています。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="52"/>
-        <source>Slide_Text_2</source>
-        <translation type="unfinished">&lt;h1 id=&quot;たくさんの使用可能なソフトウェア&quot;&gt;たくさんの使用可能なソフトウェア&lt;/h1&gt;&lt;p&gt;Serene Linux はFedoraの膨大なリポジトリが使用可能です。&lt;br /&gt; また、配布されているrpmパッケージもインストールすることが可能で、&lt;br /&gt;様々な種類のソフトウェアを使うことが可能です。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="63"/>
-        <source>Slide_Text_3</source>
-        <translation type="unfinished">&lt;h1 id=&quot;使いやすさ&quot;&gt;使いやすさ&lt;/h1&gt;&lt;p&gt;Serene LinuxではGoogleサービスが使用しやすくなっています。&lt;br /&gt; 画面下のGoogleアイコンから、Googleサービスが利用可能です。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="74"/>
-        <source>Slide_Text_4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../show.qml" line="85"/>
-        <source>Slide_Text_5</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-</TS>
diff --git a/channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-serene_ja.ts b/channels/share/airootfs/usr/share/calamares/branding/serene/lang/calamares-serene_ja.ts
new file mode 100644 (file)
index 0000000..e842bcd
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="ja_JP">
+<context>
+    <name>show</name>
+    <message>
+        <source>Thank you for installing SereneLinux.
+In installing, This slide will show how to use SereneLinux.</source>
+        <translation>SereneLinuxをインストールしていただき&lt;br/&gt;
+ありがとうございます。
+このスライドはSereneLinuxの使い方を乗せる予定です。</translation>
+    </message>
+    <message>
+        <source>&lt;b&gt;Thank you for installing SereneLinux&lt;/b&gt;</source>
+        <translation type="unfinished">&lt;b&gt;SereneLinuxをインストールしていただき&lt;br/&gt;ありがとうございます。&lt;/b&gt;</translation>
+    </message>
+</context>
+</TS>
index 7776387..b97b207 100644 (file)
@@ -48,7 +48,7 @@ Presentation
             id: description_1
             font.pixelSize: 15
             width: parent.width/2
-            text: "Thank you for installing SereneLinux.\nIn installing, This slide will show how to use SereneLinux."
+            text: qsTr("Thank you for installing SereneLinux.\nIn installing, This slide will show how to use SereneLinux.")
             anchors.bottom: parent.bottom
             anchors.right:  parent.right
             anchors.bottomMargin: 50
@@ -71,7 +71,7 @@ Presentation
             id: text_1
             font.pixelSize: 25
             font.weight: font.bold
-            text: "<b>Thank you for installing SereneLinux</b>"
+            text: qsTr("<b>Thank you for installing SereneLinux</b>")
             x: -800
             anchors.top: presentation.top
             anchors.left: presentation.left