I have experience of this being the native english speaker receiving code written by programmers from other countries.
I think it is just good practice to write your variable names / table names etc in English for a few reasons. You never know what is going to happen in the future, the code which you are working on now may be just for an internal project, but it may also be passed off to another office in the future or it may be something you or your company decide to sell as the product grows.
Having your names in english means you can pass off your code to not only native english speaking devs but any developers you may meet, English may not be their native language but they will understand enough generally to get the idea of what your names mean.
Whilst programmers may struggle with some names in english GoogleTranslate and / or a dictionary is generally enough to accuartely translate single words. Since english does not have masculine / feminine words it isnt too hard to get the names correct or close enough.
Having English names also makes it easier to outsource work and / or get support from external parties. Imagine you have to integrate something into your code you have no experience of and decide to outsource this to another programmer. If your names arent in english this programmer either has to bug you to find out what things mean or translate it themselves, both of these options waste time.
From my own history I have recently worked on code which was written by a french company, all the database tables / columns / report names (and text) etc were in french, given that myself and the colleague I was working with had very little knowledge of the language we had to constantly use GoogleTranslate, this slowed the entire task down, eventually we did learn some of the words but it made the task a lot more tedious and long winded than it had to be. Had the initial developer considered this when developing this database our task would have taken half the time.
The GUI is best to write using resource files to contain your text, that way you can easily have your software support multiple languages. Whilst this may seem overkill for some projects it is nice to be future proof and for the little extra effort you can future proof your work in a way.
The only place I would say it would be acceptable to use non english names is maybe in website design where the user will see the complete URL with folders ie www.yourURL.com/subfolder/filename.htm in this situation if your website is not for an international audience it is appropriate to use non english file / folder names.
All of the above should ideally be part of a well planned coding standards document which not only includes the language to name things, but also which case to use and the gramatical style.
public 漢語 get漢語();