Page 1 of 1

actions.ini for each table and default language

PostPosted: Tue Jun 17, 2008 5:51 am
by meta
Hi steve,

when having no customized actions.ini in my app I will get the german translation of buttons etc. according to my browsers language configuration, right?

Now I tried to have one own actions.ini for each of my apps tables so that I can customize some tabs, actions etc.

After doing so, I got the buttons all in english again. What can I do to have german as a default language for all of my apps tables?

Thank you
Markus

PostPosted: Tue Jun 17, 2008 5:58 am
by Jean
Hi Markus,

Did you try to add
Code: Select all
[languages]
de = de


in your conf.ini ?

Jean

PostPosted: Tue Jun 17, 2008 7:08 am
by meta
Jean wrote:Hi Markus,

Did you try to add
Code: Select all
[languages]
de = de


in your conf.ini ?

Jean


Hi Jean,

yes I tried but it won't work :(

Thank you anyway. Any more Ideas?
Markus

PostPosted: Tue Jun 17, 2008 8:31 am
by shannah
Can you give me an example of one of the actions that you have customized that causes the problem? (e.g. the actions.ini entry)

PostPosted: Tue Jun 17, 2008 9:20 am
by meta
shannah wrote:Can you give me an example of one of the actions that you have customized that causes the problem? (e.g. the actions.ini entry)


Hi steve,

thank you for your quick reply. I have not customized anything yet. I just copied the original actions.ini from my XF-directory directly into my tables-Directories. So it looks like this:




Code: Select all
;;------------------------------------------------------------------------------
;; Table tabs
;; -----------
;;
;; The table tabs are the little tabs ('details', 'list', 'find', ...) at the top
;; of the screen.

;; Show the details of the current record
[browse]
   label = Details
   category = table_tabs
   url = "{$this->url('-action=view')}"
   accessKey = "b"
   mode = browse
   permission = view
   order=0

;; Show a list of the records in the current found set
[list]
   label = List
   category = table_tabs
   url = "{$this->url('-action=list')}"
   accessKey = "l"
   mode = list
   template = Dataface_List_View.html
   permission = list
   order=0.5

and so on...



Did I do it the right way or do I have to have a subdirectory actions in my apps table directories?

Thank you
Markus

PostPosted: Tue Jun 17, 2008 10:45 am
by shannah
The method that you used will actually replace the entire action. It is better to just extend the action and change the parts that you want to change. You can extend an action with this syntax:

Code: Select all
[actionname > actionname]


e.g. if you just wanted to change the order of the browse action:
Code: Select all
[browse > browse]
    order=10


This way the settings such as the label of the browse action won't be overwritten and you should be able to maintain internationalization.

(Theoretically your method should still work - but I'll have to look into why its not picking the translation).

-Steve

PostPosted: Wed Jun 18, 2008 4:00 am
by meta
Hi Steve,

it works. Thank you.

Normally I thought it should be like this:

All parameters in path/to/myapp/tables/mytable/actions.ini are executed FIRST

The same parameters in path/to/myapp/actions.ini AND/OR
in path/to/xataface/actions.ini are overwritten.

All parameters in path/to/myapp/actions.ini are executed SECOND
The same parameters in path/to/xataface/actions.ini are overwritten.

All parameters in path/to/xataface/actions.ini are executed THIRD.

I have it so that I have an actions.ini per table, NO actions.ini in path/to/myapp/ and the standard actions.ini in path/to/xataface/

I wonder how the translation process works when I use your solution and in general? It's just my curiosity and trying to better understand your framework.

Markus

PostPosted: Wed Jun 18, 2008 7:42 pm
by shannah
Hi Markus,

The way that you describe would be nice - but it doesn't quite work that way.
If you define an action in any actions.ini file, it will erase any action that has been defined previously. If you want to extend a previous action you use the syntax:
[myaction > parentaction]

So in your case you were overriding the browse action with another action named browse
[browse > browse]

The good thing about this is that if you want to completely erase an action, you can just add an empty action to your actions.ini file with the same name.

e.g. adding
[browse]

to your actions.ini file would remove the browse tab completely.

It does load in the order that you suspect, though:

app/tables/.../actions.ini
app/actions.ini
dataface/actions.ini

etc..

However it appears that perhaps I haven't added the localisation for labels defined in the table level actions.ini files... this is a bug that I'll look into when I get a chance .

-Steve

PostPosted: Thu Jun 19, 2008 8:14 am
by meta
Thank you Steve. I think I can work with it.

Greets
Markus