User:Claus chr/DPL: Difference between revisions

    From KDE UserBase Wiki
    No edit summary
    No edit summary
    Line 1: Line 1:
    {{Search|\{\{Remember}}
    {{Search|\{\{Remember\{{!}}}}


    :Reference: [http://semeb.com/dpldemo/index.php?title=DPL:Manual DPL Manual]
    :Reference: [http://semeb.com/dpldemo/index.php?title=DPL:Manual DPL Manual]

    Revision as of 13:14, 21 August 2012

    There are 261 pages beginning with A-J

    <translate>

    Available Tools

    • Tool Box shows you wiki markup for the effect you need
    • Typographical Guidelines standardizes markup for use in translation, either to official manuals (DocBook) or to other languages.

    Deciding where to create your page

    Many people choose to draft a page on their own Talk page, then move the result to the desired site. Sometimes there is a good reason for preferring to do it in the final location. If that is the case, consider using before your content {{Construction}} which will display

    Under Construction

    This is a new page, currently under construction!


    Wiki Structure

    For the convenience of users we try to avoid creating a structure more than three levels deep, avoiding having to type long paths for page names. For most purposes, the following guide will suffice:

    Application
    Application/Troubleshooting
    Application/xxx-How-To
    Application/Manual
    Application/Manual/Introduction
    Application/Manual/Section_1
    Application/Manual/Section_xxx

    Remember

    Please do not use any kind of punctuation in your page names — punctuation like question marks or periods creates serious problems for the wiki software, in particular for the translation system.


    Workflow

    • Navigate to a page, which will contain a link to your new page
    • Edit this page and insert a link to a new, not yet existing page like this: [[Special:myLanguage/My New Page]]
    • Write a one-line summary of what you changed
    • Hit the Preview button and check your work
    • Save your edits.

    Now the page shows a red colored link to your upcoming page. A click on this link will tell you, that the page doesn't exist yet, and offer you to create the page. Clicking this sends you directly to your new page and will open the edit box.

    Note

    You can also create a new page, by entering the URL of the new page directly in your browser address bar. In this case, don't forget to link the new page from another page.


    Note

    A double-Enter is required to make a new paragraph. Please use this after any heading, as it puts headings in a separate translation unit which is preferred by translators using external tools.


    Note

    If you are making frequent edits to your page, please use either {{Construction}} or {{Being_Edited}} so that translators and other contributors know to wait until you are finished.


    Warning

    Avoid using text smilies as they cause problems for translation applications (due to unbalanced parentheses). Instead use {{Smiley}} Other smilies can be found on [Commons Wikimedia] and the file-name is sufficient to get the image included


    Note

    For help about editing existing pages read Modify a Page.

    </translate>

    <translate>

    Statistics Synchronization Between Collections and with Last.fm

    Beginning with version 2.7, Amarok allows syncing the play-related metadata and statistics of the tracks (such as rating or play count) between any of your collections which show up in Media Sources -> Local Music and with the Last.fm web service, if you choose to use Last.fm.

    Manual Syncing

    At any time, you can start manual synchronization from Tools -> Synchronize Statistics...

    From here, you can start a synchronization between the collections you select here, which will default to what you have configured in the Amarok Metadata configuration.

    Conflicts and Syncing Statistics Dialog

    When syncing, Amarok will show a dialog window which states the conflicts and statistics of the syncing that has recently been in progress. In this window you will be able to see three tabs: Matched Tracks, Unique Tracks and Excluded Tracks.

    Matched Tracks
    This tab will show all the tracks that Amarok has found in more than one collection, and reflects conflicts. When tracks are grouped, you can see two types of background: light green, and light red. A light green background indicates the new or updated field, whilst a light red background will indicate the old/overwritten field. You do not need to solve all conflicts listed here; the particular field of the listed tracks are not going to be synced if you do not resolve the conflict.
    Unique Tracks
    These are tracks found in only one collection. You can use it as a difference view. Track dragging is supported here.
    Excluded Tracks
    These are tracks that are not synced because of different reasons, such as identical metadata, so as not cause to disorder in the database.
    Synchronizing with Last.fm

    If you have the Last.fm plugin enabled and configured correctly with your Last.fm account, you can choose to also synchronize your Amarok play counts, ratings and labels with your Last.fm Library. The sync takes some time, but you may continue using Amarok while it is syncing. Please note that Unattended Synchronization (which will be explained later on) is not possible with Last.fm, and synchronization from Last.fm to Amarok needs to be initiated manually.

    Spelling Auto-Correction

    Last.fm enables by default a feature that will auto-correct common misspelling during the sync. It can happen that even if you scrobble many track plays, it does not show up in Matched Tracks as Last.fm knows the track under a slightly different name.

    You can disable this feature on the Last.fm site, and changes will be applied also to your past scrobbles. You have two options:

    Off
    Tracks are matched properly, but if you change your tags after some time, your play-count will be split in two tracks.
    On
    You can play-count the tracks even if tags are changed after some time, but you will have to use Last.fm preferred spelling.
    Unattended Syncing

    Remember

    Please note the dialog will only appear in the case of iPods.


    When you connect a device that is able to sync with your collections, a pop-up like this will appear.

    For unattended syncing to start, you only need to click Yes in the pop-up. Amarok will work in the background, so the metadata in your device including ratings, first/last played times, play counts and labels will be synced with other collections configured to participate in the synchronization, and tracks recently played on the device will be scrobbled to Last.fm, if it is enabled. The process will not ask for user interaction unless any conflict is found in the middle.

    </translate>

    <translate>

    Introduction

    The Akonadi framework is responsible for providing applications with a centralized database to store, index and retrieve the user's personal information. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, etc.

    Currently, all KDE PIM applications with the exception of Akregator are using Akonadi to access user's PIM data.

    Controlling Akonadi

    Akonadi will start automatically in the background when any application using it is started.

    To manually start, stop or restart Akonadi, you can use the akonadictl command from the commandline. Using this method, you can get additional useful information on the console.

    To start the Akonadi server,

    akonadictl start

    To stop the Akonadi server,

    akonadictl stop

    To restart a running Akonadi server,

    akonadictl restart

    To query the status of the Akonadi server,

    akonadictl status

    Disabling the Akonadi subsystem

    The Akonadi server is automatically started by any Akonadi-enabled application. If you don't want Akonadi to be started after login, you have to ensure that no Akonadi-enabled application is launched at login or thereafter. Remember to check Plasma applets as well — the Digital Clock widget in the default panel, for instance uses Akonadi to (optionally) display calendar events and this is enabled in its settings by default (see the "Display Events" option) . You must remove any widgets that may start it from your start-up, if you wish Akonadi to start only when you start KMail or other applications.

    Remember

    If you don't want to have Akonadi running on your system at all, you can not use any of the Akonadi-enabled applications, such as KMail, KOrganizer or KAddressbook. Such applications will not work when Akonadi is disabled using the steps below. Also note, that some Plasma widgets, such as the Digital Clock uses Akonadi.


    To ensure that Akonadi is not started, check that no applications require it at login. In particular, open the Plasma clock applet preferences, go to Calendar and uncheck Show events to prevent Plasma from requesting information from Akonadi and thus allowing it to start.

    Some Definitions

    Real data
    By real data we mean the data, like the contacts or events. These data are stored either on a groupware server or in local files. Where exactly depends on the resource you are using. E.g. the Personal Contacts resource stores its data under $XDG_DATA_HOME/contacts.
    Cached data
    The cached data are copies of the real data that are kept in the database for faster access and offline caching. The database also keeps the meta data which are management data needed by Akonadi to work correctly.
    Configuration data
    The configuration data are the data that configure the Akonadi server and the individual resources. The general configuration data for the server can be found under $XDG_CONFIG_HOME/akonadi. The configuration data for each indvidual resources are stored under $XDG_CONFIG_HOME/akonadi_xyz_resourcerc# (xyz is name of resource and # its instance number).
    The Akonadi server configuration is a couple of files in $XDG_CONFIG_HOME/akonadi. It contains which data sources and helper programs are active and will be started and watched (so they can be restarted on crashes) by one of Akonadi's server processes (akonadi_control).
    Each data source handler (called resources) or helper program (called agents) can have its own configuration although some agents or resources don't require configuration. The general rule is that for every entry in $XDG_CONFIG_HOME/akonadi/agentsrc there is a corresponding configuration file in $XDG_CONFIG_HOME. For example, if the [Instances] section in agentrc contains an entry for akonadi_ical_resource_2, there is also a config file called akonadi_ical_resource_2rc in the $XDG_CONFIG_HOME directory.
    Depending on the type of data, such config files for resources will have filenames or directory names of where the data is stored. Common locations are KDE's legacy default files, e.g. $HOME/.kde/share/apps/korganizer/std.ics. New default locations are files and directories in $XDG_DATA_HOME, e.g. $XDG_DATA_HOME/contacts.

    Backup

    So now we need to decide what to back up. If you want to backup the "real data", then it depends on the resources you have configured... if you use a groupware server, then the backup should be done there. For contacts, the files under $XDG_DATA_HOME/contacts will normally be what you need.

    To back up the entire Akonadi configuration, including which resources are active and their configuration, you can use the pimdataexporter' tool. This, however doesn't back up the Akonadi database containing the cached data and, unfortunately, after restoring the configuration (using the pimdataexporter again), Akonadi will have to re-fetch all data again into its cache. This can cause configuration that points to actual mail folders or calendars to get broken and accidentally point to another folder.

    After restoring configuration and syncing all data, it's vital to manually check all folder configuration, especially in KMail identities and make sure the folders are configured properly.

    Frequently Asked Questions

    Where is my data now?

    Your data are safely stored outside of Akonadi control on your disk (e.g. local maildir folder or iCal calendar), or on a remote server (in case of e.g. email over IMAP or events from a CalDAV calendar). Akonadi will optionally store a copy of this data in its database to allow applications to quickly retrieve and display them. Any modifications done to data in the Akonadi database will be synced to the actual storage. The main advantage of using the database as a cache is that remote PIM data are available even when you are offline, and you can still interact with them (e.g. mark emails as read or move them, create new events, reschedule existing meetings etc.) and all the changes will get synced automatically once you connect to the internet again.

    Thus, deleting the Akonadi database will not cause any data to be lost (as long as all pending changes are synced).

    How to upgrade my PostgreSQL database?

    After updating your PostgreSQL server to a new major version, sometimes you will have to convert your Akonadi database for use with this new version. Instructions can be found on this page.

    Migration problems

    Akonadi's Glossary entry has a brief description of Akonadi's purpose, and other useful links.

    How do I switch from MySQL/PostgreSQL to SQLite?

    Currently, the only option is to delete all Akonadi configuration and data, configure Akonadi to use SQLite and then configure all the resources and agents from scratch. This also involves checking all application (KMail, KOrganizer, KAddressbook, etc.) configuration, as all references to folders (like configuration of Trash or Sent folders, default calendar etc.) will most likely be wrong now.

    To perform the migration, quit all PIM applications and stop Akonadi from command line:

    akonadictl stop

    Then, delete all Akonadi-related configuration and data directories and files:

    • Delete Akonadi configuration: $XDG_CONFIG_HOME/akonadi
    • Delete Akonadi database: $XDG_DATA_HOME/akonadi
    • Delete configuration of all Akonadi resources: $XDG_CONFIG_HOME/akonadi*
    • Delete data of all Akonadi resources: $XDG_DATA_HOME/akonadi*

    ($XDG_CONFIG_HOME defaults to $HOME/.config when not set, $XDG_DATA_HOME defaults to $HOME/.local/share.)

    Now, create a new Akonadi Server configuration file called akonadiserverrc in $HOME/.config/akonadi/ with the following contents:

    [%General]
    Driver=QSQLITE

    This will instruct Akonadi to use SQLite instead of the default (usually MySQL). Finally, you can start Akonadi (via akonadictl or simply by starting some Akonadi-enabled application) and update configuration of your PIM application.

    This guide can also be used to switch to MySQL or PostgreSQL databases. To switch to MySQL put Driver=QMYSQL into akonadiserverrc. In order to use PostgreSQL, put Driver=QPSQL in there. </translate>

    What is Tagging and why do you want it

    digiKam is an excellent tool to enrich a private photo collection by use of Tags and other metadata that can be written right inside the image files so the information you add follows the image file and will not get lost if you change computers or software (alternatively digiKam can save metadata in "sidecar" helper files next to your videos or read-only image files).

    Tags in your photo collection work the same as #hashtags on the Internet – they help you to find all your images that belong to the same category that you provided: locations, names of people, events (birthday, national day…) or anything that is meaningful to you (for example pictures that contain Lego; your 2nd car; sunsets; etc.).

    In addition, you can mark specific regions on the picture as “Face tags”, add descriptive text, rating from 1 to 5 stars and some more metadata types. All of this needs to be worth it – add data that you will realistically want to search and filter your collection on. Plus remember that you already have photo date, folder name where the photos are located (which is hopefully meaningful) and possibly even geographical coordinates embedded in your image files even before you start adding any tags.

    Working with Tags can be as simple as marking the location, who is in the picture and giving 4-5 stars to really nice pictures. Perhaps you will see an existing Tag hierarchy in your digiKam that was built based on Tags that were found in the images that you already have (those tags may come from your relative, friend or even some software and you are free to use those tags as an example or build your own system). On the other extreme metadata can get almost scientific with rules, data models and words like “Digital Asset Management”. When you are ready to try adding some tags, continue with this tutorial on How-to do it.

    Recently machine learning "AI" algorithms are doing more and more photo classification fully automatically, without any manual Tagging needed. Still, you can decide yourself how much manual tagging is worth it and what can be guessed by an algorithm. Note that digiKam also includes some similarity search tools and other clever algorithms which will evolve in the future to provide more value and easier search in your private photo collection.

    Don't Forget Privacy

    Remember to strip your tagged images of all metadata before you share them to people who do not understand metadata. Any metadata that you had or added in digiKam including GPS location, tags, people names, etc. will follow the image file when you share it on the internet or send it to someone (unless you use some tool to remove the metadata before sharing).


    Warning

    The default metadata related settings in digiKam may not be optimal for your use-case. It is worth understanding what exactly is digiKam reading from files, saving to files and which files are supported. See the "Setup of digiKam for Windows compatibility" tutorial for more details!


    Main Tagging tools in digiKam

    In the current version of digiKam (7.2+) it can be a little bit complicated to find all the metadata tools and toolbars, but thankfully there are excellent keyboard shortcuts that will both help you find all the necessary toolbars and also make entering information very efficient if you choose to remember the shortcuts.

    The main metadata tools
    Tags (descriptive tags): T (re-configurable)
    Face Tags or people tags: Ctrl + drag a box around a face
    Star rating: Ctrl + 0Ctrl + 5 (re-configurable)
    Edit Title: Alt + Shift + T (re-configurable)
    Edit Comment: Alt + Shift + C (re-configurable)
    Pick Label or Flag: Alt + 0Alt + 3 (re-configurable)
    Color Label: Ctrl + Alt + 0Ctrl + Alt + 9 (re-configurable)
    Edit Geo location: Ctrl + Shift + G (re-configurable)
    Edit Metadata (lots of fields): Ctrl + Shift + M (re-configurable)
    Rename file (lots of options): F2 (if you have RAW files, be careful renaming only JPG files)
    Rename folder: Shift + F2 (affects folder on your disk)

    + There are more tools such as “Adjust Time & Date” – see the menus and keyboard shortcuts.

    Different metadata types

    Note

    If you are not 100% sure which of the available metadata and tags should you use, consider reading "What tags to use" recommendation.


    Tags – How To

    To add a descriptive Tag – just press T when you have a picture selected. This will immediately open the right toolbar and you can start typing in a tag. Auto-complete will help you find the right spelling to match existing tags, or you can define a new tag.

    Remember that descriptive Tags should be used as keywords - try to use as few unique Tags as possible and make sure you are not creating duplicates with spelling variations.

    Tags can be assigned by typing or by clicking on checkboxes - digiKam has an excellent Tagging interface.

    Organize tags:

    • Build/edit tag hierarchy (good idea!) - you can drag and drop tags onto each other to “Move here” and create tags and sub-tags. For example Place “Family X home” under “City Name” to get a basic hierarchy.
    • Rename tags – right click any tag and select Properties and edit tag “Title”.
    • Delete tags – note, if you Delete a tag, it will be removed from all files that ever used it!
    • Assign a keyboard shortcut to a Tag – it is possible to add a unique shortcut key to directly assign frequently used tags.
    • Changing icon – each tag can have a custom icon (the icon will not be valid outside your digiKam, so do not spend too much effort on this).

    digiKam will propagate the change across all image files that used the old name.

    Note

    digiKam always tries to apply your updated tags to all managed files after you change tag hierarchy; re-name, merge or delete a tag. It will affect all files that used those specific tags previously. Still depending on your settings you may need to force writing of Metadata into files (not just digiKam database) by either using ItemWrite Metadata to File or even try using "Sync Metadata and Database" from ToolsMaintenance to fully apply the changes to all files.


    Note on tag hierarchies

    If you select a sub-tag in the tag tree (see "City Name 1" in the screenshot above) it is redundant to also tick a box in front of the parent tags such as "Country 2" and "- Location". If you have correct metadata settings, digiKam will still correctly write the whole hierarchical structure into file metadata. Therefore the default setting for Toggle AutoNone is very good even for hierarchical tags. (If you do have parent tags selected in addition to a sub-tag, it is not a real problem either - just a bit of redundant data in the files)


    Face Tags – How To

    Face or People tags are excellent to show not only who is in the picture but also which one out of all those wedding guests is that person you are looking for. Note that digiKam is unique among open-source and multi-platform photo galleries to feature full support for face regions (including imported face tags from other software) – as always digiKam saves your efforts into formats that will be readable by other software and the data stays safely embedded in each image file.

    Automatic face detection module in DigiKam is working and being actively developed. It can help you tag people without any privacy concerns of the “free cloud services” such as Google or Facebook. The use of automatic face detection is outside of the scope of this tutorial, but digiKam users do find the feature useful in the current state. No matter how good automatic detection is, you will likely run automatic detection first and then complement the results with manual face tagging.

    For effective manual people-tagging use Ctrl + drag a box around a face shortcut. This is a must-know shortcut that beats any other method for adding face tags.

    Face Tag visible on the image and in the Tag tab


    Note

    You do not have to draw a box around every face to add people tags on every picture. If there is no need to specify who-is-who, you can add (and remove) People tags using the same T shortcut from the keyboard only.


    Comments, Captions Description and Title

    The "Title" (and also “Captions”) field is suitable to write free text description about the photo or video which does not have the limitations like you find in filenames. Shortcut to quickly find the field: Alt + Shift + T. It is not that important how the field is called - the main difference from Descriptive Tags is that you are not expected to be consistent in the words you use or re-use this metadata among many files.

    For compatibility reasons it is better to use only "Title" field. It is of course possible to use both "Title" and "Captions" fields together, but then it is important that you have good metadata settings or you are well aware of the known compatibility issues with other software, including possible loss of your "Captions" data.

    Star rating

    The classic 5-star rating feature. Quite widely supported and reasonably easy to interpret. You can find guides and suggestions how to use this scale or think of your own.

    As an example, here is one way to interpret stars, as used by me:

    0 stars Not yet rated
    1 star To Delete (not deleted for some reason)
    2 stars Weak photo (useful for context, or completeness)
    3 stars Good photo (nice to show to people)
    4 stars Very good photo (“best of”)
    5 stars Outstanding photo (“work of art”)


    Pick Label (flag) and Color Label

    It is not recommended to use these labels for long-term data management. Flag and Color labeling is quite individual and open for interpretation. So there is a risk that nobody except You will ever understand the meaning behind your choices. Note that Microsoft software does not properly use or show Flag labels or Color labels. The Flag set in WLPG is also not written to the files, so it is not practically usable outside the temporary local database of WLPG [source].
    Still, Flags and Color Labels are supported by digiKam and this type of metadata can also be written into the image files. Here is a more in-depth tutorial about this: Color Labels and Picks in digiKam 2.

    Geo location

    Geo-tags is a big topic where besides manual coding there is also special hardware or GPS-enabled cameras (like most smartphones) that can help recording GPS data into your image files. DigiKam supports Geo-tags and map view, please see documentation or this tutorial for more details: Geotagging in digiKam. Shortcut: Ctrl + Shift + G.

    Note

    Some people use normal Tags T to create descriptive tags about location as an alternative to actual geographic tags. Without geo-tags, there will be no way to see a map view, but it may be an acceptable compromise.


    Author, copyrights and other Metadata

    If you wish to add other metadata, you are welcome to use “Edit Metadata” tool with a shortcut: Ctrl + Shift + M.


    Advanced topics

    Rotating face tags

    If you import face tags from Windows Photo Gallery (WLPG) and possibly other software that does not correctly handle image rotation metadata, it is a common problem that in some images the face tags are rotated by 90deg to one side.

    Unfortunately, as of now (v7.4) there is no direct way to rotate just face tags within digiKam.

    One workaround is to use any software that can losslessly rotate your images, but does not handle face tags (leaves them unchanged). Here is an example of practical workflow using "FastStone Image Viewer":

    1. Right-click on the image with rotated face tags and select Open With to open the file in the free "FastStone Image Viewer" for Windows. (or if FastStone is your default image viewer use can use ItemOpen With Default Application).
    2. Losslessly rotate the image in FastStone (or equivalent software) so that it aligns with the face tags. Return to digiKam.
    3. Refresh the album data by either pressing F5 key or using ToolsScan for new items command. Now you should see a duplicate of both correct and wrong Face Tags while the image is rotated to a side.
    4. Fix the face tags by using ItemReread Metadata from file. Now the duplicate face tags should be gone, but the image is still lying on the side.
    5. Finally rotate the image to correct orientation using on-screen button or keyboard shortcut in digiKam.

    As you can see, the current workaround is quite tedious, so for images with 1-4 persons it is probably easier to re-tag faces manually (until a better method is introduced).

    Copy tags from one file to another

    In case you create a new variant of an existing image in another software (for example – re-process a RAW file) it is very useful to be able to copy metadata from the previous variant of the image to the newly created file.

    Unfortunately, as of now (v7.4) there is no direct way to copy tags from one file to another in digiKam. Some workarounds are to copy metadata using

    open-source jExifToolGUI (https://hvdwolf.github.io/jExifToolGUI/),
    command line ExifTool (https://exiftool.org/exiftool_pod.html#COPYING-EXAMPLES)
    or other software.


    ”The batch-click way” method for quicker tagging

    Peter Albrecht described his digiKam tagging workflow with focus on efficiency that may help you gain speed and efficiency.

    1. switch to thumbnail view (you have to be able to select more than one image)
    2. shift the preview size to the maximum of 256 pixel (you want to be able to recognize the people on the photos)
    3. switch the right side-view to Caption/Tags and select the tab Tags
    4. select picture number one and look at the leftmost person on this picture
    5. hold Ctrl down and select all other pictures, showing this person
    6. search for the corresponding tag in the right side-view, select it and apply.
    7. if there are more persons in picture one, then select this picture again go to step 5, while looking for the next leftmost person.
    8. if you have all the persons in picture one, select picture two and look again for the leftmost person, you have not tagged yet, and go to step 5. (toggling the button tags already assigned in the lower right corner of the Tags tab, is very useful here)

    This way you go through all your pictures. In the beginning you have to tag a lot of people, but coming to the last pictures, most people will already be tagged and you can fast jump to the next picture.

    Tip

    For faster tagging try using keyboard shortcut T and auto-complete when you start typing.


    About this tutorial

    This tutorial is based on and is made to supersede the older tutorial from 2012: Tag your Photos (with focus on efficiency).
    You are very welcome to edit, update and Upgrade this tutorial page to make it better. No attribution or copyrights in this page!

    Introduction

    This tutorial is for people who would like to use open-source digiKam in-parallel or instead-of some Microsoft software that organizes photos (especially if you use people face tags):

    DigiKam is an excellent replacement for discontinued WLPG and can even be made cross-compatible to use both digiKam and Microsoft software interchangeably (see configuration tutorial) but you should proceed with care and caution when you introduce digiKam or any other software that can alter your existing metadata.

    In addition to this tutorial it is highly recommended to also be familiar with related tutorials by the same author: “Setup of digiKam for Windows compatibility” and “Tagging and Face Tags in digiKam”.

    As an alternative to this tutorial, there is "Migrate from Windows Photo Gallery to digiKam" of author Farblos. It covers more of the metadata managed by Windows Photo Gallery than this tutorial, but at a certain cost: The migration process described there is one-way only, where you start with exclusive Windows Photo Gallery usage and end up with exclusive digiKam usage. And it requires a lot of command line interaction, most notably with ExifTool.

    Back it up! Seriously

    Before you allow digiKam (or any other metadata editor) import (show) your previously tagged image files, make sure you have taken all the precautions:

    1. You have to back-up all your existing image & video files, preferably so that you can very quickly copy them back to the main location (you may need to do it multiple times).
    2. Create a test photo gallery folder where you will copy-in a few files to test in digiKam, before you give digiKam access to your real photo gallery.
    3. Make an additional Permanent backup of photo metadata – see below. This is to save you from any issues that may not even be related to migration to digiKam.
    4. Test as much as possible before you accept that migration was successful and consider overwriting your older backups with digiKam modified files:
      1. Try tagging over 100 photos will all types of tags that you use.
      2. Try searching for photos using different tags (hierarchical, star rating, etc.).
      3. Check how files from different cameras, different sources and formats have migrated.
      4. Make sure you know what will happen with video metadata, people tags on rotated pictures and other potential issues (see "Microsoft image metadata" section).
      5. If you plan to use cross-compatibility with OneDrive tagging, WLPG or other software – try to repeatedly make edits in one program then observe the changes in another so that you have files where each type of metadata was over-written in for example:
        • WLPG → digiKam → WLPG → digiKam
        • digiKam → WLPG → digiKam → WLPG
        • (there should not be any lost, duplicated or abnormal tags created from any of the edits. Exception - digiKam will likely create descriptive tags for all People Face Tags. This is not a significant issue for cross-compatibility.)
    5. Keep your Microsoft Photo Gallery installed as long as possible. This is one more advantage of cross-compatible digiKam setup – you should be able to use old Photo Gallery in parallel to digiKam in case you need to access some video metadata or any other reason.

    Permanent backup of photo metadata

    Here is an easy method to make a complete metadata backup from all your photos that will easily fit on one M-Disk DVD or a cheap flash drive. You never know when some virus, child or silly mistake will irreversibly wipe or corrupt your metadata. If you notice the damage too late, all your backups may by then already hold the corrupt files and only such permanent backup will be able to help. It is not only good for tags you add manually, but also to preserve more basic metadata like the date when a picture was taken.

    The basic principle is that metadata, including all camera data, tags and people face tags are completely resolution-independent – you can dramatically resize and compress image data while preserving 100% of the metadata. Such conversion must be doable by many ways, including in digiKam (please edit this tutorial to add your favorite method), but my personal favorite tool for such metadata backup is:

    Method A
    1. Open the free "FastStone Image Viewer" for Windows so that you see the main toolbar (not full-screen mode). This program is reliable and has minimal risk of messing up your files.
    2. Go to ToolsBatch Convert ... and "Add" all your photo gallery folders to the "Input List".
    3. Next to “Output Format” set JPEG and in the “Settings” choose quality for example 70%. (we want images to be recognizable, not beautiful).
    4. Under "Use Advanced Options" choose “Resize based on long side” to for example 1024px. (again just to keep images recognizable, you can go lower if you need to save more space).
    5. Under “Rename” it is nice to add for example
      *_metadata_bckp
      to each file, so that you better recognize the highly compressed files if you will work with them.
    6. Choose a reasonable output folder and press Convert (folder structure will be preserved).
    7. When everything is done, I suggest you add a text file note with date when you did the metadata backup and for what reasons. Then compress everything with 7zip to reduce the size even more and have one easy to move file for permanent storage.

    Note

    Such batch conversion in "FastStone Image Viewer" will not back up metadata of videos and likely will skip RAW files. We assume that the key metadata is stored in normal files such as .jpg or in the file and folder names. If you have sidecar .xmp files, they would need a different backup approach, but for backing up from Windows Live Photo Gallery, this method is almost perfect.


    Method B

    Use command line ExifTool to create recursive metadata-only backups as described in detail here: Farblos/wpg2dk - backup. This method is more powerful than "method A", because ExifTool is also a tool that can be used to restore your damaged metadata (following the same tutorial by Farblos).

    Microsoft image metadata

    Before you start using digiKam to manage your WLPG tagged gallery, it is good to understand where the potential risks and issues are. Depending on how you used tags in WLPG, some of these concerns may not be applicable to you!

    1. Tag hierarchy needs care – Default Metadata settings in digiKam are prone to create many loose tags out of the nicely organized hierarchies such as for example “Location/USA/New York/Central Park”. If you set up digiKam correctly ("Setup of digiKam for Windows compatibility"), this will be 100% resolved.
    2. Face / People tags are a challenge – digiKam can fully support people tags as they were handled in WLPG (only for backwards compatibility to Microsoft software, you need correct metadata settings in digiKam). More importantly most (or all) vertical orientation images will have “Face tag rotation issue” which is covered in detail further below.
    3. No Flag – setting “flag” in WLPG is not saved to any file (only internal database), so this data is lost any time you move to another computer or another program [source].
    4. No metadata for videos. In contrast to photos, common video file formats do not support embedded metadata. As a result WLPG only stores video metadata in the internal database without any method to export the data Therefore WLPG video metadata is lost any time to you move to another computer or another program. DigiKam actually solves this issue by creating extra .xmp sidecar files next to each un-writable file, so as long as the extra files are not lost, digiKam will always preserve your video tags in the future. In fact, to be safe, it is a good idea to always keep year-month-day date and some keywords in the filename of important video files, because it is easy to separate video file from its metadata.
    5. Beware of "Read-Only" files! – It is worth double-checking that you do not have any Read-Only files and folders in your collection. We must have all metadata stored inside the files for digiKam to read it, but no software will write your metadata into files if the files are write-protected.
      • In case, you just changed some read-only files to writable, you need to open WLPG and to be safe - add some new tag to all files that were previously Read-Only. Wait for WLPG to write that tag along with all other metadata to all files (then you can easily remove that dummy tag in WLPG or later in digiKam). + you can always double-check which metadata is saved in a file by opening file properties in Windows Explorer.
    6. The rest of the metadata is straightforward. There is marginal risk that captions, star rating and individual descriptive tags from WLPG or OneDrive would get lost. Only reason for this data to get lost is if the image files were set to "Read-Only" or if WLPG did not manage to synchronize tag information to files as it is supposed to. In fact, most software can deal with these more basic tags and you may find other software, such as built-in Windows tools as good-enough alternatives to digiKam which still save metadata into files.

    For more information you are very welcome to read excellent articles by José Oliver-Didier which cover a lot more about Microsoft image metadata specifics: https://jmoliver.wordpress.com/2017/02/12/accessing-windows-photo-gallery-metadata-using-exiftool/ , https://jmoliver.wordpress.com/2020/02/16/onedrive-photo-captions-and-tags/ and other related blog posts.

    Tip - use digiKam to examine your metadata structure.

    digiKam offers excellent built-in ExifTool integration in the right side "Metadata" panel that can be configured in the digiKam settings to show 100% of the Metadata in your images. Together with "XMP" and "IPTC" tabs in the same "Metadata" panel you have a convenient tool to see how the imported metadata looks when digiKam opens your old tagged file for the first time and then see which metadata is written by digiKam after you try to change old tags and add new ones. (ideally, we want digiKam to overwrite all existing metadata fields when you make an edit - so that file does not contain both current and left-over obsolete Tags.)


    The Migration

    Now when you are ready to Switch to using digiKam you need to decide on one of the 2 routes:

    1. Simple data import using Metadata written inside your image files - approach that can provide nice results for most people (this tutorial is mostly about this approach - see the limitations of this approach in the paragraphs above and below).
      • Using this approach - you only need to correctly configure digiKam and then let it scan your photo collection - digiKam will just read all the Metadata out of your image files.
      • Main Dis-advantage of the simple approach - Tags and ratings of videos will be lost along with "Flags" (if you use them) + the Face Tag rotation issue asks for some manual work (which can be done at a later point).
    2. Use the advanced "WPG-metadata-database-to-XMP" method by Farblos: https://github.com/farblos/wpg2dk . The main things consider:
      • The database migration method is applicable only once - usually only if you have not started editing your photo gallery in digiKam previously.
      • You have WLPG installed - the method reads data out of WLPG database, not image files.
      • Main advantage - This method can export metadata on videos, "Flags" and automatically fixes the Face Tag rotation issue (migration is more comprehensive than the simple approach - assuming you have a lot of tagged videos, you use "Flags" or know another reason why the simple approach does not meet your requirements).
      • Main Dis-advantage 1 - This method requires a lot of command line steps - not an easy process.
      • Main Dis-advantage 2 - Any time and convenience gained compared to the "Simple data import" will likely be offset by the increased risk of data damage and more additional testing needed to verify that everything worked well.


    Microsoft Face tag rotation issue

    Microsoft’s face tags (usually from WLPG) are affected by long-term-bug which results in face regions being shown rotated by 90 degrees to one side on some of the pictures.

    It seems that we want a one-click fix for the whole collection, but in practice it is not very safe to run a script which will make changes to hundreds or thousands of images which are distributed all around your collection. The backups and testing to avoid potential disasters would take much more time than the “one-click” that we all would like.

    Therefore I recommend a semi-automated approach which takes 2-3 button presses per image, but includes direct verification that you are making correct changes only where needed.


    Root cause and potential workaround

    As long as the image “Exif orientation tag” is not “Normal”, Microsoft WLPG will always treat face tags differently than all other software that recognizes “Exif orientation tag” (for example digiKam). Therefore to make a file universally interpreted by all software including Microsoft WLPG any affected file needs to be losslessly rotated so that “Exif orientation tag” is re-set to “Normal”.

    The issue exists because Microsoft is the only company in the world which does not correctly support image rotation tags which are used by most digital cameras.

    In practice, the problem is almost exclusively present in portrait orientation images with face tags (but only if the image contained “Exif orientation tag” which is typically written by digital cameras with an orientation sensor - again not in all cameras).

    Fixing one file at a time

    In case you have only a few affected files, it is possible to make corrections on each individual file – please see the other tutorial for information on how to Rotate face tags on individual files.

    Semi-automated approach

    WARNING - not yet available

    before the “Rotate Face Tags” feature (id=447674) is implemented into digiKam, this approach is not completely feasible. But you can perform the complete procedure at a later point, after you are already using digiKam.

    https://bugs.kde.org/show_bug.cgi?id=447674

    This approach practically does not require any testing, because we will manually check and rotate face tags on each potentially affected image. When done correctly it will take a couple of seconds per file and most likely you have around 1000 affected images (1000 x 3sec = 50min of work). Plus this approach can be used at any time – when you migrate your collection, after you have already fixed a few images or when you add a couple or thousands more images that need to be fixed.

    Important

    Perform this face tag rotation fix only when you are confident that your digiKam metadata settings are good and your data is safe


    1. Open the Search panel
    2. Click Advanced Search
    3. Select images which have “People” Tags. (When digiKam reads in Microsoft face tags, it automatically creates descriptive tags with “People” parent tag.)
    4. Select “In Tree” option because we are interested in sub-tags of the “People” parent tag
    5. Select “Portrait Orientation” (because this is the orientation data which causes face tag rotation issue in Microsoft’s software).
    6. You can add additional conditions, for example limit the search to specific Album, Date or camera model. This is especially useful if you are adding new photos to a collection that was previously fixed.
    7. Press OK to find all photos that are most likely affected by the issue. (Note, you can always save the current search if you like.)
    8. Now you have a list of all photos that need to be checked by simply switching to the next photo one after another. Make sure you have “Show Face Tags” activated to directly see all face tags on every photo.
    9. The actual fix is done by using “Rotate Face Tags” command which has to be mapped to a keyboard shortcut. (Note, this feature was not yet available in v 7.4, but hopefully is there now.)
    10. The rest of the workflow is:
      • “Look if the face tags are wrong”, if Yes,
      • “Press the right keyboard shortcut to rotate face tag into correct direction”, then
      • “Press Arrow Right to see next photo”.

    Fully automatic solution

    Since March 2022 there actually is one fully-automatic solution for the face tag rotation issue (along with some other features) - https://github.com/farblos/wpg2dk . Note that this method is Not easy to follow and is suitable for very dedicated users only. Even if a fully-automatic solution would be easy to use (“require just one-click to run and forget"), I personally would still use the Semi-automated approach for data safety and in most cases also to actually save time (manual face tag changes take less time than all the precautions and verification necessary to run a rarely-used script that executes low-level Metadata changes on your whole photo gallery).

    Notice that even if you fix all your old files at some point, you may still get more affected images in the future.


    Other Metadata issues

    For most users, the instructions above will give great results and you do not need to read any further. In case you encounter specific problems, here are some extra hints:

    Summary

    Metadata is tricky – different software looks for different data and interprets it in different ways. Nevertheless, everyone can retain all their metadata from WLPG and other Microsoft software in digiKam. But with some additional digiKam configuration you will also retain cross-compatibility to continue searching through your metadata directly in Windows, OneDrive or any other Microsoft software.

    Finally, if you make some configuration mistake – it is not the end of the world. Perhaps just using your previous backup will solve your issue, but even in really bad cases there are command-line tools such as ExifTool can come to the rescue.



    About this tutorial

    This tutorial was originally written for digiKam 7.4 in 2021-12. You are very welcome to edit, update and Upgrade this tutorial page to make it better and keep it up to date. No attribution or copyrights on this page (all illustrations are original as well)!

    Introduction

    It is safe to say that digiKam (7.4) is the most powerful image metadata management photo gallery software. Unless you use command-line tools, there is no more universal program to read and write any metadata that you can imagine than digiKam (it even allows you to define new metadata namespaces to read and write data to, in case something is missing). As it is free for everyone, open-source, writes metadata back to files and runs on multiple operating systems – digiKam is truly future-proof tool to manage all your image and video metadata (people face tags, descriptive tags, location, captions, star ratings and more).

    Unfortunately, as digiKam tries to be (and can be) cross-compatible with everything at once, the default digiKam settings cannot satisfy everyone. This tutorial provides a suggestion on how to best configure digiKam for new users or people who have managed their photos using any of the Microsoft software, including Windows built-in metadata tools.

    "But I do not use Windows!"

    Even if you never use Windows yourself, the main reasons to be Microsoft compatible are because Microsoft uses actually quite good in-file metadata storage format and there is a great chance that someone you know will not use digiKam, but due to Microsoft compatibility will still have access to the embedded metadata. (Even simple Windows Search will find photos by Microsoft compatible tags.)


    The recommended configuration

    Of course, you can use digiKam with default settings, but here are the reasons why you may want to follow this tutorial and change the Metadata configuration.

    The Advantages:

    • Less garbage in the files – the default configuration writes the same metadata multiple times under many metadata fields. While it can be good for ultimate compatibility outside digiKam, it practically guarantees that any other software will read and modify only part of those fields. As a result, if another software is involved, your image will carry both updated metadata as well as old metadata that was originally created by digiKam but not recognized by the other software that did the latest edit (for example OneDrive, Lightroom, etc.)
    • More robust – This configuration keeps your digiKam tagged images cross-compatible with Microsoft OneDrive and Windows so you can correctly use and edit metadata even on Windows computers where digiKam is not installed (for example if you send files to your relatives). In addition a lot of major photo metadata software, including online services will correctly read Microsoft compatible tags, because it is one of the most common image metadata formats embedded into image files.
    • This configuration will correctly preserve hierarchical tag structures, without creating lots of duplicate tags (when the same information is written in many metadata fields, other software, for example, Microsoft Windows may interpret the metadata from default digiKam configuration as multiple separate tags)

    The Drawbacks:

    • By disabling Read and Write to less common metadata fields, you are also stopping digiKam from correctly importing such metadata. But it is not very likely to find files that exclusively use the less common metadata fields which we are disabling – usually, the same information will be duplicated in another enabled field. (Plus it is possible to individually disable writing certain metadata fields while still reading them by un-checking “Unify read and write” in the Advanced Metadata settings).

    Note

    You do NOT have to change default digiKam settings to import all your data if you are switching to digiKam from Windows Photo Gallery (WLPG) or Microsoft OneDrive. BUT without these changes, you will get a mess with cross-compatibility in case you will later view or edit your digiKam tagged files in any Microsoft software.


    What you need to know

    1. You have to re-check the Metadata settings every time you update digiKam to a new version, before you resume using digiKam as usual. Currently (digiKam 7.4) you do need to repeat the manual Metadata setting changes after each digiKam update.
    2. There may be bugs, special exceptions or just format changes that could break cross-compatibility that we try to achieve (from digiKam to Microsoft programs). The good news is that such metadata issues are almost always resolvable either by tools built in into digiKam or in the worst cases by other programs, where ExifTool is usually the ultimate solution to just about any metadata problem (see one old example here).
    3. If you are migrating from some Microsoft metadata editing software, there is a dedicated additional tutorial to help specifically WLPG, OneDrive and other Microsoft software users - how-to Switch from Microsoft OneDrive or WLPG to digiKam.
    4. The statement “This configuration keeps your digiKam tagged images cross-compatible with Microsoft” does include some limitations:
      • If you save people face tags in digiKam it will automatically create descriptive tags for each person in a hierarchy “People/<face tag name>”. This is not the same as WLPG behavior, but still shows-up nicely in any Microsoft software.
      • If you save people face tags in digiKam it will also create "MWG regions" which follow the main standard to save face tags and performs the same function as Microsoft People Tags. Microsoft software will always display correctly people tags saved in digiKam (and digiKam always reads Microsoft created People Tags), but you can not edit digiKam created face tags in Microsoft software!
      • Trully cross-compatible changes (edit in digKam or Microsoft at any time) are:
        • selecting/deselecting descriptive tags,
        • changing Title in digiKam == changing Caption in WLPG,
        • changing star rating.
    5. If you encounter some problems while following this tutorial – please add a “Warning” box to the tutorial to warn everyone about a potential issue and consider filing a bug report at https://bugs.kde.org/describecomponents.cgi?product=digikam

    Never edit digiKam saved Face Tags in Microsoft programs!

    digiKam saves faces as MWG and Microsoft regions, but Microsoft will only edit "Microsoft regions". Because digiKam prioritizes "MWG regions", any changes you make in Microsoft software will be DISCARDED. (But you can always use Microsoft software to tag a new image that did not previously have any face tags - digiKam always correctly reads not-conflicting people tags from Microsoft)"


    Change the settings

    Here are all the steps to correctly set up your digiKam for the recommended configuration.

    Updated digiKam? - Re-check the settings!

    Do not forget to re-check the Metadata settings every time you update your digiKam! Some settings can be reset to defaults.


    Step 1 – Configure the basics

    Before you begin with the details it is good to have the basics right:

    1. Check the folder and file Properties of your photo collection using a basic file browser. Check that:
      1. Either all your image files can be modified (“NOT Read-Only”) – necessary if you want to store all your tags and metadata inside the image files (this is the typical approach for the best metadata preservation).
      2. Or in case you plan to only use sidecar files for all your media (more information about “Sidecar” files further below), then you may choose to set your files to “Read-Only” (but not folders).
    2. Select the right database type for digiKam. According to the documentation, all database options are good but have different pros and cons:
      1. SQLite is effortless to configure, but if you have more than about 100 000 files in your collection it can become a performance bottleneck. Note that you can always migrate to another database type later, so no need to worry about this.
      2. MySQL Internal requires more work to set up, but should pay off in terms of performance in large photo collections. You will actually need to follow the 1st provided “download” link and install “MariaDB Server” (you can leave the root password empty for MariaDB and Disable Networking) and then click “Find” and locate the 1st required .exe file in the MariaDB installation folder.
      3. MySQL Server is only used if multiple computers with digiKam will access the same shared photo library. Again, you can migrate to this type of database at a later point.

    Finally when you choose which folders with images and videos digiKam will manage, consider that:

    1. You should NOT add your true main collection to digiKam before you complete "Step 2" and decide if you want to Set up digiKam to ignore RAW files. But you can add some test folder(s) to initialize digiKam and run some tests.
    2. Consider ticking the “Monitor the albums for external changes” setting. It should make digiKam more intuitive to use, but could also impact performance.

    Note - Re-initialize database

    When you are done with your testing and want to switch to the true photo collection you can always delete all digiKam database files from the folder where it is stored. However, when deleting the digKam database files you also reset the settings to ignore RAW files (this setting needs to be re-applied).


    Beware loss of metadata at later times

    Later, when you already have been working on your true photo collection with digiKam, you better would not re-initialize the digiKam database the hard way as decribed above. Some of the metadata, in particular that related to face recognition, is not stored in the images or .xmp sidecar files, but only in the digiKam database. Examples are the information on ignored face regions or the flag whether an image already has been scanned for faces.


    Step 2 - Fix which metadata is written into files

    The main Metadata settings are under SettingsConfigure digiKamMetadataAdvanced. Here we will set DigiKam to not-write to various unnecessary Metadata fields. (For simplicity we are also disabling reading of those fields, but you are welcome to disable only the writing by un-checking the “Unify read and write”.

    • Start with Caption (aka Comments): here deselect all namespaces except for “Xmp.dc.description” and “Exif.Image.ImageDescription”. AND using Move Up button raise the “Exif.Image.ImageDescription” field to the 1st priority (this is important to stop WLPG from overwriting your Caption by duplicating Title text). Remember that Microsoft WLPG confuses Title & Caption, so it is safer to only use either “Title” or “Caption” but not both at the same time. See “What tags to use” for more info.
    • Under Color label – leave only “Xmp.xmp.Label” (it is enough)
    • Under Rating – leave only “Xmp.xmp.Rating” and “Xmp.MicrosoftPhoto.Rating”.
    • Under Tags we have a more complex case (see screenshot):

    The most important setting

    If you will make only one change to the settings, then fix the Xmp.dc.subject under Tags . This is crucial for preserving tag hierarchy between digiKam, Windows and other software.
      • Here we fix the main Descriptive Tag cross-compatibility issue with Windows, WLPG, OneDrive and other Microsoft software [for reference see this and this]:
        1. Disable the default: "Xmp.dc.subject" namespace (it cannot be modified)
        2. Add new namespace and configure it as:
    Name: Xmp.dc.subject (substitute for the existing one)
    Spec_options: TAG_XMPBAG
    Separator: /
    Set Tags Path: YES <== this is the FIX to the main problem!

    Do the same thing for Xmp.lr.hierarchicalSubject - disable the original and create a new entry. Follow the steps like Xmp.dc.subject above. For 'name' enter 'Xmp.lr.hierarchicalSubject'. Reason is that Darktable uses these, and if Digikam does not read/write them too, they may get out of sync.

      • Leave enabled "Xmp.Micosoft Photo.LastKeywordXMP" namespace (as it is used by WLPG)
      • Then disable all other namespaces (unless you have a specific reason to keep some of them enabled)
    • Finally under Title – leave only “Xmp.dc.title”. Remember that due to Title & Caption confusion in Microsoft WLPG, it is safer to only use either “Title” or “Caption” but not both at the same time.

    Step 3 - Other important metadata settings

    Here we check that Metadata is actually written into files, and not just left in the digiKam database.

    • Under SettingsConfigure digiKamMetadataBehavior make sure that all Information is written into the Metadata.
    • There is also “Use lazy synchronization” option which I recommend to enable to improve performance and avoid re-writing each file multiple times for every little edit that you make. It also can help to detect accidental metadata changes.
    • Under Sidecars the basic idea is to allow digiKam to write sidecar files, but only for media files that can not contain metadata directly (most useful for video files or any file that is set to read-only). According to the documentation, the option “Read from sidecar files” means "digiKam will only read the sidecar while ignoring the embedded metadata.”

    Note

    Some conservative users actually prefer to configure digiKam to exclusively store metadata in .xmp sidecar files and never make any changes to the image files that normally can contain XMP metadata. Sidecar approach is the safest against data corruption (it is even possible to delete .xmp sidecars using file manager and instantly erase all metadata changes), but it is also the least cross-compatible approach and makes the metadata only visible in correctly configured digiKam. On the other hand, when metadata is separate from an image file, even a naïve user is less likely to accidentally spread sensitive metadata on the Internet, so it is the best approach for privacy.


    • Finally for Rotation it is preferable to choose lossless data rotation instead of using the orientation metadata flag. (The main reason is Microsoft – MS still does not respect the orientation flags and it causes issues such as your pictures may appear on a side when viewed in Windows as well as problems with rotated face tag regions)

    Fix Tree view

    This setting is not essential, but if you do not have ticks in the ViewInclude Album Sub-Tree and ViewInclude Tag Sub-Tree, then the tree structures in the left panel will not behave as most users would expect – highly recommended to make this change if you are setting up digiKam for a new user.

    Unfortunately in digiKam (7.4) the Albums tree still has a limitation that only one tree entry can be selected at the same time - https://bugs.kde.org/show_bug.cgi?id=269340. (it is possible to select multiple tree entries in the Tags tree, but not in the Albums tree.)

    Personalize appearance

    In addition I would suggest to experiment with settings for digiKam's

    • appearance in SettingsThemes,
    • thumbnails in SettingsConfigure digiKamViewsIcons and
    • sorting in ViewSort … to get to an optimal look and feel for digiKam.
    Example of my current appearance settings for thumbnails.

    RAW file handling

    If you have “digital negatives” (RAW files) together with the usual .JPG image files in your collection there is always a concern about how to best handle these files. Here are some of the common options:

    Show All
    Most software by default just shows both JPG and RAW files as equals. This is the worst option because it makes it very cumbersome to view, sort or tag your pictures. Remember that when you do need to see both JPG and RAW files together, there are always normal file browsers that are simple and reliable.
    Grouping RAWs under JPGs
    More advanced software offers to automatically recognize which RAW files belong to which JPGs and apply all operations on the “groups” of files. This is a valid approach IF it is easy to use and robust. DigiKam can do grouping, but there are a few things to consider if you choose to use it:
    • It is not possible to permanently enable grouping in digiKam (7.4) – grouping must be manually enabled every time by selecting all photos that should be grouped, then right-clicking one thumbnail and selecting GroupGroup Selected By Filename.

    Important

    the Group function is hidden, not visible unless you select more than one photo!
    • As grouping is not always enabled, it is difficult to explain how to use grouping to infrequent users. And even geeks will not appreciate the required extra manual steps.
    • Finally the grouping by Filename is very simplistic in digiKam 7.4. If you make any changes to the filename of the JPG file, for example, add “_cropped” or “_altColor” to the filename, it will no longer be grouped with a corresponding RAW file (so you will again see that RAW file during slideshow and will need to tag it separately.
    Ignoring RAWs
    As digiKam is not a true competitor to a dedicated RAW processor, I prefer to use digiKam only to manage metadata in the photo collection. Then it is optimal to block digiKam from reading RAW files and only deal with JPGs and videos. It means:
    • Simplicity – even inexperienced users will not get distracted by the RAW format duplicates of every image. And the limitations in grouping of RAW+JPG in digiKam are not a problem.
    • Perfect consistency – if you do not try to sync RAW file metadata with the JPGs then all potential metadata mismatch problems go away. (for example if you import RAW+JPG files where only JPGs have been tagged by another program)
    • As RAW files are ignored, they never get modified and there are no additional .xmp sidecar files when you make changes to the Metadata – which is good for backups and performance.
    • The downside – to move images between folders, you would have to use a generic file browser, because in “Ignore” mode digiKam will normally not do any operations with RAW files.
    • Also you will need to remove RAW files which are left after you delete unwanted JPGs. This is not just digiKam issue as I personally use multiple image viewers for sorting pictures which also leave RAW files behind. My preferred solution for leftover RAW files is this simple Python executable script that automatically removes all orphaned RAW files: "CleanUp_RAW_files.py"
    "Ignoring RAWs" configuration is very convenient to use if you understand what it does.
    If you... Show All Grouping RAWs under JPGs Ignoring RAWs
    Move complete album All files & folders are moved All files & folders are moved All files & folders are moved
    Move file by file All files can be moved All files can be moved ONLY "JPG" files will be moved
    Delete file by file All files can be deleted All files can be deleted ONLY "JPG" files will be deleted

    Set up digiKam to ignore RAW files

    My recommendation is to stop digiKam from reading RAW files and make any changes to RAW files in other software. The full list of RAW file extensions that digiKam can load is given in the documentation [link].

    To disable all RAW files (or any other file extensions) go to SettingsConfigure digiKamViewsMime Types and under “Image Files” add this list with all file extensions that need to be ignored by digiKam:

    -rw2 -crw -cr2 -nef -orf -raf -rwl -pef -ptx -x3f -dcr -kdc -dc2 -k25 -srf -arw -mrw -mdc -raw -dng -bay -erf -fff -mos -pxn –rdc

    What tags to use

    Even when all the metadata settings are correct, to ensure best cross-compatibility it is still important to use the tags in a compatible way. For example, Windows does not differentiate between “Title”, “Caption” or “Comments” so if you use all of these fields simultaneously, some Microsoft software can overwrite part of what you wrote and cause permanent metadata loss [source].

    Here are the strongly-recommended; safe-to-use metadata fields (notice, almost the same as in WLPG):

    • Descriptive Tags organized in tag hierarchies – tags are good, but tag hierarchy greatly enhances the usefulness of predefined tags. With the recommended settings, tag hierarchy is fully supported and cross-compatible with Microsoft tools.
    • Face Tags or people tags are excellent to specify who is who in the photo. Supported and useful. Note you can as well tag pets or other non-human points of interest using face regions.
    • Edit “Title” field – this field is effectively the primary filed for all Comments and Captions despite the name of the field. (In WLPG this data is editable as Caption. More details below.)
    • Secondary: “Caption” field can be used if you really have to. Microsoft software will show it as “Comment” in file properties, but for example WLPG cannot edit this field.
    • Star rating – fully supported and a more robust alternative to Colors or Flag labels.
    • GPS geotag data.
    • Names (Author) and Copyright under the Information – Rights in the right digiKam sidebar.
    • Plus you can rename the file, but be careful in case your image has a corresponding RAW file. After re-naming, RAW file should still match the beginning of the new filename.
    • Finally it is useful to keep meaningful folder names that can contain some basic “Caption” and start with a relevant date in “YYYY-MM-DD” format (to have some control over your files outside dedicated photo management software like digiKam).

    For more information how to actually efficiently apply tags in digiKam see “Tagging and Face Tags” tutorial.

    For all other Metadata fields and types – use at your own risk. Everything will work in digiKam, but may be hard to access for other software.

    Title, Captions and Comments confusion in Windows

    This paragraph explains in-depth how the recommended Metadata configuration affects Title, Caption and Comments. In short – it results in a nice match with Windows 10, but if you are migrating from Microsoft WLPG or OneDrive, then you may want to read on.

    The screenshot and table below shows how Metadata will appear in:

    1. Windows 10
    2. digiKam 7.4
    3. obsolete Microsoft WLPG.
    Where your information appears in different environments using recommended Metadata settings
    1 in Windows 2 in digiKam 3 in Microsoft WLPG
    Title saved in digiKam is Title Title Caption
    Caption saved in digiKam is Comments & Subject Caption NOT visible
    Caption saved in WLPG is Title & Subject Title (*) Caption

    As you can see from the table:

    • Title” is the only field that reliably appears in all 3 compared environments
    • Caption” in digiKam will be “Comment” in Windows, but is not visible in the old WLPG. And as long as digiKam uses recommended Metadata configuration, this data is safe from corruption by Microsoft WLPG.
    • The “Subject” property in Windows is unreliable and unnecessary. Depending on which program saves the data last it will contain duplicate of digiKam’s “Title” or “Caption”. This field is linked to “Xmp.dc.description” (and possibly also other namespaces).
    • (*) special case – if you create Caption in WLPG (or OneDrive?), on import to digiKam it will be duplicated in digiKam as Title and also as Caption. As the relevant information is just duplicated, it makes almost no practical difference. (If you really want to avoid this, you can disable reading of the “Xmp.dc.description” namespace under Advanced settings of “Caption”, but it is important to keep writing to the “Xmp.dc.description” namespace to be able to overwrite any obsolete “Xmp.dc.description” information.)

    Default configuration warning

    If you do Not use recommended Metadata configuration in digiKam, any time someone edits “Caption” in WLPG, it would overwrite Both “Title” and “Caption” in digiKam, which can lead to the “Caption” metadata loss. (OneDrive was not tested, but could have the same risk.)


    Future improvement suggestions

    No doubt we would like faster, more robust and intuitive way to configure digiKam for an average user. Here are some suggestions on how to make digiKam configuration better:

    1. Macro – as a temporary measure, someone could write a script to modify digiKam settings using one executable file. The advantage would be that anyone could read and modify what the script does and therefore make a custom one-click setup script for their unique configuration.
    2. Configuration presets – just as many other programs (for example see Blender keymap presets), digiKam could offer users a choice which Metadata configuration preset to use already during initial configuration. This way there could be multiple ready-made profiles depending on the use case; depending on which other software user migrates from or uses in parallel.
    3. Simplified digiKam – just as there is ShowFoto as a standalone part of digiKam for image editing, there could be a simplified gallery viewer and manager suitable for non-geeks so that everyone could use the metadata features without complex setup tutorials and editing of configurations.

    The good news is – digiKam is open source, so anyone can pick up a challenge and make the improvements we all need. Meanwhile digiKam works already, so happy tagging after the setup!


    About this tutorial

    This tutorial was originally written for digiKam 7.4 in 2021-12. You are very welcome to edit, update and Upgrade this tutorial page to make it better and keep it up to date. No attribution or copyrights on this page (all illustrations are original as well)!

    There are 326 pages beginning with KA-KZ

    <translate>

    Important

    Hey there stranger! Please help us by extending the documentation around KDevelop. Feel free to create new pages or add useful information to existing ones. We need you!
    Thanks, Milian.


    Additional pages for KDevelop4 -

    </translate>

    Important

    Hey there stranger! Please help us by extending the documentation around KDevelop. Feel free to create new pages or add useful information to existing ones. We need you!
    Thanks, Milian.


    Additional pages for KDevelop5

    Category: Development

    <translate>

    Home » Applications » Multimedia » KMix

    This page is outdated

    The KMix interface has been significantly changed. This page does not reflect the current status of the program.

    You can help! If you know how to use this program please consider adding information to this page. If you prefer, you can also tell us on the talk page, and we will add your information to the page.

    </translate>

      <translate>

    Control all your audio channels</translate>

    <translate>

    Features

    • Quick volume check
    • One-click access to Master volume channel
    • Full control of all available channels

    Step-by-Step

    • All access is through the icon in your System Tray . Hover over the icon, and you see the current volume setting.



    • Click on the icon, and you have access to the Master channel, where you can quickly raise or lower the volume, or mute it if the telephone rings.



    • From that same display, click the Mixer button, and you have access to all configured channels, to adjust each one to your taste. The channels you see will depend upon the capabilities of your soundcard. This image is from a laptop with Intel ICH6 sound.


    Click for larger view


    • Your card may have capabilities that you can't see in that view, so while you have it open, click Settings -> Configure Channels. Now you can see all the possibilities, and choose which ones should be visible in your mixer window.


    Click for enlarged view

    </translate>

    There are 289 pages beginning with Ka-Kz but not Kd

    <translate>

    Introduction

    Konversation has built-in support for running external scripts which, partnered with D-Bus and Konversation's own D-Bus methods, cover the most common scripting use cases, such as displaying information in the current chat window or controlling another application or even Konversation itself. This guide introduces the basics of writing a Konversation script. It covers only the essential concepts necessary to get started. Language- and system-specific nuances will be left to the user as a learning exercise.

    Requirements

    All you need is a text editor and a programming/scripting language. Konversation supports any programming language that:

    1. Can accept and process command-line arguments (argv's).
    2. Can connect to and call D-Bus, or at least make external system calls (such as executing the program "qdbus"). It is probably better and more secure to use the language's native D-Bus bindings if available, rather than executing a system call to run qdbus.

    At the moment, Python, BASH (or Shell), and Perl are known to work and have examples shipped with Konversation. But any language fulfilling the two requirements above would probably also work. This guide will give examples in Python.

    Case 1: Display Information into the Current Chat Window

    Probably the most common scripting scenario is getting some text to display in the current Konversation tab (channel or private message), with the data usually coming from an external source. This source could be the script itself, another application (such as the media script included with Konversation), or the Internet (like getting weather information and displaying it in Konversation). Whatever the source, there are 3 steps to perform:

    1. Getting the input - catching and parsing the command sent by the user from Konversation.
    2. Processing the data - gathering data from sources and manipulating it based on the input.
    3. Sending the output - throwing the information back to Konversation through D-Bus.

    The following is a nonsensical example of a Konversation script that roughly follows that pattern.


    #!/usr/bin/env python
    # mood - a Konversation script to display a witty remark based on the user's mood.
    # Usage: /exec mood [mood_string]
    
    <!--T:12-->
    import sys
    import subprocess
    
    <!--T:13-->
    command = ['qdbus', 'org.kde.konversation', '/irc']
    
    <!--T:14-->
    argc = len(sys.argv)
    
    <!--T:15-->
    if argc < 2:
        command.append("error")
        text = "Server required"
    elif argc < 3:
        command.append("error")
        text = "Target required"
    elif argc < 4:
        command.append("error")
        text = "No mood given"
    else:
        server = sys.argv[1]
        target = sys.argv[2]
        mood   = sys.argv[3]
    
        <!--T:16-->
    if mood == "hungry":
            text = "Hungry! Anyone got a horse?"
        elif mood == "sleepy":
            text = "I yawn, therefore I am."
        elif mood == "gloomy":
            text = "Roses are red. Violets are blue, and so am I ..."
        elif mood == "happy":
            text = "Thinking happy thoughts (with a dash of pixie dust)."
        elif mood == "hyper":
            text = "Just a spoonful of sugar? I think I took a whole jar! *cartwheels*"
        elif mood == "excited":
            text = "Are we there yet? Are we there yet? Are we there yet?"
        else:
            text = "What were we talking about again?"
    
            <!--T:17-->
    command.append("say")
            command.append(server)
            command.append(target)
    
    <!--T:18-->
    command.append(text)
    
    <!--T:19-->
    subprocess.Popen(command).communicate()
    

    Getting the Input

    When Konversation calls an external script, it runs it with some predefined arguments, like this:

    script_name server target [additional arguments ...]

    Arguments are usually stored in a collection (a list or an array, depending on the language) called "argv" indexed from 0 to N, with N being the number of arguments.

    • argv[0] is always the script name itself. In most cases, it's safe to ignore this.
    • argv[1] is the address of the server the user is currently connected to. In case of multiple connected servers, this will always be the server to which the channel or query window is connected to.
    • argv[2] is the target, the name of the chat window where the command to run the script came from which, more often than not, would be the same window where output would be displayed. Of course, you can always change this.
    • argv[3] to argv[N] will be any additional arguments that would be sent by the user calling the script through Konversation. This can be anything from flags to enable/disable options in the script or data or text that can be displayed in the output of the script. Not all scripts have additional arguments, like the uptime and sysinfo scripts.

    Remember

    Even if your script doesn't require additional arguments or even if the user didn't supply them, Konversation will always send the system and target arguments. Meaning, argv[1] and argv[2] will always be set. The minimum argument count will always be 3 (remember, indexing starts at 0).


    Processing the Data

    In the example script, the mood variable, supplied by the user in argv[3] of the script, is compared to predefined values and the appropriate remark is assigned to the text variable. This is a simple example of data processing. You can also fetch data from a predefined data source, like the fortune script. Or assemble information coming from the operating system, such as done in the sysinfo script. Whatever information or text you need to be displayed in Konversation, you create that here.

    Warning

    A word of caution: Be careful when creating multi-line text output, as your server or the channel you're sending to may have anti-flooding policies. When dealing with a potentially large, it might be best to have it displayed in another way (like in a text editor).


    Now that the needed information is processed and assembled, it's time to prepare it for sending back into Konversation, which is discussed in the next section.

    Sending the Output

    Controlling Konversation externally, like through a script or the command-line, involves using its D-Bus methods. Konversation has several of them, including a group whose purpose is to display messages. Sending D-Bus messages can be tedious. Fortunately, Qt provides a much easier way of doing that, using the helper program "qdbus". Without going into much detail, all the D-Bus commands we will be sending to make Konversation display messages starts with this string: qdbus org.kde.konversation /irc

    Depending on what kind of message the script will be sending, additional options will be added to that command. Here are but a few examples:

     qdbus org.kde.konversation /irc say server target message
    

    This is probably the command that will be most commonly used. It sends message to the chat window target connected to server. If you want the message to be sent to the same chat window where the script was called from, use argv[1] and argv[2] for server and target, respectively. Of course you can always change the target to any channel or nick you want in that server.

     qdbus org.kde.konversation /irc error message
    

    This displays the message in the same chat window where the script was invoked. The difference is that the message isn't actually sent to the IRC server and is only visible to the user. The message is also formatted as something like "[D-Bus] Error: message". Useful for informing the user about errors in using the script or if something fails in the script. It doesn't need a server or a target.

     qdbus org.kde.konversation /irc sayToAll message
    

    Sends the message to all channels and query windows in all servers. Please use sparingly and observe proper netiquette. It doesn't require a server and a target.

     qdbus org.kde.konversation /irc actionToAll message
    

    sayToAll's action sibling. Sends the message to all channels and query windows in all servers BUT prepends "/me" to the actual message, resulting in displaying something like "*YourNick message*". Again, netiquette applies.

    Note

    To send an action ("/me") message only to the current chat window (where the script was called from), compose the actual message as "/me message" and use the say variant of the command (first one in this list if you got lost ).


    There are other /irc related qdbus commands, some of which change the user's status instead of displaying the command. Feel free to explore other possibilities. Another Qt helper program, "qdbusviewer", provides a graphical interface for browsing through the available commands for Konversation and other "D-Bus aware" programs. You will probably need it a lot especially for the second scripting scenario discussed later.

    Getting the Script to Run

    Now it's time to actually make the script run in Konversation. Here are the steps:

    • Make your script executable. chmod +x script_name does it all. It would be better to not include extensions (.sh, .py, .pl, etc.) in your filename, to make it easier to call the script.
    • Place the script in either one of two folders:
      • If you want your script to be available all users in your system, put the script together with the other scripts installed with Konversation. This may vary from distro to distro (or your own personal tinkering), but common a location is /usr/share/apps/konversation/scripts/. In case it's not there, get the output of the command kde4-config --install data and append /konversation/scripts/ to it. Consult your distribution's support channel if it's still not there.
      • If you want the script just for yourself, simply place the script in ~/.kde/share/apps/konversation/scripts/. Some distros might still be using ~/.kde4/ instead so adjust accordingly.
      • Post version 1.3.1 note: another way to find out where the installed scripts are is to run this command in Konversation's input line (using the media script as an example, since it comes with any Konversation installation): /exec --showpath media. Note that if there are two scripts with the same name in the user's home and in the system locations, the one in the user's home will take precedence and be the one shown here.
    • To actually run the script, you need to invoke it by running this command in Konversation's input line: /exec script_name [additional arguments]

    This will call your script and pass the arguments to it. Remember that your script_name is always argv[0], and that the current server and chat window are passed as argv[1] and argv[2], even if you didn't include them in your command. Therefore, any additional arguments would be argv[3] and so on.

    • For convenience, you can create a command alias in Konversation so that you can invoke your script simply using /script_name instead of the actual syntax given above. To manually do this, go to Settings -> Configure Konversation -> Command Aliases page. Click on the New button and enter "script_name" in the Alias<m/enuchoice> field and "/exec script_name" in the <menuchoice>Replacement field. So next time you need to run your script, you can simply do use /script_name [arguments]
    • Alternately, whenever Konversation is started, it automatically creates a command alias of "/script_name" for "/exec script_name" for every script it finds in the scripts/ directories mentioned earlier.

    For the previous example, the script is named "mood" and can be invoked either using /mood [mood] or /exec mood [mood], like:

    /mood gloomy

    That's basically all you need to know to make a Konversation script. To make it a bit more interesting, let's have an example of another common scripting scenario.

    Case 2: Controlling an External Program from Konversation

    Thanks to D-Bus, and the fact that a lot of KDE applications have D-Bus methods, you can control any KDE application right from within Konversation. Even without D-Bus, you can let your script start, stop, or possibly even control other applications simply with a command in Konversation. This lets you do a lot of things, like sending a command to a terminal emulator, opening a bug report in a browser providing only the report number (like the bug script), or simply running a system command (and probably displaying the results of that command, as the cmd script does).

    The following script performs the first example. It first makes Yakuake visible and then runs the command supplied by the user. The script is rather simple and doesn't involve displaying anything back to the user, except in the case of an error when calling the script itself.

    #!/usr/bin/env python
    # yakrun - Konversation script that runs the command supplied by the user in Yakuake and toggles Yakuake's state
    # Usage: /exec yakrun [command]
    
    <!--T:49-->
    import sys
    import subprocess
    
    <!--T:50-->
    errorCommand  = ['qdbus', 'org.kde.konversation', '/irc', 'error']
    toggleCommand = ['qdbus', 'org.kde.yakuake', '/yakuake/window', 'toggleWindowState']
    runCommand    = ['qdbus', 'org.kde.yakuake', '/yakuake/sessions', 'runCommand']
    
    <!--T:51-->
    argc = len(sys.argv)
    
    <!--T:52-->
    if argc < 4:
        text = "No command to run."
    
        <!--T:53-->
    errorCommand.append(text)
    
        <!--T:54-->
    subprocess.Popen(errorCommand).communicate()
    else:
        command = " ".join(sys.argv[3:])
    
        <!--T:55-->
    runCommand.append(command)
    
        <!--T:56-->
    subprocess.Popen(toggleCommand).communicate()
        subprocess.Popen(runCommand).communicate()
    

    Language-specific Notes

    • Be careful when processing arguments and assembling them into a single string with spaces, which might be more error-prone in some languages, such as BASH.

    </translate>

    There are 206 pages beginning with Kd

    There are 462 pages beginning with L-Z

    The Sidebar ist generated with a special page in the MediaWiki namespace, that is MediaWiki:Sidebar. It is a bullet list with special items. Don't mix it up with common list styling!

    The list-level controls if the item is written as a separating heading or a link.

    The list items are divided into two parts by a pipe "|". Both parts shall be the name of a page that belongs to the MediaWiki namespace as well. The first part is a placholder for the link, the second one is a placeholder for the title of the link shown in the sidebar.

    For UserBase related changes we prefer following nomenclature:

    ** ub-name-url | ub-name

    Replace name to your needs.

    Now you have to edit MediaWiki:ub-name and MediaWiki:ub-name-url. These pages will contain only one line with the title of the link and the page the link shall point to.

    Example:

    • MediaWiki:Sidebar:
      ...
      ** ub-helpfiles-new-content-url | ub-helpfiles-new-content
      ...
    • MediaWiki:ub-helpfiles-new-content-url:
      Tasks and Tools
      Where "Tasks and Tools" is the name of an existing page of the Main namespace.
    • MediaWiki:ub-helpfiles-new-content:
      Add new pages

    Remember

    Don't forget that all these pages must belong to the MediaWiki namespace!


    Links to Anchors

    If the link shall point to an anchor of a page you have to insert a redirect-page as a work around. Following the nomenclature this page should be called ub-name-redirect and shall only contain the #REDIRECT statement wich leads to the final destination page.

    So let's improve the example from above:

    • MediaWiki:Sidebar:
      ...
      ** ub-helpfiles-new-content-url | ub-helpfiles-new-content
      ...
    • MediaWiki:ub-helpfiles-new-content:
      Add new pages
    • MediaWiki:ub-helpfiles-new-content-url:
      ub-helpfiles-new_content-redirect
    • ub-helpfiles-new-content-redirect:
      #REDIRECT [[Tasks and Tools#Add_New_Pages]]
      Please notice that this last page belongs to the Main namespace!

    Translating Sidebar Items

    The pages containing the link titles are listed in a special page that is MediaWiki:Userbase-messages. Just write them down without any list formatting or such.

    In our example we have to insert the line

    ...
    ub-helpfiles-new-content
    ...

    Now the new items can be translated. Visit the Translate page. At the bottom of the list you will find the page "UserBase's custom interface messages". Finally choose your language and fetch the items to be translated.

    <translate>

    Important

    KDE neon Plasma LTS Edition is now at its end of life. You may still try to switch to regular User Edition but switching also is no longer supported. Should you try anyway, please make sure to have all your data backed up. We recommend a new installation of User Edition in case you are still stuck on the LTS Edition.


    Also see https://blog.neon.kde.org/index.php/2021/04/06/the-end-of-lts-edition/.

    Starting on 2021-07-01, the KDE neon Plasma LTS Edition will no longer receive updates and you must migrate to the regular user edition to receive updates. This includes security updates. Deprecating the LTS edition allows us to more efficiently use our resources for the most valuable and also most used editions of neon. This step has of course been a long time coming. We've removed its visibility from websites 3 years ago https://blog.neon.kde.org/index.php/2018/02/12/hiding-neon-lts-edition/ and the rationale for that is even more true today than it was back then.

    Switching to KDE neon User Edition

    Usually we do not actively support switching from one edition of KDE neon to another. The following migration path has been tested and should work as intended. Please note that any third party repositories such as PPAs, and non-KDE software installed via .deb files in general may inhibit the migration from working correctly. To be on the safe side we advise that you remove/downgrade the software and/or repositories.

    Make a backup of all important data.

    Have a new installation medium ready in case the switch goes wrong and you need to reinstall a fresh system. https://neon.kde.org/download

    Create a file called 40-neon-user-lts-migration in your home directory and put the following content inside

    Package: *
    Pin: release l=KDE neon - User Edition
    Pin-Priority: 1100
    

    Switch the repository

    sudo sed -i --regexp-extended 's%(neon\.kde\.org.+)(/lts)%\1%g' /etc/apt/sources.list /etc/apt/sources.list.d/*
    

    Next run the following commands:

    sudo mv $HOME/40-neon-user-lts-migration /etc/apt/preferences.d
    pkcon refresh
    pkcon update --only-download
    pkcon offline-trigger
    

    Next you need to restart your system and on startup it will migrate to user edition, followed by an automatic restart. As part of the migration the file you created will be automatically deleted. To ensure all software is at the expected versions it's advised to repeat the pkcon commands to apply remaining updates (if any):

    pkcon refresh
    pkcon update --only-download
    pkcon offline-trigger
    

    Don't forget to restart.

    </translate>

    <translate>

    OEM installation mode is a special installation mode targetted at hardware manufacturers. The principal difference to a regular installation is that the installation itself creates a temporary user for customization from where the system is switched into firstboot mode. Booting in firstboot mode will let the final user configure the system to her preference and create her actual account.

    This enables hardware manufacturers to install and prepare a system for their customers while still letting the customers pick their own user name, keyboard layout and the like.

    Requirements

    For this to work you need a neon ISO newer than 2017-01-13 and ensure to have internet access during installation as part of the OEM tooling is downloaded on-demand.


    How To

    Put the ISO on a USB stick and boot the device using the stick.

    Depending on the operation mode of device the ISO will be either booting in BIOS mode or UEFI mode. The two look slightly different, but both offer an option to start in OEM mode.

    UEFI

    In UEFI mode you will be greeted by GRUB where you simply have to start the OEM entry rather than the standard one.

    BIOS

    In BIOS mode you will be greeted by a splash screen. You want to hit Esc to get to the menu. In the menu you can use the F4 key to switch the installer into OEM mode. Once selected simply hit Enter to start.

    Splash Mode selection

    Installation

    The installation process itself is the same as it would be for a non-OEM installation. The major difference is that the installer window title will say that the installer is in OEM mode and the user setup will have the fixed username oem.

    Main screen User screen

    System Preparation

    Booting into this system will bring you to the system preparation stage. You will be logged into the temporary oem user and can modify the system as necessary. In this stage you could install additional software, language packs, media codecs, drivers and so forth.

    The system you are working on is going to be the system the user will use, so take care not to leak credentials in log or configuration files. Should you need to, make sure to delete them before you move on.

    Once you are done preparing the system you can prepare it for delivery. Simply open a terminal and run

    oem-config-prepare

    System ready to rumble

    The system is now in firstboot mode. At this stage you could create a disk image of the final system and supply it to your manufacturer to put on all hard drives, or simply do so yourself. The next time the system is booted it will come up in firstboot mode for the customer.

    First Boot

    During the first boot a simplified installer interface is used to configure the final system. As part of this, the previously used oem user will be removed.

    Finale

    Once the configuration is done the user is automatically soft-rebooted into his final system. Ready for rock'n'roll.

    </translate>

    <translate>

    How to use Office365.com with Kontact

    Scenario: you want to use KDEPIM Kontact - with cloudbased Office365.com (it might work with LAN-based exchange, untested)

    This is tested with 4.13.x and 4.14.10 KDE but might work with earlier versions.

    Adding the calendar in read-only mode

    Doing this is very easy, as Office 365 can export URLs with iCal files:

    • Access the web interface of the calendar on Office 365 and click on Share. Then select "calendar" and insert your own e-mail address and select to share full details.
    • Then click Send.

    Important

    Do not send the email to an Office 365 address, or this doesn't work.


    • When you get the e-mail, look for the link that begins with "webcal://" and copy it.
    • Then in Korganizer right click on the list of calendars and select Add calendar…. Then select iCal Calendar File from the list.
    • In the Filename field you need to paste the "webcal://" URL. But you need to replace the initial "webcal://" with "https://".

    Get Read/write access

    </translate>

    1. <translate> Get mail working. This is fairly easy as Office365 supports both pop3 and IMAP4. Instructions for settings can be found here.</translate>

      <translate> You can also choose to access mail via DavMail, see below for installation instructions. This is said to handle Outlook invitations sent via Exchange better (not tested by the author of this article). In such case when you install DavMail tick setting for IMAP and set up your KMail account accordingly.</translate>

    2. <translate> Get your Office365 calendar and contacts in Kontact. For this use DavMail as intermediary "go-between". So first of all install DavMail, for Debian/(x)Ubuntu users here is a deb package, for others a shell installer.</translate>

      <translate> Once that is done start DavMail and configure it. In KDE a "systray" should pop up for basic settings. "Untick" the mail settings but leave Caldav and LDAP settings. The other setting you need is OWA URL that for Office365 is https://outlook.office365.com/owa</translate>

      <translate> All other settings are done in Kontact/KDEPIM.</translate>

    3. <translate> To get Calendar working (shared calendars are not tested, feel free to experiment): System Settings -> Personal Information -> Add -> DAV groupware resource -> DAVical. Put [email protected] and your password, choose Davical server. For server name and path put anything, you will edit later in any case. Click Finish.</translate>

      <translate> On next menu set a name for your resource and click Edit on the fictional resource. Leave "CalDav" as protocol but change remote url to

      http://localhost:1080/users/yourname@yo ... /calendar/
      and credentials to
      [email protected]
      and your password, then click Fetch and your Calendar should show up. Set a preferred refesh rate and in Kontact do not forget to now tick this Calendar to activate it.</translate>

    4. <translate> To get your Contacts working: System Settings -> Personal Information -> Add -> DAV groupware resource -> DAVical. Put

      [email protected]
      and your password, choose Davical server. For server name and path put anything, you will edit later in any case. Click Finish.</translate>

      <translate> On next menu set a name for your resource and click Edit on the fictional resource. Choose CardDav as protocol but change remote url to

      http://localhost:1080/users/yourname@yo ... /contacts/
      and credentials to
      [email protected]
      and your password, then click Fetch and your Contacts should show up. Set a preferred refresh rate and in Kontact do not forget to now tick this Address Book to activate it.</translate>

    5. <translate> Finally to access "public address books". They can be found as LDAP via Kontact/Kaddressbook in KAddressbook Settings -> Configure KAddressbook. Then select on the left column LDAP Server Settings and click Add host.</translate>

      <translate> Set this up as "host:localhost", "port:1389", "DN=ou.people", "authentication:simple" "Bind DN" as "[email protected]" and password well you should know next time you compose a new mail you can now use Select button and then Search directory service.</translate>

    <translate> </translate>

    <translate>


    Attention

    The following applies to all KDE Wikis not just UserBase


    Before you Start

    First Things First

    • To contribute to KDE wikis you must register an account. See what advantages this brings you on the Quick Start page. There you will also find help to register and log in.
    • Be aware that your contribution will be governed by the twin licenses for which icon-links are provided in the side-bar of each page. Click on the images in the Navigation Panel to read the details. You are agreeing to your contribution being publicly available and that others can use that information on their own sites.
    the twin licenses
    the twin licenses
    • Use the Talk page to communicate with other contributors or get help. Normally someone will get back to you within a day.

    Relevance

    All content added to the wikis should relate to KDE software, directly or indirectly. Currently the following wikis are intended for the following content.

    UserBase

    UserBase is for user content of any kind. E.g.

    • For New Users - helping to get started
    • For Regular Users - learning about new features and tips
    • For Advanced Users - but use sub-pages for this.

    Community

    Community Wiki is for developers and developer-focused information and tutorials, the exception to this is code documentation which should be part of the relevant repository.

    TechBase

    Warning

    Don't use TechBase


    TechBase is currently in the process of being retired with any useful information being moved to Community or other docs (see this issue for further details).

    Ways to Contribute

    </translate><translate>

    Update Existing Content

    </translate><translate>

    Add New Pages

    • Create a new page, showcase an application, introduce a new concept.
    • Write a manual. You need to know an application quite well, and probably to be in contact with the author. We can help you.

    </translate><translate>

    Working with Languages

    • Preparing a page for translation needs more patience than skill. If you can spare short periods of time, frequently, this is a very helpful task.
    • Translate a page. You need to be fluent in a language, but not a professional translator to translate a wiki page. Translating manuals is the skill of a special team. That page also points you to instructions for translating sidebar links.
    • Translate with Off-Line Tools. Get the essentials for Gettext and Import.
    • How To Convert UserBase Manual to Docbook gives you an insight into the process that takes place on your finished manual.
    • WikiSentinel is a specialized feed reader that collects the translated pages that need to be updated. It allows you to see a preview of the changes in the selected page and open it directly in the web browser: ready to translate.

    Remember

    It's important to be consistent, particularly in Manuals, so here are some general rules:
    • Take care with heading levels. Start at second level, using ==. Mediawiki uses top level for page-name.
    • Make application name formatting consistent (avoid using Amarok's, do use Amarok's).
    • Ensure that all images are in PNG format (you can use JPEG as well, but in this case you should convert your images to PNG later). Save work by converting them before you start .
    • Remove all non-printable characters from image names.


    Hints and Tips

    Attention

    If a page is completely a duplicate or superseded and should be deleted, please mark it for deletion, see Propose Deletion for the full process.


    Some Preferences that will help -

    • At the top of the page you will find the Preferences menu. In the Editing section you may want to enable Show preview on first edit - while you are editing you can glance at the original display for reference
    • The default display is to show the preview first, with the edit box below. If you prefer the edit box at the top you can change that setting in the same place

    </translate>

    <translate>

    Panels in Plasma Desktop

    The default panel

    A Panel is a widget container which can be located on any side of the screen. There can be multiple panels on the screen or even on the same side. The default layout is one panel that stretches across the entire bottom of the desktop with the following widgets: application menu, desktop pager, task manager (list of open windows), system tray (including things like power management if you are on a laptop), digital clock, and peek at desktop.

    Configuration

    Panel configuration can be accessed via the context (right click) menu in the panel. At that point, the panel will be in edit mode.

    Panel in configuration mode with More settings-submenu open

    Arranging Widgets

    Widgets in the panel can be sorted by dragging them when in configuration mode. Widgets align left in the horizontal and top in the vertical panel. You can center widgets in the panel by adding flexible sized spacers on both sides (see the section on the panel toolbox).

    </translate><translate>

    The Panel Toolbox

    • Size arrows: The arrows on the bar in the middle allow the panel size to be adjusted.
      • Arrows pointing left change the minimum panel size.
      • Arrows pointing right change the maximum panel size.
      • The arrow pointing up is the center of the panel.
      • To adjust the height of a horizontal panel or the width of a vertical panel, use the spin box in the toolbox.
      • After resizing a panel, you can reset it to maximized in the More Options menu.
    • Add Widgets: Allows widgets to be added to the panel. This will open a sidebar from which you can drag widgets into the panel.
    • Add Spacer: Allows you to add a spacer into the panel giving space between the items in it.
      • The standard behavior of a spacer is that it uses as much space as possible (flexible size), but you can also set it to a fixed size:. Enter the context (right click) menu and deactivate Set Flexible Size.
    • Drag to move: You can click into the empty space and drag the panel to any of the four edges of the screen.
    • Remove this panel: Removes the current panel and all widgets in it.
    • Height (for horizontal panel)/Width (for vertical panel): Allows the panel height or width to be adjusted. To change the width of a horizontal panel or the height of a vertical panel, use the arrows.
    • More Options: Opens additional settings for the panel (see next section).

    The "More Settings" Menu

    • Panel Alignment: Allows the alignment of the panel to be set in three pre-set positions.
      • Left/Top
      • Center
      • Right/Bottom
    • Visibility
      • Always Visible: Keeps the panel visible at all times, even when windows are maximised.
      • Auto Hide: Hides the panel off screen until the mouse is placed near the screen edge.
      • Windows can cover: This allows windows to cover the panel and if maximised, will cover the panel.
      • Windows go below: This allows windows to go below the panel, even when maximised.
    • Opacity
      • Adaptive: Makes the panel opaque when any windows are touching it, and translucent otherwise.
      • Opaque: Makes the panel always opaque,
      • Translucent: Makes the panel always translucent.
    • Maximize Panel: Makes the panel fit to the screen edges, if it has been resized.
    • Floating Panel: Adds some margin around the panel when no windows are touching it.
    • Remove Panel: Deletes the panel.
    • Shortcut: Allows you to set a shortcut to focus the panel when it is not currently visible.

    Adding Panels

    It is also possible to have more than one panel on your desktop. This proves useful if you want to have a more flexible layout:

    Screenshot showing a desktop with multiple panels: a floating centered vertical panel with an application launcher and icons-only task manager, and a second panel placed horizontally at the top of the screen with global application menu, system tray, and clock.

    To add a new panel either click on the desktop toolbox button and select Add Panel or open the context (right click) menu on the desktop and select Add Panel from the menu.

    If more than one kind of Panel is installed, you will be able to select between them to choose what sort of Panel you would prefer. By default, two Panel types are available: Default Panel, which creates a Panel containing all of the default widgets (launcher, pager, tasks, system tray, clock, etc.), and Empty Panel, which adds a blank Panel without any pre-configured widgets in it.

    Under the Hood

    Should anything "untoward" happen to your panel have a look at ~/.config/plasma-org.kde.plasma.desktop-appletsrc - the panel itself is classed as a containment (there are at least two, the desktop and the panel) which is home to all the different widgets you put there.

    Info needed

    Here the relevant section of plasma-desktop-appletsrc for a default panel containment should go. Please help us provide the info if you know anything about this.

    </translate>

    <translate>

    Remember

    This page is obsolete. For information on translation see Working with Languages and links in that section.


    Much of the information that was on this page is now outdated. How-Tos exist for all the common contributor tasks, including translation, both on- and off-line, and can be found linked from Tasks and Tools.

    Warning

    When editing pages that are already marked for translation, you will see section markers similar to < !--T:1-- >. Usually each paragraph is one section. You should not change the markers, unless you fully delete a section, in which case you should simply remove the old marker. When adding new sections, you don't need to add marker to it – the marker will be added automatically when your changes are approved for translation. If you want to move a section, move also the section marker with it. That is the only time when you touch the markers - the system will do the rest.


    Guidelines applicable to all Languages

    Information

    This section is new, and will be controlled by experienced translators.


    KDE style

    The KDE voice is helpful, aspirational, and genuine. Our communications strive to be:

    Efficient
    Highlight the elegance of efficiency — from steps removed and labor reduced to costs saved.
    Effortless
    Communicate in intrinsically simple terms. Be concise, intuitive, eloquent, and fluid.
    Useful
    Address real needs and open up new opportunities.
    Immersive
    Make communications as engaging and comprehensive as the technology they cover.
    Meaningful
    Use real examples and genuine recommendations to make the message personal and relevant.

    Know Your Skills

    KDE relies on volunteer translators to help make useful KDE information available around the world. As volunteers, you are not required to have any formal language training, but we do ask that you know your fluency and get the support you need to finish a translation if you run into tricky language issues or content that lies outside your translation capabilities.

    Because many of the articles on KDE wiki are technical in nature, it also helps to be familiar with—and even fluent in—KDE products. You will need to be able to distinguish between common terms and technical terms in context and determine when user interface or workflow elements that are mentioned in the articles need to be translated.


    General guidelines

    Expressions, jargon, and humor
    As you translate, you may encounter expressions, puns, or jargon that are specific to the original language and may be difficult to translate effectively.
    In such cases, translate the concept or point the article is trying to convey and not the exact words.
    Take care to ensure you capture the overall message, and don't worry about losing the humor or the colloquialism.
    Proper names
    Company names and product names should never be translated. Proper company names and product names should always remain in English, no matter what language you are translating for.
    People's names should remain in English for Latin-based languages, but you may transliterate them for non-Latinbased alphabets.
    Terminology
    For help with translating tricky constructions or technical terms, consult the translation-sharing site to: TAUS.
    Simply enter your desired text and then choose which language to translate it from and to. Not all terms are included for all languages, but this can be a helpful tool for completing accurate translations.
    Titles of works
    When you run across the title of a book, program, feature, distro, or other public work, check to see if that title has already been officially translated for your language (by the publisher or distributor), and if so, use that translation.
    If you cannot find a translation for that particular title in your language, do your best to translate it as accurately as possible.
    Units of measurement
    Convert units of measure to make them relevant for the intended language or region. For example, some English-speaking countries use the unit of inch, but other countries may prefer centimeter unit.
    User interface terms
    Translate user interface terms as appropriate for your language.


    See here for more information:

    1. http://translate.sourceforge.net/wiki/guide/start

    2. Glossary: http://translate.sourceforge.net/wiki/guide/glossary

    3. Another Glossary: http://www.glossary.com/category.php?q=Computer

    Keeping up to date with developments

    I propose that the Discussion page attached to this page should be used for orderly debate about issues noted, particularly issues where existing markup is causing problems. Old threads, long since resolved will be cleaned out, and once decisions are made I will update the relevant help pages. I would ask you to put a Watch on Talk:Translation_Workflow.

    Getting a Better Understanding of the Process

    For a fuller description of the Translate extension, read the description on the developers' website

    Tip

    Monitor the status of your language statistics by monitoring the page Special:LanguageStats if you have your own language set as the interface language of UserBase.


    </translate><translate>

    Language-specific guideline pages

    All Right-to-Left script Languages

    Mediawiki is not yet good at supporting RTL languages. Currently, the workaround is to add < div dir="rtl" > at the start of your translation (i.e. in the first message) and < /div > after the final category statement


    We propose to have Team Leaders for each language. As we get leaders appointed, they will take charge of a page of guidelines for their specific language, where they will be named. They will have final say on any question relating to their language. The guidelines are listed below:

    Catalan
    Chinese
    Danish
    French
    Galician
    German
    Italian
    Romanian
    Russian
    Spanish
    Ukrainian

    </translate>

    <translate>

    Notes

    Manuals will be included as sub-pages of the main application page. For brevity, I will refer to that main page as Appname. The structure, therefore would be something like:

    • Appname
      • Appname/Hints and Tips
    • Appname/Manual # Your Contents page
      • Appname/Manual/An Introduction to Appname
      • Appname/Manual/Configuration Choices
      • Appname/Manual/The First Time you use Appname
      • Appname/Manual/section 1
      • Appname/Manual/section xxx
      • Appname/Manual/Hints and Tips
      • Appname/Manual/Troubleshooting
      • Appname/Manual/Bug reports
      • Appname/Manual/Get involved #link to techbase etc

    If some of your sections grow too large, you can place subsections on separate pages. It might look like this:

    • Appname/Manual # Your Contents page
      • Appname/Manual/An Introduction to Appname
      • Appname/Manual/Configuration Choices
      • Appname/Manual/The First Time you use Appname
      • Appname/Manual/section 1
        • Appname/Manual/section 1/subsection 1
        • Appname/Manual/section 1/subsection 2

    and so on.

    Information

    The page names do not have to follow the structure of the document closely! In the above example you could simply use Appname/Manual/subsection 2 instead of Appname/Manual/section 1/subsection 2 and similarly for sub-subsections (as long as this procedure does not produce duplicate names ).


    Remember

    Try to keep page names short and avoid long paths. Overly long page names are cumbersome to type when you link to them, and they don't look good on the wiki pages. And always remember: The page names and their structure have no influence on the finished handbook whatsoever! It is entirely determined by the headings in the actual text.


    In order for the automatically generated Docbook to have the same contents page as the one you make on UserBase, and for links to work in the Docbook there are a couple or guidelines, that must be followed:

    • The Docbook Table of Contents will list all sections and subsections regardless of whether they have a page of their own. On the other hand, subsubsections won't be listed in the Docbook TOC even though they have a page of their own.
    • All pages should have a heading at the very top, either a section (== ... ==), a subsection (=== ... ===), or a subsubsection (==== ... ====), otherwise the Docbook structure will be messed up.
    • The title of the section/subsection must exactly match the page name, otherwise Docbook links won't work.
    • Subsection titles must be written like this: === title ===, even if it is the top level on a page. Otherwise the Docbook structure will be messed up. Similarly, if you have a very long subsection with subsubsections on pages of their own, these pages must have their titles written like this: ==== title ====.
    • Subsubsections that should not appear in the contents page and should not appear on a page of its own in the Docbook must be level 4 or below, i.e ==== or more.
    • Links to pages in the manual must exactly match the page name (i.e. no links via redirects!)
    • If you link to a subsection of a page, you must have an anchor at the target location. Failing that will mess up Docbook links as well as translations.

    Note

    Every subsection (===) gets a page of its own in the Docbook, even if it is part of a longer page on UserBase. This means that a section (==) that contain a number of subsections, but no text before the first subsection gets a Docbook page that contains nothing but links to the subsections.


    Remember

    If at some point you decide to change the title of the main (sub)section of a page (the first headline), it is important that you also change the name of the page accordingly, and also that all links to that page are modified to match the new name.


    Remember

    Please do not use any kind of punctuation in your page names — punctuation like question marks or periods creates serious problems for the wiki software, in particular for the translation system.


    You will need a scratchpad to experiment with section headings/pages. You can use either your UserTalk page, or the discussion pages attached to the area where you are working. It's helpful if you remove anything no longer required, once the job is completed.

    Developing a Manual

    While developing your manual it is usually best to keep it separate from the regular UserBase content. Some prefer to edit their drafts as subpages of their Talk: page. We also have a special Draft: namespace for this purpose.

    To create the content page of your manual, simply write http://userbase.kde.org/Draft:Appname/Manual in the address line of your browser, or place the [[Draft:Appname/Manual]] link in a page and then click it. Either way you will be taken to a page telling you that the page does not exist, but that you can create it clicking a link.

    Contents

    • Once you have made the decisions (that can be a lengthy procedure), create appropriate links on the Contents page. It is, of course, possible to insert a section later if you find you've missed something.

    Building your Manual

    • Use the red links to create the page, and write up a section at a time.
    • Note on the Discussion page anything you will need to refer to later, such as links that can't yet be created.

    Remember

    It's important to be consistent, particularly in Manuals, so here are some general rules:
    • Take care with heading levels - we start at second level (Mediawiki uses top level for page-name), using ==
    • Make application name formatting consistent (avoid using Amaroks, do use Amarok's).
    • Ensure that all images are in PNG format (you can use JPEG as well, but in this case they should be converted to PNG by the script). Save work by converting them before you start .
    • Remove all non-printable characters from image names.


    Formatting considerations

    In order for your manual to be translatable into Docbook format there are some restrictions on formatting that should be observed.

    • Notes and Warnings do not support alternative titles in Docbook. Don't write something like
      {{Remember|2=Don't Forget This!|1=You can use...}}
      The 2=... part has no meaning in Docbook and the program transforming the wiki page to Docbook might get very confused. Just write
      {{Remember|1=You can use...}}
    • Embed a Video has some limitations in its current implementation: Only YouTube and Vimeo are supported and only one value (the id of the video) can be passed as argument.

    Searching your manual

    At some point, you may need to find something that you wrote earlier, but can't remember where. Using the wiki search box may not be ideal unless the string you search for is very specific. You can get much better control over searches using the DPL extension. For example, to find the pages in your manual containing a certain string, you can add the following to any page:

    <DPL>
      titlematch = %Appname/Manual%
      nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
      namespace = | Draft
      include = *
      includematch = /string to search for/
      includemaxlength = 0
      resultsheader = Manual Pages:
      format = ,\n* [[Writing an Application Manual|Writing an Application Manual]]\n,,
    </DPL>
    

    Information

    You can find more examples on using DPL on User:Claus_chr/DPL. An easier way to search for strings in a manual is to use the SearchPages template: To search for the string "timeline" in the Kdenlive manual enter {{SeatchPages|1=Kdenlive/Manual|2=[Tt]imeline}} in a page.

    Pro tip: You don't need to save the page to see the search results — just preview the page and cancel the "edit" when you have found what you were looking for.


    Note

    If You are working on the Amarok manual be aware that some of the pages deviate from the normal naming convention. To find matches on all Amarok manual pages use
    titlematch = %Amarok/QuickStartGuide%|%Amarok/Manual%
    (Note that there can be no space characters on either side of the '|' character)


    Preparing the Manual for Translation

    Producing a DocBook manual

    Once your manual is written you can have it transformed into a DocBook manual, so that your work can be used like an ordinary KDE handbook. The procedure is described in this page. </translate>

    <translate>

    There are separate pages explaining Page Layout and syntax with example code.

    Important

    Adhering to these typographic guidelines will ensure that your documentation can be accurately and easily exported for translation purposes. Some guidelines may not be applicable for non-English languages. These should be noted on specific language pages, linked from Translation Workflow. If no such page exists for your language, please add one and make guidelines there.


    Bold Text

    Use bold text to highlight

    • Window titles
    • Common labels that are not user-configurable
    • Icon captions
    • Program names

    For example:

    • Highlighting a selection of text will copy it to Klipper.

    Italic Text

    Use italic text to emphasise

    • Words or phrases as in general writing.
    • Titles when referencing other works.
    • The first use of an unfamiliar word.

    Some examples:

    • Save your work at this point.
    • Details can be found in Samba 3 by Example....
    • KDE Manuals are in Docbook format.

    Tip

    Programs are launched by users, components are used by programs


    Combined Bold and Italic Text

    Use this combination for replaceable or variable text.

    Some examples:

    • To connect to your remote server, type ssh [email protected] in Konsole.
    • In rpm-based distributions, the command rpm -q packagename will result in package-version-release.

    Mono-spaced Text

    Code should be presented in mono-spaced text, usually boxed, as shown below. Input text will be on a light yellow background. For output text, the background colour will be a light grey.

    • Code, whether single lines or blocks, use templates to ensure consistency
    • Use the Input template like this:
      {{Input|1=<nowiki>
      qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
      rm -r ~/.kde/share/apps/nepomuk
      rm -r ~/.kde4/share/apps/nepomuk
      nepomukserver</nowiki>}}
      This will display like this:
      qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
      rm -r ~/.kde/share/apps/nepomuk
      rm -r ~/.kde4/share/apps/nepomuk
      nepomukserver


    • Output works the same way:
      {{Output|1=<nowiki>terminal output 
      is also shown as code, 
      but on a grey background</nowiki>}}
      which displays as
      terminal output 
      is also shown as code, 
      but on a grey background

    Note

    Note the use of 1=<nowiki> some text </nowiki>. Occationally, parts of literal displays may confuse the wiki parser. The <nowiki>...</nowiki> block protects against that. Also if something like n= appears in the literal body, the template parser may get confused. The initial 1= protects against that. Otherwise this markup has no effect. In short: it can't hurt, and it protects against the possibility of some nasty side effects.


    • Starting an Input or Output template on a new line will break the display format if it is within lists. Simply continue on the same line if you need to correct this.
    • You can also combine input/output areas with GeSHi syntaxhiglighting. An input area like this
      {{Input|<syntaxhighlight lang="php" line>
      # Initialise common code
      $preIP = dirname( __FILE__ );
      require_once( "$preIP/includes/WebStart.php" );
      </syntaxhighlight>}}
      will result in
      # Initialise common code
      $preIP = dirname( __FILE__ );
      require_once( "$preIP/includes/WebStart.php" );
      
    • Single code words can be kept in-line by using
      <code></code>
      It will display like this. Note, that if the <code> tag is immediately preceded by a newline character, it will not display properly.
    • File names and paths should use the Path template (see below).

    Warning

    In-line code markup should be short! It looks strange - and ugly - if a string of code words is split between lines. And remember: even if it looks good in your browser, not everyone uses the same screen size! And even if your text looks good on all screen sizes translations may still suffer. It is best to use the Input template for code unless it is really short.


    Note

    Please avoid using shell commands or other code words as verbs. This does not translate well. Always treat code words as proper names.


    Block Quotes

    The tags <blockquote> and </blockquote> should be used when quoting other works or other pages. This produces a proportional italic font, with some padding.

    Here is an example of the display that you get by using the blockquote tags.

    Text in Section Headers

    Even though the criteria above may be met, do not use Bold text in section headers or in links.

    Text in Information, Note, Tip or Warning Templates

    Bold text should be avoided in the text within these templates. Italic text for emphasis may still be used - use sparingly for maximum effect.

    </translate><translate>

    Lists

    You can have various kinds of lists in your pages — bulleted, numbered or itemized. Find details on the Toolbox page.

    </translate><translate>

    Keeping things together

    After your text is written some markup is automatically added by the translation system. This means that whenever it sees a blank line, it starts a new unit. When your text is presented to translators, they typically see it one unit at a time, so it is important not to leave a blank lines in the middle of something that should be treated as a unit. Normally an entire paragraph should be kept in a single unit; and under no circumstance should a sentence be split between units!

    If you need a linebreak in the middle of a section, the preferred way to achieve this without breaking units is to use <br /> at the end of the line where you want to break to occur (not on a new line). If you need space between the lines add <br /><br />.

    </translate><translate>

    Unbalanced brackets

    The translation system marks any translated unit as incompletely translated if it contains any kind of unbalanced brackets. If you need to have unbalanced brackets in your text, please add a balancing bracket in a comment tag, like this:

    <!-- }} -->{{ A line 
    
    <!--T:38-->
    Another line}}<!-- {{ -->

    This goes for all kinds of brackets, even ordinary parentheses. (Of course it is normally better to avoid blank lines within a mark up unit - see Keeping things together.)

    Special Tags

    Key presses and menu selections

    • <keycap> and </keycap> denote (keyboard) key names e.g. Enter
    • <keycap></keycap> can also be used around groups of keys to be used concurrently, e.g. Ctrl + Alt + F1 to launch a virtual terminal. (Note that "(space)+(space)" is used to link keys to be pressed concurrently).
    • Sequences of menu choices should use <menuchoice> and </menuchoice> for example View -> Message List -> Aggregation -> Standard Mailing List
    • In general, if the user needs to choose an element, even if it is not in a menu, the <menuchoice></menuchoiсe> markup should be used.</translate>

    <translate>

    • If you are contributing to a manual page, you should always use the markup describes above. For other pages, though, there is a template to enter menu selections: {{Menu|Top|sub|...}}. Fx, {{Menu | View | Message List | Aggregation | Standard Mailing List}} yields View Message List Aggregation Standard Mailing List</translate>

    <translate>

    • If you want to use the <menuchoice> but use → in stead of ->, you write & rarr; (without a space between '&' and r!) as in <menuchoice> View</menuchoice> & rarr; <menuchoice>Message List</menuchoice> which yields ViewMessage List. (Note, that the → character has to be outside of the menuchoice tags to be shown properly

    Files and file paths

    Traditionally, file names and paths have been marked up between <tt>...</tt> tags.

    <tt>~/.kde/share</tt>

    yields

    ~/.kde/share

    There is now also a template for this, which should be preferred in new content for ordinary UserBase pages (but not for manual pages, please!):

    {{Path | ~/.kde/share }}

    yields

     ~/.kde/share 

    The Problematic Pipe

    In some situations the pipe symbol can't be used - for instance when adding parameters into a template. In any such case, please use {{!}} which will display as a pipe symbol. For example, if you want to display a command line containing the pipe character using the {{Input|...}} template, the simplest way to do it is this: {{Input|1=cmd1 {{!}} cmd2}} which displays

    cmd1 | cmd2


    If you just write {{Input|cmd1 | cmd2}} you get instead

    cmd1 

    the problem being, that cmd2 is seen as a second parameter to the template, which in this case is not used.

    In many cases, you can also enclose the text containing the pipe character between <nowiki>... </nowiki> tags, like this {{Input|1=<nowiki>cmd1 | cmd2</nowiki>}}, which also displays

    cmd1 | cmd2

    Translatable Content

    Everything that is translatable is contained within <translate> and </translate> tags. In most cases any images should be contained within the translatable section, as it is sometimes necessary to use localised versions of the images to explain a point. The rule of thumb is "If in doubt, include it!". </translate>

    Remember

    This page is for UserBase translations. TechBase translators list can be found here. For interface and documentation translations, please refer to KDE Localization portal.


    <translate>

    Translator Account

    In order to become a translator on UserBase you first need an account on the KDE Identity system (the procedure is described on the Quick Start page). Then you just add your name to this list in order to request translator rights. We usually respond within a day or so - a short greeting is added to your application to show, that you are now an official UserBase translator.

    Warning

    Please add your user name and info at the bottom of the page! And please make sure that you spell your user name correctly. We need it to be able to instruct the system to grant your translator rights.

    </translate>


    Example (please add yours to the bottom of the page) :

    User Name: Hans

    Language(s): Swedish

    (Optional) Do you expect to work off-line?: No


    Information

    The list of translators registered between 2010 and 2019 are now archived at 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 and 2019 respectively


    User Name: kakaroto

    Language(s): Brazilian Portuguese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 07:31, 25 January 2020 (UTC)


    Wiki Username: RogueScholar (talk | contribs) / KDE Identity: pmello
    Language(s): European Portuguese (pt_PT)
    Do you expect to work off-line?: Sometimes Submitted: 06:10, 2 February 2020 (UTC)

    Welcome to the Translator group Claus chr (talk) 09:10, 2 February 2020 (UTC)


    User Name: Antoni0

    Language(s): Italian

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 05:49, 3 February 2020 (UTC)


    User Name: Ezequias Santos

    Language(s): Brazilian Portuguese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 05:58, 10 February 2020 (UTC)


    User Name: Imgradeone

    Language(s): Chinese (China)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 06:47, 17 February 2020 (UTC)


    User Name: Karellism

    Language(s): Dutch

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 09:33, 19 February 2020 (UTC)


    User Name: KKatanov

    Language(s): Russian

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 05:44, 25 February 2020 (UTC)


    User Name: Wessell Urdata

    Language(s): Chinese(Traditional)

    (Optional) Do you expect to work off-line?: no

    Welcome to the Translator group Claus chr (talk) 09:34, 29 February 2020 (UTC)


    User Name: Michael Liang

    Language(s): Chinese

    (Optional) Do you expect to work off-line?: no

    Welcome to the Translator group Claus chr (talk) 07:55, 4 March 2020 (UTC)


    User Name: Falion

    Language(s): English, German, Turkish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 05:44, 14 March 2020 (UTC)


    User Name: niamfrifruli

    Language(s): Spanish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 16:54, 30 March 2020 (UTC)


    User Name: panxiaoyu

    Language(s): Chinese(Simplified)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:26, 9 April 2020 (UTC)


    User Name: Xeyyam

    Language(s): Azerbaijani

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Claus chr (talk) 06:14, 13 April 2020 (UTC)


    User Name: Ikoch

    Language(s): German

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:07, 11 April 2020 (UTC)


    User Name: Cyril

    Language(s): French

    Do you expect to work off-line?: why not.

    Welcome to the Translator group Claus chr (talk) 06:07, 13 April 2020 (UTC)


    User Name: Svetlij

    Language(s): Russian

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Yurchor (talk) 17:59, 18 April 2020 (UTC)


    User Name: kayterina

    Language(s): Hellenic (el/cy)

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Claus chr (talk) 06:41, 3 May 2020 (UTC)


    User Name: xoch

    Language(s): Spanish

    (Optional) Do you expect to work off-line?: Maybe

    Welcome to the Translator group Claus chr (talk) 04:56, 3 June 2020 (UTC)


    User Name: Manicap

    Language(s): Czech

    (Optional) Do you expect to work off-line?: I am not sure for now.

    Welcome to the Translator group Claus chr (talk) 08:00, 9 July 2020 (UTC)


    User Name: Reverier

    Language(s): Chinese(Simplified)

    (Optional) Do you expect to work off-line?: Maybe.

    Welcome to the Translator group Claus chr (talk) 07:34, 23 August 2020 (UTC)


    User Name: Hakanydin

    Language(s): Turkish(tr)

    (Optional) Do you expect to work off-line?: Maybe

    Welcome to the Translator group Yurchor (talk) 17:40, 16 September 2020 (UTC)


    User Name: ColibriCosmique (wiki), colibricosmique (KDE Account)

    Language(s): French

    (Optional) Do you expect to work off-line?: Maybe sometimes

    Welcome to the Translator group Yurchor (talk) 12:15, 27 September 2020 (UTC)


    User Name: boutiflet

    Language(s): French

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 05:43, 14 October 2020 (UTC)


    User Name: Fhek

    Language(s): Brazilian Portuguese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:55, 20 December 2020 (UTC)


    User Name: marcinsta

    Language(s): polish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:04, 28 January 2021 (UTC)


    User Name: LakeJason

    Language(s): Simplified Chinese and Traditional Chinese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 14:04, 10 February 2021 (UTC)


    User Name: hasntbeentaken

    Language(s): Chinese(Simplified)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:42, 21 February 2021 (UTC)


    User Name: akagusu

    Language(s): Brazilian Portuguese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 06:51, 25 February 2021 (UTC)


    User Name: zerox

    Language(s): Arabic

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 06:51, 8 March 2021 (UTC)


    User Name: Vegata

    Language(s): Japanese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 05:44, 12 March 2021 (UTC)


    User Name: toyamasoujinn

    Language(s): Japanese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 06:57, 10 April 2021 (UTC)


    User Name: Fdekruijf

    Language(s): Dutch

    (Optional) Do you expect to work off-line?: yes

    Hi Fdekruijf

    It seems you already have the requested rights - are you experiencing problems accessing your old user account? Claus chr (talk) 04:55, 16 April 2021 (UTC)


    User Name: phylastik

    Language(s): French

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 06:09, 2 May 2021 (UTC)


    User Name: Jesusmeneses

    Language(s): English-Spanish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 04:53, 18 May 2021 (UTC)


    User Name: Antemyste

    Language(s): French

    (Optional) Do you expect to work off-line?: occasionally

    Welcome to the Translator group Claus chr (talk) 05:20, 26 May 2021 (UTC)


    User Name: Vlcerqueira

    Language(s): Brazilian Portuguese

    (Optional) Do you expect to work off-line?: Sometimes

    Welcome to the Translator group Claus chr (talk) 04:52, 31 May 2021 (UTC)


    User Name: fyn

    Language(s): Chinese(Simpled)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 06:19, 20 June 2021 (UTC)


    User Name: Coioidea

    Language(s): Chinese(Simplified)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 05:06, 21 June 2021 (UTC)


    User Name: Pzm

    Language(s): Chinese(Simplified)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 05:58, 26 June 2021 (UTC)


    User Name: Siderealart

    Language(s): Traditional Chinese

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Yurchor (talk) 08:29, 27 June 2021 (UTC)


    User Name: Cheredin

    Language(s): Russian

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 18:03, 4 July 2021 (UTC)



    User Name: Notifyctrl

    Language(s): Chinese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 06:07, 13 July 2021 (UTC)



    User Name: Brsvh

    Language(s): Chinese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:42, 19 July 2021 (UTC)


    User Name: Bardia

    Language(s): Persian

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 06:11, 28 July 2021 (UTC)


    User Name: marcoxiao

    Language(s): Chinese English

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 05:02, 21 August 2021 (UTC)


    User Name: shan

    Language(s): Turkish, English

    (Optional) Do you expect to work off-line?: Mostly on-line

    Welcome to the Translator group Claus chr (talk) 05:18, 25 September 2021 (UTC)


    User Name: archandilinux

    Language(s): German, English, French, Spanish, Tagalog/Filipino, Japanese

    (Optional) Do you expect to work off-line?: no

    Welcome to the Translator group Yurchor (talk) 14:13, 11 November 2021 (UTC)


    User Name: namatullahkhan

    Language(s): Urdu

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Claus chr (talk) 08:10, 14 November 2021 (UTC)


    User Name: Justman

    Language(s): German

    (Optional) Do you expect to work off-line?: ?

    Welcome to the Translator group Claus chr (talk) 05:57, 22 May 2022 (UTC)


    User Name: Aisekleovus

    Language(s): Russian

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Claus chr (talk) 06:37, 18 June 2022 (UTC)


    User Name: Sihnu

    Language(s): Spanish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 13:14, 22 August 2022 (UTC)


    User Name: Rhabacker

    Language(s): German

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 08:05, 23 August 2022 (UTC)


    User Name: gkpiccoli

    Language(s): Portuguese-BR

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:44, 2 September 2022 (UTC)


    User Name: mvillarino

    Language(s): galician, spanish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 14:27, 28 September 2022 (UTC)


    User Name: esari

    Language(s): Turkish

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 08:21, 7 October 2022 (UTC)


    User Name: Futurelemon

    Language(s): Japanese

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 07:00, 2 November 2022 (UTC)


    User Name: Evs

    Language(s): Russian

    (Optional) Do you expect to work off-line?: Yes

    Welcome to the Translator group Claus chr (talk) 08:13, 22 November 2022 (UTC)


    User Name: mib

    Language(s): German

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 10:30, 19 December 2022 (UTC)


    User Name: gheescoo

    Language(s): Chinese (Simplified)

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 09:12, 30 December 2022 (UTC)


    User Name: axelkeller

    Language(s): German

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Yurchor (talk) 17:18, 23 January 2023 (UTC)


    User Name: michielfotograaf

    Language(s): Dutch

    (Optional) Do you expect to work off-line?: No

    Welcome to the Translator group Claus chr (talk) 12:49, 9 February 2023 (UTC)


    User Name: stepanzubkov

    Language(s): Russian

    (Optional) Do you expect to work off-line?: Sometimes

    Welcome to the Translator group Claus chr (talk) 09:49, 14 February 2023 (UTC)


    User Name: জয়শ্রীরাম সরকার

    Language(s): Bengali

    (Optional) Do you expect to work off-line?: yes

    I have added translator rights to user Joysriramsarkar - I assume this is your login name. Let me know if this is not correct. User name জয়শ্রীরাম সরকার is not known to the system.

    Welcome to the Translator group Claus chr (talk) 16:05, 13 November 2023 (UTC)


    User Name: kazu

    Language(s): Japanese

    (Optional) Do you expect to work off-line?:No

    Welcome to the Translator group Claus chr (talk) 10:59, 19 November 2023 (UTC)


    User Name: pzamponi

    Language(s): Italian

    (Optional) Do you expect to work off-line?:No

    Welcome to the Translator group Claus chr (talk) 11:18, 7 February 2024 (UTC)


    User Name: Alem

    Language(s): Italian

    (Optional) Do you expect to work off-line?:No

    Welcome to the Translator group Claus chr (talk) 11:18, 7 February 2024 (UTC)


    <translate>

    Information

    This page offers examples of formatting code for common tasks


    Add an Introductory Screenshot and Description

    Whenever possible we begin an application's top-level page with this. The code to achieve it is

    {|class="tablecenter vertical-centered"
    |[[Image:YourScreenshot.png|250px|thumb]]
    |Your descriptive text
    |}

    Format Your Text

    Use Headings

    Each heading goes on its own line starting and ending with two or more '=' characters. Once there are more than a handful of headings on a page they automatically create a Table of Contents, so use them. The number of '=' characters determines their level in the Table of Contents, thus your headings should be '==Main section name==', '===Subsection name===', '====Sub-subheading name here====', and so on. Avoid using single '=', as that denotes a page heading and every wiki page already has one made from its name; for example, this page's title "Claus chr/DPL" appears as its page heading.

    Use bold and italic

    Blips are used to specify bold and italic words.

    Use '''bold text''' to specify bold text and ''italic text'' to specify italic text.

    In order to ensure we get easy and accurate translations, please adhere to the typographical guidelines.

    Add a Code Snippet

    We have templates to assist in correctly displaying code snippets. Examples of use in various situations are available on the typographical guideline page

    If you have problems displaying pipe characters in your code snippet, please see the explanation and markup detailed on Typographical Guidelines

    Add Indents

    ":" is used for an indent, and was used in multiples in some old pages. This is deprecated, and causes some problems, so the multiples will be removed as they are found. A single ":" indents by four characters.

    Format Dates

    Dates in a purely numerical format cause confusion, due to differences in expectations of geographical zones. Please format dates as

    18 Mar 2011

    with the month either spelled out completely or in abbreviated form, and the year in 4-digit format. The day may be single or double-digit.

    </translate><translate>

    Bulleted Lists

    * is the symbol to use for bulletted lists. ** gives a second level:

    * Almonds
    
    <!--T:22-->
    * Nuts
    ** Cashews
    
    <!--T:23-->
    * Raisins
    

    produces

    • Almonds
    • Nuts
      • Cashews
    • Raisins

    Enumerations

    Enumerations are produced in the same way, using '#'.

    # Sift
    # Mix
    ## Stir thoroughly
    # Bake
    

    produces

    1. Sift
    2. Mix
      1. Stir thoroughly
    3. Bake

    For more details see wikimedia on lists.

    Combining Bulleted Lists and Enumerations

    You can have an enumerated sublist in a bulleted list and vice versa, like this:

    * Nuts
    *# Cashew
    *# Crazy
    * Other things
    

    produces

    • Nuts
      1. Cashew
      2. Crazy
    • Other things

    while

    # Nuts
    #* Cashew
    #* Crazy
    # Other things
    

    produces

    1. Nuts
      • Cashew
      • Crazy
    2. Other things

    Note

    Enumerations should never have blank lines in them: it breaks the sequence and numbering starts at one again. Similarly, there should never be blank lines before a sublist item whether enumerated or bulleted: it creates two levels of item markings (bullets or numbers)


    Note

    Please remember, that long lists are a problem for translators. With single level bulleted lists, place each bullet in a section of its own, i.e. make a blank line between bullets. With two levels of bullets the subitems must be kept in the same section as their top level bullet; if you have to use subbullets, please keep the sublists short! With enumerations involved, you must keep everything in one unit. Please try to avoid enumerations, and if you find that you must use them try to keep them short.


    Workaround

    Though it is important to avoid blank lines in enumerations and nested lists it is still possible to split such lists in several translations units. This is highly recommended!


    To get each bullet and each sub bullet in its own translation unit you can enter something like this:

    * First bullet </translate >
    <translate >
    ** First sub bullet </translate >
    <translate >
    ** Another sub bullet<br /><br />This one consists of two paragraphs </translate >
    <translate >
    * The next main bullet </translate >
    <translate >
    ** And so on

    This displays like this:

    • First bullet</translate>

    <translate>

      • First sub bullet</translate>

    <translate>

      • Another sub bullet

        This one consists of two paragraphs</translate>

    <translate>

    • The next main bullet</translate>

    <translate>

      • And so on

    The same method should apply to the other kinds of lists.

    If on the other hand you need to have more sections in the same item, you can do something like this to have each section in a translation unit of its own:

    * First bullet </translate >
    <translate >
    * Second bullet, first section. </translate><br /><br /> <translate > Second section of the
    second bullet. This section has a translation unit of its own </translate >
    <translate >
    * And so on

    This displays like this:

    • First bullet</translate>

    <translate>

    • Second bullet, first section.</translate>

      <translate>

    Second section of the second bullet. This section has a translation unit of its own</translate> <translate>

    • And so on

    Itemizations

    Itemizations are produced using ; and : alternatively. They are best for giving short descriptions for a group of related objects.

    ;Animals
    : They move around and devour other creatures.
    
    <!--T:46-->
    ;Plants
    : They have roots and feed upon ground water and sun.
    

    produces

    Animals
    They move around and devour other creatures.
    Plants
    They have roots and feed upon ground water and sun.

    Note

    As always, please keep each item in a section of its own; it helps translators a lot.


    Add a Link

    There are three kinds of links to learn, internal ones, to another userbase page, internal links to a section of a userbase page, and external URL links.

    For an internal link the format [[PageLayout]], where you want to display the name of the page, does work, but it is not ideal, particularly for translation to docbook and for localisation. It is better to use the form [[Special:myLanguage/PageLayout|Page Layout]], because that allows translators to link correctly even though the page name is localised. The result is that it directs to the correctly translated page, if one exists. You often need to include the link in a sentence, so in that case you would use

    [[Special:myLanguage/PageLayout|this page]]

    which displays

    this page

    Internal links to subsections of a page use character '#' (hash) and should look like this

    [[Special:myLanguage/Tasks_and_Tools#Working_with_Languages|...]]

    With this kind of link it is very important, that the page you link to declares the reference anchor. If the anchor contains space characters, replace them by character '_' (underscore) when calling the reference. If the reference is found, the section will be automatically displayed by your browser (if it manages anchors). If it is not the case, you will have to go down through the page to find the referenced section. External links are given as the URL and a text separated by a space and delimited by single square brackets as in

    [https://en.wikipedia.org/wiki/KDE KDE's Wikipedia page]

    which gives KDE's Wikipedia page.

    Anchor declaration

    Anchor declaration must be done immediatly BEFORE the referenced section, and followed by a blank line separating the anchor and its headline. In the following example just copy in the ID value, the title of associated section. It should look like this:

    </translate><span id="Working with Languages"></span> <translate>

    If the page containing the section that you link to is not yet marked up for translation, you should omit the </translate > and <translate > tags.

    External links are slightly different so

    [http://techbase.kde.org/Schedules our road map]

    displays

    our road map, which would take you straight to the techbase page.

    One last thing to note - when you preview your page, all links are live. This gives you two benefits. You can check (by hovering) that your links are set up as you expected, and you can use a red link to create a new page.

    Make an application list

    If you want to make a list of applications like the ones in the subpages of Applications, you should use the AppItem template. Simply enter

    {|
    {{AppItem|System Settings/Locale|Preferences-desktop-locale.png|
    Settings for localized handling of numbers, dates, etc}}A short text.
    A few more short lines about the app. This is optional.
    |-
    {{AppItem|System Settings/Shortcuts and Gestures|Preferences-desktop-keyboard.png|
    Shortcuts and Gestures}}Another short text. If you do not type <keycap>Enter</keycap> between the texts
    you get one section no matter how long the text is.
    |}

    This gives the following display:

    Settings for localized handling of numbers, dates, etc

    A short text.

    A few more short lines about the app. This is optional.

    Shortcuts and Gestures

    Another short text. If you do not type Enter between the texts you get one section no matter how long the text is.

    Note, that you should not prepend "Special:myLanguage" to the page name - the template takes care of that. Also note, that you must give a title, even if the title is the same as the page name.

    Footnotes

    Footnotes are rarely used in our pages, but if you need them you can place a <ref>text</ref> in the source where the footnote mark should appear. There has to be one <references /> somewhere in the source as well, usually towards the end of the page. This is where the text added by the <ref> tags will appear. For more info see the Wikipedia help page.

    Illustrate Your Text

    Add a single image, centered

    [[File:KMail-kde4.png|250px|center]]

    Note that you can change the position of the image, but the default is left. The size of the image depends on the circumstances, but for screenshots I recommend no less than 250px and no more than 500px.

    Also note that Image: and File: are synonyms. So that [[Image:KMail-kde4.png]] is the same as [[File:KMail-kde4.png]]. However Image: is deprecated, so prefer File: in new content.

    see mediawiki for more info.

    Make the Image Clickable and Add a Caption

    Where you need to show more detail, create a moderately sized image, clickable, so that the full-size can be seen. Simply add the parameter '|thumb' within the image parentheses.

    A caption can also be added as a parameter, but will only show if '|thumb' is present.

    Example:

    [[File:file_name.png|thumb|this will be the caption]]

    Add a caption without a thumbnail

    Captions also appear on images marked up with the frame syntax.

    Example:

    [[File:image.png|frame|left|this will be the caption]]
    

    Prevent text from flowing around image

    Sometimes you might not want the text to flow down the sides of your image. You can prevent this by adding a <br clear=all> tag between the file tag and the text in question.

    Example:

    [[File:image.png]]
    <br clear=all>
    This text would normally flow down the sides of the image but now it will be found under the image
    

    Use Tables to Precisely Place Multiple Images

    {|class="tablecenter" style="border: 1px solid grey;"
    |[[Image:Desktop-config-customized.png|230px|center]]||[[Image:Desktop-settings-rightclick.png|230px|center]]
    |-
    |[[Image:Desktop-theme-details-dialog.png|230px|center]]||[[Image:Plasma-multiple-themes.png|230px|center]]
    |}

    displays


    Note that all the parameters for one image are contained within [[...]], and cells are separated by '||'. To start a new line, insert '|-' on an otherwise-empty line, then '|' at the start of the next one.

    For more details on Table formating see mediawiki

    </translate> <translate>

    Embed a Video

    As of July 2012 the MediaWiki EmbedVideo extension has been installed on userbase.kde. This means you can embed videos from various video hosting sites into the page content and have them display in line.

    EmbedVideo parser function expects to be called in any of the following ways:

    {{#ev:service|id}}
    {{#ev:service|id|width}}
    {{#ev:service|id|width|align}}
    {{#ev:service|id|width|align|desc}}
    {{#evp:service|id|desc}}
    {{#evp:service|id|desc|align}}
    {{#evp:service|id|desc|align|width}}

    Where:

    service is the name of a video sharing service (See "service name" in the list below)
    id is the id of the video to include
    width (optional) is the width in pixels of the viewing area (height will be determined automatically)
    align (optional) is an alignment (float) attribute. May be "left" or "right".
    desc (optional) is a short description to display beneath the video when it is aligned
    

    For example, to include the famous "evolution of dance" YouTube video, you'd enter:

    {{#ev:youtube|dMH0bHeiRNg}}

    And if you wanted scaled down to thumbnail size, on the right with a short description, you could use:

    {{#ev:youtube|dMH0bHeiRNg|100|right|This is an embedded video!}}


    As of version 1.0, EmbedVideo supports embedding video content from the following services:

    Site Service Name
    Dailymotion dailymotion
    Div Share divshare
    Edutopia edutopia
    FunnyOrDie funnyordie
    Google Video googlevideo
    Interia interia or interiavideo
    Revver revver
    sevenload sevenload
    TeacherTube teachertube
    YouTube youtube and youtubehd
    Vimeo vimeo

    </translate> <translate>

    Add Notes and Warnings

    Important

    Indented boxes do not display correctly! Never put a colon in front of a box; it will make the box look very odd.


    Where a note or warning is relevant within your text, use these templates:

    {{Info|This is general information}} displays

    Information

    This is general information


    {{Note|Some important information at this point}} displays

    Note

    Some important information at this point


    {{Tip|A helpful piece of advice, something to remember}}displays

    Tip

    A helpful piece of advice, something to remember


    {{Warning|Take care - this is a dangerous thing to do}} displays

    Warning

    Take care - this is a dangerous thing to do


    Where the strongest possible warning is needed, the Remember box can be used, but please use sparingly. {{Remember|1=This is for things that definitely must not be forgotten}}

    Remember

    This is for things that definitely must not be forgotten


    You can also change the heading:

    Don't Forget This!

    You can use parameter number 2 to set an individual box heading:
    {{Remember|2=Don't Forget This!|1=You can use...}}


    Page Redirection

    You can make a page to redirect to another page automatically by using:

    #REDIRECT [[Pagename]]

    KDE3 and KDE SC 4 Versions of Applications

    By default, KDE SC 4 is assumed. If the KDE SC 4 version is not yet ready for release, or where only a KDE 3 version exists, it may be necessary to document the KDE3 version. In this case you should add the template {{KDE3}} which displays Should you be writing about a KDE3 version and KDE SC 4 version on the same page, use icons for both — {{KDE4}} which displays

    Other Useful Templates

    </translate><translate>

    Inserting GUI Icons

    The best way to refer to icons in the GUI is to display it in the text. This can be done with a template like this: {{Icon|list-add}}. This will display the icon.

    For this to work, the icon image must have been uploaded to the wiki. See Update an Image for an explanation on how to upload images. The .png files can usually be found here: usr/share/icons/oxygen. If possible use the 16x16 icon. The file name should have an Icon- prefix as in Icon-list-add.png — apart from the prefix the filename should exactly match the usual name. Note, that when using the template you should neither write the Icon- prefix nor the .png file type extension.

    The icon can also be written as {{Plus}}, and the icon as {{Minus}}. You can also use {{Configure}} to get the icon, and {{Exit}} gets you the icon.

    Community Applications

    The final consideration concerns those applications which are not distributed as core KDE applications. These need to be indicated by an icon, placing {{Community-app}}


     See footnote


    at the end of your sentence or line, just as you would to denote a footnote in general writing. You then need to add {{Community-app-footnote}} which will create a footnote, like this:



    Support for this application can be found from the project's home page


    Making Major Edits to Existing Pages

    If a page is likely to be open for editing for some time there is a danger of conflicts - someone else may edit at the same time, and saving your edit will cancel out theirs, or vice versa. The way to avoid that is to make a temporary entry, directly under the language bar, using {{Being_Edited}} which will display

    Currently Being Edited

    This page is currently being edited.
    If this notice persists for an unreasonable time, please either notify irc.freenode.org #kde-www or report on Claus chr's Talk page

    Note: Pages should not normally be marked for translation while they are being actively worked on


    Don't forget to remove it when you have finished!

    Adding a New Complex Page

    If you need to be able to work on a page for quite some time, over several days, for instance, you may like to use the Construction template - {{Construction}}, which displays

    Under Construction

    This is a new page, currently under construction!


    Links to Pages in the Neighbourhood

    You can add links to a preceding or a following page using the following templates as described here:

    {{Prevnext2|prevpage=Previous Pagename|nextpage=Following Pagename|prevtext=The page before this page|nexttext=This page you should read later|index=Index page|indextext=Back to Menu}}

    All six arguments are optional. For first pages with no preceeding page or last pages with no following page use this:

    {{Prevnext2|nextpage=Following Pagename|nexttext=This page you should read later}}
    {{Prevnext2|prevpage=Previous Pagename|prevtext=The page before this page}}

    If you don't specify an indexname the name of the current page will be displayed.

    Note

    You should always specify a text for the pages you link to, and you should always use Special:myLanguage with your links; otherwise you create problems for the translators.


    Links to bugs

    You can link directly to a bug in Bugzilla by using this template:

    {{Bug|123456}}

    Please do not forget to add the <s> and </s> to strike through a bug that is closed.

    Adding a List of Sub-Pages

    == Subpages of {{FULLPAGENAME}} ==
    {{Special:PrefixIndex/{{FULLPAGENAME}}/}}

    is very useful when you want to list subpages with active links, such as

    Subpages of User:Claus chr/DPL

    It does, however, also list all "other-language" pages, so use with discretion.



    </translate>

    Reference: DPL Manual
    See also Pipesmoker's notes and this page of examples
    Example UI on this Template:Catlist page

    Searching for pages containing a certain text string

    Matching content in pages: You need to include the contents of pages in this page (include = * does that) and then do a perl-like regexp on their contents to filter interesting pages (includematch = ...). If you are searching in translated pages (fx all Danish pages) it is often advantageous to have namespace = Translations set; otherwise you will get both all full pages and all translation units containing matching text — that could be a very long output.

    <DPL>
      titlematch = %/da
      namespace = Translations
      include = *
      includematch = /[Aa]pplikation/
      includemaxlength = 0
      resultsheader = Danish translation units containing the string "applikation"
      format = ,\n* [[%PAGE%|%TITLE%]]\n,,
    </DPL>
    


    Warning

    There is something very, very wrong with this query!


    Searching for pages that hasn't been marked for translation

    <DPL>
      nottitlematch = %/__|%/zh-%|%pt-%|%(%)
      namespace = Main
      include = *
      includenotmatch = /<languages/
      includemaxlength = 0
      resultsheader = Danish translation units containing the string "applikation"
      format = ,\n* [[%PAGE%|%TITLE%]]\n,,
    </DPL>
    

    Find discussion threads contributed by a user

    Perhaps more talk namespaces needs to be searched.

    <DPL>
      namespace = Talk | Thread
      createdby = AmirHP
    </DPL>
    


    All English manual pages

    <DPL>
      titlematch = %/Manual%
      nottitlematch = %/__|%/__-__|%/___|% (%
      namespace = | User | Draft
      resultsheader = Manual Pages:
      format = ,\n* [[%PAGE%|%TITLE%]]\n,,
    </DPL>
    


    All English pages linking to a given page

    The LinksTo template is describes and tested here: User:Claus_chr/DPL/Test

    Warning

    This query seems to be affected by the same problem as the plain text query (above).



    Kopete Subpages in 3 columns

    <DPL>
      titlematch = Kopete/%
      notnamespace = Translations
      columns = 3
      format = ,\n* [[%PAGE%|%TITLE%]],,
    </DPL>

    Akonadi Subpages in Danish

    <DPL>
      titlematch = Akonadi%/da
      notnamespace = Translations
      format = ,\n* [[%PAGE%|%TITLE%]],,
    </DPL>

    Archived pages

    <DPL>
      titlematch = %
      namespace = Archive
      columns = 2
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% pages in the Archive namespace. These are:\n
    </DPL>

    NoIndexed pages

    <DPL>
      titlematch = %
      category = Noindexed_pages
      columns = 2
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% pages in the Archive namespace. These are:\n
    </DPL>

    Ignoring Deleted Pages

    "As for DPL. If you hit a page with ?action=purge attached to the URL (i.e. http://en.wikinews.org/wiki/Template:Latest_news?action=purge ), it will dump all the removed pages."

    Remaining old-style translations

    <DPL>
      titlematch = %_(%)
      notcategory = Template
      notnamespace = Thread
      notnamespace = Summary
      columns = 2
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% pages (partly) remaining in old-style translations. These are:\n
    </DPL>

    Pages with old i18n bar

    <DPL>
      titlematch = %
      namespace = Main
      uses = Template:I18n/Language Navigation Bar
      columns = 3
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% pages that still display the old i18n language bar\n
    </DPL>

    Pages with old i18n bar but w/o old-way-translated ones

    <DPL>
      nottitlematch = %_(%)
      namespace = Main
      uses = Template:I18n/Language Navigation Bar
      columns = 3
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% relevant pages that still display the old i18n language bar\n
    </DPL>

    Pages not updated since 1st July 2010

    <DPL>
      namespace = Main
      lastrevisionbefore = 201007010000
      columns = 2
      ordermethod=lastedit
      format = ,\n* (%DATE%) [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% pages without recent updates\n
    </DPL>

    Listing Non-Translation Pages

    <DPL>
      nottitlematch = %/__|%/zh-%|%(%)
      titlematch = Amarok%
      namespace = Main
      columns = 1
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% Amarok pages, not counting translations\n
    </DPL>

    List all pages in a specific namespace

    <DPL>
      nottitlematch = %/__|%/zh-%|%pt-%|%(%)
      namespace = MediaWiki
      columns = 3
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = These %TOTALPAGES% pages are in the Mediawiki namespace\n
    </DPL>

    To count translated pages in a specific language:

    <DPL>
      titlematch = %/en
      notnamespace = Translations
      columns = 3
      format = ,\n* [[%PAGE%|%TITLE%]],,
      resultsheader = There are %TOTALPAGES% pages (partly) translated to English. These are:\n
    </DPL>