Skip to content

Added Arabic translations for StartupHints pages (1–12) and the Arabic error page.#1504

Open
Lamis-Abla wants to merge 173 commits into
OpenBoard-org:masterfrom
claas998:doku-translations-for-startuphints
Open

Added Arabic translations for StartupHints pages (1–12) and the Arabic error page.#1504
Lamis-Abla wants to merge 173 commits into
OpenBoard-org:masterfrom
claas998:doku-translations-for-startuphints

Conversation

@Lamis-Abla

Copy link
Copy Markdown

Hi everyone,

I completed the Arabic translation for the StartupHints pages and pushed it to the doku-translations-for-startuphints branch. Could you please review it and let me know if any changes are needed?

@abdna94
@SofianElmotiem
@claas998

Changes

  • Added Arabic versions of startup hints pages (1–12)
  • Added Arabic error page
  • Applied RTL support (dir="rtl")
  • Translated all user-facing content into Arabic.

Testing

  • Opened translated pages locally in browser
  • Verified layout and content rendering

multun and others added 30 commits May 5, 2020 00:19
This check fails to work with multiple screens having different
geometries. It really shouldn't be necessary anyway.
On Debian 11 when executing `qmake OpenBoard.org`, one gets the following
error message:

```
qmake OpenBoard.pro
sh: 1: Syntax error: "&" unexpected
sh: 1: Syntax error: "&" unexpected
sh: 1: Syntax error: "&" unexpected
```

The cause is the use of bash-specific `|&` pipe operator in `podcast.pri` line 70
to determine the `FFMPEG_VERSION`.
The old ordering is deprecated and a new overload with different
ordering of arguments is provided.
FFmpeg 7.1 introduces avcodec_get_supported_config to query
available sample formats. It basically copies over sample_fmts,
but doing so directly is deprecated.
Using the default capture `=` captures more than it has to and
leads to ambiguity whether the object is capture by value or by
reference. This produces a warning in C++20.

Exactly enumerate the captured variables to resolve the warning.
- currently the relative dependencies to the media asset files
  are not known by the graphics items
- instead the scene has functions to derive that information
  depending on the item type
- create abstract class UBMediaAssetItem to move the information
  about the media asset to the item
- add UBGraphicsPDFItem to the list of media items to enable
  handling of the underlaying PDF file as media asset
- store name of underlying image file in UBGraphicsPixmapItem
- get relative dependencies by just querying the items
- also provide a setter to inform the items about the asset path
- convert legacy function getRelativeDependencies to return a list
  of QString
- adjust invokers of this function, which previously used a variety
  of functions to convert the QUrl back to a QString.
- remove UBGraphicsItem::clearSource()
- items must never delete their media asset files, as they
  do not know whether they are referenced by some other item
- removal of media asset files is handled later with the TOC

Signed-off-by: letsfindaway <me@letsfindaway.de>
- add UBSvgSubsetAdaptor::replicateScene() to combine copying
  and changing the UUID
- extend UBDocument::copyPage() to handle all scene copying
- use copyPage() in UBBoardController::addScene()
- use copyPage in UBDocumentTreeView::dropEvent()
- replace UBPersistenceManager::duplicateDocumentScene() by
  copyDocumentScene()
- change task split between UBDocument and UBPersistenceManager
  when deleting scenes
- add UBDocument::pageRelativeDependencies() as preparation for
  later TOC handling

Signed-off-by: letsfindaway <me@letsfindaway.de>
- remove UBGraphicsItemData::ItemUuid
- do not store UUID in item data, only in UBItem
- remove all setUuid overwrites from item classes
- add map to UBCoreGraphicsScene and manage it there
- provide lookup function for map instead of linear search
- adapt some usages to get UUID in UBSvgSubsetAdaptor
  and UBGraphicsScene

Signed-off-by: letsfindaway <me@letsfindaway.de>
- create SHA-1 based UUIDs for media asset file names
- such UUIDs are unique based on the file content
- separate item UUID from asset UUID
- don't treat as failure if target file exists: due to the
  hash based UUID it is very likely the correct file

Signed-off-by: letsfindaway <me@letsfindaway.de>
- class is no longer used or referenced anywhere

Signed-off-by: letsfindaway <me@letsfindaway.de>
- drop CFF import support
- drop CFF export support (was already disabled)

Signed-off-by: letsfindaway <me@letsfindaway.de>
- add UBToc holding a table-of-content
- add UBTocSerializer for loading and saving the TOC as JSON
- create a default TOC for a UBDocument if no TOC exists
- add functions to create the page and thumbnail file names
  from an integer id
- add functions to get the file name by index based on TOC content
- add scanner to create or update a TOC for documents
  created or processed by previous versions of OpenBoard
- update document version to 4.9.0
- use TOC to translate page index to page id everywhere

Signed-off-by: letsfindaway <me@letsfindaway.de>
- use UBDocument::pageCount() instead of UBDocumentProxy::pageCount()
- use UBDocument in signals sent to UBBoardController to ease this
  transition
- use UBDocument when importing UBZ
- use QMap for UBSceneCache so that all entries for one document are
  grouped
- add a variable containint the active UBDocument to UBDocumentContainer
- remove pageCount from UBDocumentProxy
  no longer used, replaced by UBDocument::pageCount
- also remove UBPersistenceManager::sceneCount, obsoleted by
  UBDocument::scan

Signed-off-by: letsfindaway <me@letsfindaway.de>
- keep separate asset UUID for SVG items
- rename mediaAssetUuid to createMediaAssetUuid
- make setMediaAsset pure virtual and implement it in all derived
  classes
- add UBMediaAssetItem::uuidFromPath to derive UUID from path
- add UBMediaAssetItem::mediaAssetUuid to get asset UUID
- allow to switch renderer for UBGraphicsPDFItem when PDF file
  is renamed

Signed-off-by: letsfindaway <me@letsfindaway.de>
- UBPersistenceManager: add function to copy assets
- UBPersistenceManager: add function to cleanup unreferenced assets
- UBPersistenceManager: remove unused fileDirectory
- UBSceneCache: remove unused functions moving scenes
- UBDocument::scan
  - display progress messages
  - rename media assets when they do not have a UuidV5
  - delete unreferenced media assets when scan is complete
- UBDocument: also delete unref. media assets when deleting UBDocument
- UBMediaAssetItem: add function to create UuidV5 from file or dir

Signed-off-by: letsfindaway <me@letsfindaway.de>
- when exporting a document, renumber the page files in
  ascending order so that the document is backward compatible
- works for UBZ and UBX
- fix some copyright headers

Signed-off-by: letsfindaway <me@letsfindaway.de>
- QtConcurrent::mapped provides the functions implemented in
  UBBackgroundLoader nearly out of the box
- use multiple threads, thus improving performance
- add constructor to limit amount of data for each file

Signed-off-by: letsfindaway <me@letsfindaway.de>
- separate scanning into two phases (UUID and asset)
- perform UUID scanning when document is selected
- perform asset scanning in background when document is opened
- limit number of parallel loaded scenes for asset scanning
- retrieve results from background loader by signal/slot
  to allow throttling
- retrieve scene UUID and version from scene header
- use separate threads for future watcher and blocking buffer
- do not cache scenes loaded for asset scanning
- save TOC only if modified

Signed-off-by: letsfindaway <me@letsfindaway.de>
- Qt6 introduced a new class QKeyCombination
- in Qt5, a simple int was used
- use the proper functions for each Qt version in UBShortcutManager
- avoid check for existence of thumbnail files in main thread
- create missing thumbnails later when loading fails
Signed-off-by: letsfindaway <me@letsfindaway.de>
- express that this is a table of contents for a document
- add mime type
- remove URLs
- always highlight complete row when dropping a page on the tree
- show copy cursor when dropping a page
- show move cursor when moving a document
- start page drag action with move and copy actions enabled
- add function to determine base model
- use indexes from mime data
- remove dead code dropMimeData
Qt 6.8 introduces a new system to manage permissions for websites

Building with Qt 6.7 and earlier is unaffected due to extensive preprocessor directives.
The old version of setContent returns bool and takes in pointers
to allow access to the error information. This was replaced in Qt 6.5
with a ParseResult struct which allows boolean checking and direct
access to the information without additional pointers.

The old version had separate overloads to specify whether to use
namespace processing or not. This, among other options, can now be
specified via ParseOptions which were introduced in Qt 6.5 too.
QDateTime::setTimeSpec is deprecated in Qt 6.9 per documentation,
but already emits a warning in Qt 6.8. Anyway, use setTimeZone.
Gvf63 and others added 27 commits February 7, 2026 12:41
fixed some translations
- return boolean success indicator for page operations
- add parameter to suppress confirmation dialog when deleting pages
- create TOC assets entry when creating a page
- create thumbnail when creating a page
- add common function to UBDocumentToc to check index bounds

Signed-off-by: letsfindaway <me@letsfindaway.de>
- do not attempt to save current page when it was deleted
- set mDeletingSceneIndex while switching to other scene
- remove `UBBoardController::deleteScene()` as it is no longer used
- remove `UBBoardController::setActiveSceneIndex` as it is not used
  and would break internal consistency of the board controller

Signed-off-by: letsfindaway <me@letsfindaway.de>
- thumbnails are not created after adding objects using
  add to document in document mode or import from board mode
- remove asset entries from TOC and force scanning new pages
- same as during import
- when using add to document in document mode to add
  an image or a set of images, the resulting images may be
  scaled wrongly and just appear as small dot
- UBGraphicsScene::scaleToFitDocumentSize may use an uninitialized
  mNominalSize
- Use nominalSize() instead to guarantee an initialized value

Signed-off-by: letsfindaway <me@letsfindaway.de>
- extract common code from importFile and addFilesToDocument
  to new function importPages
- remove a 14 years old workaround for an unspecified MacOS
  problem, which was only present in one of the code paths

Signed-off-by: letsfindaway <me@letsfindaway.de>
- modernized the light and dark themes across the application
- restyled toolbars, button groups, tabs, dialogs and floating palettes
- refreshed the Preferences dialog, startup hints and message popups
- aligned board and desktop palette appearance and removed visual inconsistencies
- moved widget-specific styling toward QSS and object-name based selectors
- reduced ad hoc C++ styling code where QSS was sufficient
- finalized dark mode polish for selections, scrollbars, spin boxes and inline editors
- updated document and board thumbnail views to react correctly to theme changes
- unified close button handling for floating palettes with a shared asset-based icon
- cleaned up obsolete styling helpers and unused palette-related code
- introduced a debug widget inspector to help debugging style issues
…ument-checks

Fix: some bugs in UBDocument
In Document Thumbnails view :
- restored 1.7.3 selection behavior
- fixed drag and drop OpenBoard-org#1402 issue
- when no page is selected, selecting one now works even if
  Shift is pressed
- when duplicating a scene in board mode while the left
  palette is hidden and then showing the palette, the
  thumbnail arrangement was broken
- unconditionally rearrange thumbnails when showing palette

Signed-off-by: letsfindaway <me@letsfindaway.de>
…xstartref and the root object, making any pdf export to fail because it could not find the /Root object. Simply increased the size of the portion that is read to find it
- poppler 26.02 removes an obsolete parameter from the constructor
  of SplashOutputDev
- conditionally remove this parameter depending on poppler version

Signed-off-by: letsfindaway <me@letsfindaway.de>
- default WebEngine profile is private browsing since Qt 6
- use a named profile to enable cookie storage as with Qt 5
- name it Default, so that it actually uses the same location

Signed-off-by: letsfindaway <me@letsfindaway.de>
What’s new:

Improved content layout and refreshed styling
Integrated dark and light themes
Enhanced navigation bar and hint presentation
Scrollbar now matches the active theme
Hint 1 is now interactive
All available StartupHints languages have been patched
Most content remains unchanged.

This update primarily focuses on styling, display improvements, smoother navigation, and better UI harmonization for version 1.8.
…-update

Update StartupHints for alignment with versions 1.7.7 and upcoming 1.8
Adds the Marelle font family v1.004, released by the French Direction du
Numérique pour l'Éducation (DNE). Marelle is an OFL-licensed font
designed specifically for teaching cursive handwriting in primary school,
developed by professional type designers supervised by teachers following
current French best practices.

The family includes 8 variants:
- Marelle / Marelle2: cursive with cursive or baton uppercase
- MarelleBaton / MarelleBaton2: baton-style with cursive or baton uppercase
- MarelleLIGNES variants: all of the above with Seyes ruling lines

This adds a properly licensed alternative to the existing EcritureA and
EcritureB fonts, which carry license restrictions that prevent
redistribution by distributions such as Debian and Fedora.

Closes #2
Reference: OpenBoard-org#1469

Signed-off-by: Sofian Elmotiem <sofianelmotiem@gmail.com>
- Add an optional left offset for the for the left dock palette
- Position the sidebar tab next to the vertical stylus palette
- Update the offset when the stylus palette changes orientation or visibility
- Keep the existing behavior unchanged for horizontal stylus palette

Closes #5
References OpenBoard-org#1483

Signed-off-by: claas998
@motmot3000

Copy link
Copy Markdown

Hi @Lamis-Abla,

Thank you for your contribution and for taking the time to work on the Arabic translations!

However, there is a small issue with the base branch of your PR. You've based your work on master, which does not reflect the latest version of the StartupHints. To align with the most up-to-date content, you'll need to rebase your work on the dev branch, where the updated StartupHints are located.

The good news is that most of the text content remains the same, so you won't have to redo your translation from scratch. There are, however, some differences in the code structure and layout that you'll need to account for.

Feel free to reach out if you have any questions.

Best regards,
Thomas Wünsche

@motmot3000

Copy link
Copy Markdown

Hi @Lamis-Abla,

Thanks for the follow-up commit! Unfortunately the PR is still based on master, not on dev, so it isn't aligned with the up-to-date StartupHints yet.

The dev branch is here: https://github.com/OpenBoard-org/OpenBoard/tree/dev — this is the branch your work needs to target.

Best regardss,

Thomas Wünsche

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.