I don't know of one. But if you don't mind the name being changed globally you can use the name by changing the language file which is I presume moodle/langs/en/course.php where en is your language, or via the GUI to change the language files at adminin>languages.
You can also create a custom lang for a course or set of courses. I did this for a sports themed course. For instance for english, duplicate lang/en to lang/en_projects, and then change the strings in the lang/en_projects/moodle.php, etc.
Force this language as the default for the course(s) that will use it.
As for the "Course events" in the calendar, I am assuming you could force this word in your course language file too, I hadn't thought of that until now, I'll have to try it.
Any other ideas?
Besides, if I already have a custom language and string another one on top of it, one that actually includes more strings from the original parent, I have even a bigger headache to keep them in sync and up to date with changes in the parent lang-file.
And to top it, in my case, the "course" in question is multilingual, so I can't force a single language.
Well, I think I agree the language file solution is a bit of a kludge, but if you are going to use it, you could at least do something like this....
Create new language, say 'cu' (for custom), then inside this, put
$string['course'] = 'Discussion area';
Then at least, as you write new versions of Moodle, you don't have to keep recreating the whole thing.
but all handcrafted .... would be so nice to redefine it ....
Having looked through the 'Lang' files I now have a clearer idea of why there is no quick fix to enable changing the label 'Course' to something like 'Project' as one can with 'Student' and 'Teacher'. I also see why changing 'Student' and 'Teacher' in Configation > Site Settings does not change these occurances in message texts
Even doing a global search and replace of the the Lang files seems out of the question as many string variable names have 'course' embedded in them and there is no standard as to how these variables are named. So short of writing a parser to determine if an occurence of 'course' is in the variable name or varable value before trying to change the term, I am not sure of the best way of approaching this.
Is there a repository of ammended 'Lang' files where others may have been through this previously and stored their results for others?
ie. I would love to lay my hands on a Moodle 1.6 en_utf8 folder where every string value of 'course' had been changed to 'project'. What would even be better would be a file where 'Student' had also been changed to 'Member' and 'Teacher' to 'Facilitator' or to some other term that would be able to be globally searched and replaced.
Failing this has anyone written a parser that can recognise the value part of string variable and change every occurance of a user-definable term to another user definable term?
Thanks in advance,
Thanks to Martin Langhoff and Jun Yamog for their earlier contributions to the script.
A lot of things are still hard-coded and could use more polishing. You'll want to review the code and make a number of changes based on your particular needs.
Here are some specifics on what it does:
1. Rewrites language string variations of "student," "teacher" and
"course" to "writer" "manager" and "module" respectively. *
2. Creates a new custom language directory if it doesn't already exists based on a variable named "$customlangdir" which defines the original language directory. **
3. References a variable "$originlangdir" which defines the new
origin language directory. ***
4. Deletes the contents of the old custom language directory if the directory already exists (before it rewrites it). ****
5. Outputs original and custom string for testing and review. ****
6. Omits the following directories:
* For example, "student", "students", "Student", "Students" get changed to "writer", "writers", "Writer", and "Writers" -- these can be edited in the script to your needs). The occurance of "student" "teacher" and "course" in string variable name remains unchanged.
** The $customlangdir variable name is currently set to "lang_xx_en" and any two characters can be used "aa" "ab" etc -- as this is the Moodle convention and the database enforces this (via the varchar length of the mdl_user.lang field in the database--at least in Moodle 1.6).
*** The $originlangdir variable name is currently set to "lang_en" (ie, the english language pack).
**** This is to allow you to make multiple iterations on developing and testing the custom language pack -- as I needed to.
Happy new, custom language pack creating!