Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Better way to set new textpack related data?
Hi,
I guess it is the right place to ask…
In the example below, should I prefer this:
gtxt(
skin_step_failure',
array(
'{skin}' => $this->skin,
'{step}' => 'import',
)
);
to lighten the txp_lang
table by using the same textpack item for different steps, or:
gtxt(skin_import_failure', array('{skin}' => $this->skin));
for clarity and code shortness?
Last edited by NicolasGraph (2017-11-09 10:05:49)
Offline
Re: Better way to set new textpack related data?
Unless skin_step_failure
string contains {step}
pattern, I see no difference..?
Offline
Re: Better way to set new textpack related data?
etc wrote #307732:
Unless
skin_step_failure
string contains{step}
pattern, I see no difference..?
Yes, that’s the point.
skin_step_failure
create only one new item; it is only one row in the DB and only one translation.
skin_import_failure
, skin_edit_failure
, etc. are clearer if translations are missing, but I maybe should not care about that?
Offline
Re: Better way to set new textpack related data?
Ah, ok. The less strings the better imo, but I’m the last person to ask UX-wise.
Offline
Re: Better way to set new textpack related data?
etc wrote #307736:
Ah, ok. The less strings the better imo, but I’m the last person to ask UX-wise.
Thanks; Phil maybe has a UX based advice?
Otherwise I will keep the first option, using less strings.
Offline
Re: Better way to set new textpack related data?
Not sure I understand. In the first example how would you proposed the actually translation text to be formatted? If you use…
skin_step_failure => Theme {skin} failed at {step} stage.
…then isn’t {step} hardcoded in English – such as ‘import’ and ‘edit’? That would not be desirable.
So, although yes it’s extra translation work and database increase, the unique string names will have to be used (as has been done historically everywhere in the admin side).
If I’ve not understood correctly, then my apologies.
Offline
Re: Better way to set new textpack related data?
philwareham wrote #307744:
Not sure I understand. In the first example how would you proposed the actually translation text to be formatted? If you use…
skin_step_failure => Theme {skin} failed at {step} stage....
…then isn’t {step} hardcoded in English – such as ‘import’ and ‘edit’?
Obviously, you’re right! Is my brain that rusty?!
Last edited by NicolasGraph (2017-11-09 12:31:54)
Offline
Re: Better way to set new textpack related data?
No worries. New Textpack strings are OK to add as long as we keep them to essential items only. In this case the extra strings are warranted.
I’ve pruned quite a number of legacy unused strings out of the Textpacks at 4.7 now we have the luxury of breaking away from the old RPC server anyway.
Offline
Re: Better way to set new textpack related data?
philwareham wrote #307747:
I’ve pruned quite a number of legacy unused strings out of the Textpacks at 4.7 now we have the luxury of breaking away from the old RPC server anyway.
Thanks for that.
Offline
Re: Better way to set new textpack related data?
I had a similar thought the other night and mused over whether it would be good if we had this kind of thing:
panel_action => {item} <strong>{name}</strong> {action}
So we could use Style default updated
, Language Deutsch installed
, and so forth, saving ourselves a tonne of specific strings.
Then I realised that the structure of that string – its word order – is very English-centric and would likely deliver nonsensical results in other languages, so quickly talked myself out of the idea! While reducing the quantity of language strings is a noble goal, there’s an argument to be made for specifics where necessary.
However, now that languages are on the cusp of being bundled into core (yay!) I think we need to focus on improving load_lang()
and being clever about how we handle strings. load_lang()
is a resource hog and happens on every page. We now have a ‘local’ copy in the filesystem of every string in the lang
directory. Does that mean we don’t need to “install” a language at all? i.e. Txp will automatically ship with all languages available (for core strings at least), so can we repurpose the Languages panel in future versions to be a ‘string manager’ or translation aid?
If we beef up the L10n\Lang.php
methods (as I’ve been doing the last few weeks) and improve them so we can extract data better and more efficiently, or organise it better, then maybe we can eke some more speed out of Txp by parallel processing: fetching essential content from the DB and offloading string manipulation to the filesystem, perhaps?
The only unknown is what to do with custom/plugin strings. Installing/removing files in the filesystem is messy so maybe we need to rethink this a bit?
Anyone got any neat ideas on how we might evolve this to shed ourselves of the legacy RPC overheads that are still prevalent in the filesystem-based approach?
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Online
Re: Better way to set new textpack related data?
philwareham wrote #307744:
skin_step_failure => Theme {skin} failed at {step} stage....
…then isn’t {step} hardcoded in English – such as ‘import’ and ‘edit’? That would not be desirable.
possible variant:
gTxt( skin_step_failure', array( '{skin}' => $this->skin, '{step}' => gTxt('import'), ) );
aks_cron : Cron inside Textpattern | aks_article : extended article_custom tag
aks_cache : cache for TxP | aks_dragdrop : Drag&Drop categories (article, link, image, file)
Offline
Re: Better way to set new textpack related data?
Bloke wrote #307753:
The only unknown is what to do with custom/plugin strings. Installing/removing files in the filesystem is messy so maybe we need to rethink this a bit?
Which existing plugins support multiple languages? I would like to test one idea on real plugins.
aks_cron : Cron inside Textpattern | aks_article : extended article_custom tag
aks_cache : cache for TxP | aks_dragdrop : Drag&Drop categories (article, link, image, file)
Offline