Fwd: Re: kdereview/plasma/dataengines/nowplaying
Albert Astals Cid
aacid at kde.org
Tue Apr 1 21:06:39 CEST 2008
A Dimarts 01 Abril 2008, Alex Merry va escriure:
> I think we should sort out how translations work in dataengines
> conclusively...
I don't have a clue what a dataengine is and how it works, so please give some
additional info when discussing about how translations should work on
dataengines.
Also please CC me as i'm not on panel-devel.
Albert
>
> Alex
>
>
> ---------- Forwarded Message ----------
>
> Subject: Re: kdereview/plasma/dataengines/nowplaying
> Date: Tuesday 01 April 2008
> From: Albert Astals Cid <aacid at kde.org>
> To: kde-i18n-doc at kde.org
>
> A Dimarts 01 Abril 2008, Alex Merry va escriure:
> > SVN commit 792560 by alexmerry:
> >
> > Add some i18n support.
> >
> > I'm slightly concerned that the translations may not be easy without
> > context, but including context means that applets can't just call
> > i18n() on all strings (which is kind of the point of the I18N_NOOP
> > calls). CC'ing the kde-i18n-doc list for comments.
> >
> > This should finally address all the issues raised by the review process.
>
> In my opinion this is a very weird and wrong behaviour, if the clients do
> not have to use the text, don't mark it with I18N_NOOP, if they have to use
> it, give it already i18n'ed and add context to help translation.
>
> Albert
>
> > CCMAIL: kde-i18n-doc at kde.org
> >
> >
> >
> > M +6 -0 CMakeLists.txt
> > AM Messages.sh
> > M +35 -36 nowplayingengine.cpp
> >
> >
> > --- trunk/kdereview/plasma/dataengines/nowplaying/CMakeLists.txt
> > #792559:792560 @@ -20,6 +20,9 @@
> > QT4_ADD_DBUS_INTERFACE(nowplaying_engine_SRCS ${juk_xml}
> > juk_interface) set(nowplaying_engine_SRCS ${nowplaying_engine_SRCS}
> > juk.cpp) set(JUK_FOUND ON)
> > + message(STATUS "Found JuK D-Bus interface specification: the
> > nowplaying dataengine will support JuK") +else(EXISTS ${juk_xml})
> > + message(STATUS "JuK D-Bus interface specification NOT found: the
> > nowplaying dataengine will NOT support JuK") endif(EXISTS ${juk_xml})
> > macro_log_feature(JUK_FOUND "JuK" "Jukebox and music manager for KDE"
> > "http://developer.kde.org/~wheeler/juk.html" FALSE "" "Support for JuK in
> > the Now Playing data engine")
> >
> > @@ -31,6 +34,9 @@
> > include_directories(${XMMS_INCLUDE_DIRS})
> > include_directories(${GLIB2_INCLUDE_DIR})
> > set(nowplaying_engine_SRCS ${nowplaying_engine_SRCS} xmms.cpp)
> > + message(STATUS "Found XMMS: the nowplaying dataengine will support
> > XMMS 1.x") + else(XMMS_FOUND)
> > + message(STATUS "Could NOT find XMMS: the nowplaying dataengine
> > will NOT support XMMS 1.x") endif(XMMS_FOUND)
> > endif(GLIB2_FOUND)
> >
> > ** trunk/kdereview/plasma/dataengines/nowplaying/Messages.sh #property
> > svn:executable + *
> > --- trunk/kdereview/plasma/dataengines/nowplaying/nowplayingengine.cpp
> > #792559:792560 @@ -68,8 +68,8 @@
> > kDebug() << "Source" << source << "was requested";
> > QString lowerSource = source.toLower();
> > if (lowerSource == "help") {
> > - setData(source, "Use 'players' to get a list of players.\n"
> > - "Use 'properties' to get a list of all
> > properties that may be returned." + setData(source, I18N_NOOP("Use
> > 'players' to get a list of players.\n" + "Use
> > 'properties' to get a list of all properties that may be returned.") /*
> > "\n"
> > "Players can be controlled with\n"
> > @@ -89,26 +89,26 @@
> > );
> > return true;
> > } else if (lowerSource == "properties") {
> > - setData(source, "State", "QString -
> > playing|paused|stopped"); - setData(source, "Artist",
> > "QString - the artist metadata for the\n" -
> > " current track, if available"); -
> > setData(source, "Album", "QString - the album metadata for
> > the\n" - " current
> > track, if available"); - setData(source, "Title",
> > "QString - the title metadata for the\n" -
> > " current track, if available"); - setData(source,
> > "Track number", "int - the album/collection track number\n" -
> > " (eg: on a CD) if known, 0
> > otherwise"); - setData(source, "Comment", "QString - the
> > comment metadata for the\n" - "
> > current track, if available"); - setData(source, "Genre",
> > "QString - the comment metadata for the\n" -
> > " current track, if available"); -
> > setData(source, "Length", "int - the length of the current
> > track\n" - " in
> > seconds, 0 if unknown"); - setData(source, "Position", "int
> > - the position of the current track\n" -
> > " in seconds, 0 if unknown"); - setData(source,
> > "Volume", "float - the volume, given as a float\n" -
> > " between 0 and 1, or -1 if unknown"); -
> > setData(source, "Artwork", "QPixmap - the album artwork, if
> > available"); + setData(source, "State",
> > I18N_NOOP("QString - playing|paused|stopped")); + setData(source,
> > "Artist",
> > I18N_NOOP("QString - the artist metadata for the\n" +
> > " current track, if available"));
> > + setData(source, "Album", I18N_NOOP("QString - the album
> > metadata for the\n" +
> > " current track, if available")); + setData(source, "Title",
> > I18N_NOOP("QString - the title metadata for the\n" +
> > " current track, if
> > available")); + setData(source, "Track number", I18N_NOOP("int
> > - the album/collection track number\n" +
> > " (eg: on a CD) if known, 0 otherwise")); +
> > setData(source, "Comment", I18N_NOOP("QString - the comment
> > metadata for the\n" +
> > " current track, if available")); + setData(source, "Genre",
> > I18N_NOOP("QString - the comment metadata for the\n" +
> > " current track, if
> > available")); + setData(source, "Length", I18N_NOOP("int
> > - the length of the current track\n" +
> > " in seconds, 0 if unknown")); +
> > setData(source, "Position", I18N_NOOP("int - the position of
> > the current track\n" +
> > " in seconds, 0 if unknown")); + setData(source, "Volume",
> > I18N_NOOP("float - the volume, given as a float\n" +
> > " between 0 and 1, or -1 if
> > unknown")); + setData(source, "Artwork",
> > I18N_NOOP("QPixmap - the album artwork, if available")); #if 0
> > setData(source, "Can play", "bool - whether the 'play'
> > command can be\n" " expected to have any effect\n" @@ -143,7
> > +143,6 @@
> > } else if (lowerSource == "players") {
> > setData(source, sources());
> > return true;
> > - } else if (lowerSource == "players") {
> > //FIXME: this belongs in a dataSink, or whatever we're calling it
> > #if 0
> > } else if (source.contains(':')) {
> > @@ -238,26 +237,26 @@
> >
> > switch(player->state()) {
> > case Player::Playing:
> > - setData(source, "State", "playing");
> > + setData(source, I18N_NOOP("State"), I18N_NOOP("playing"));
> > break;
> > case Player::Paused:
> > - setData(source, "State", "paused");
> > + setData(source, I18N_NOOP("State"), I18N_NOOP("paused"));
> > break;
> > case Player::Stopped:
> > - setData(source, "State", "stopped");
> > + setData(source, I18N_NOOP("State"), I18N_NOOP("stopped"));
> > break;
> > }
> >
> > - setData(source, "Artist", player->artist());
> > - setData(source, "Album", player->album());
> > - setData(source, "Title", player->title());
> > - setData(source, "Track number", player->trackNumber());
> > - setData(source, "Comment", player->comment());
> > - setData(source, "Genre", player->genre());
> > - setData(source, "Length", player->length());
> > - setData(source, "Position", player->position());
> > - setData(source, "Volume", player->volume());
> > - setData(source, "Artwork", player->artwork());
> > + setData(source, I18N_NOOP("Artist"), player->artist());
> > + setData(source, I18N_NOOP("Album"), player->album());
> > + setData(source, I18N_NOOP("Title"), player->title());
> > + setData(source, I18N_NOOP("Track number"), player->trackNumber());
> > + setData(source, I18N_NOOP("Comment"), player->comment());
> > + setData(source, I18N_NOOP("Genre"), player->genre());
> > + setData(source, I18N_NOOP("Length"), player->length());
> > + setData(source, I18N_NOOP("Position"), player->position());
> > + setData(source, I18N_NOOP("Volume"), player->volume());
> > + setData(source, I18N_NOOP("Artwork"), player->artwork());
> > // FIXME: re-enable when we have a dataSink
> > #if 0
> > setData(source, "Can play", player->canPlay());
>
> -------------------------------------------------------
More information about the Panel-devel
mailing list