Extensibility

Using `private` visibility when creating classes in a library prevents easy code reuse. For instance, in our project, we decided to use the `locale` parameter for the UI, and use another parameter (named `content_locale`) for the content. On one of our website, there will be 2 UI languages, and 4 content langauges (it is an administration interface for a swiss project). We need to have another listener, but the developer in charge of this did not extend your class because he needed to rewrite the same properties because they were private. It's a shame, and it is not the first time this scenario happens to me. I think it calls for a (new ?) best practice : 

> When writing library code, try to avoid `private` .

Do you agree ?
"a locale or false it cannot be found in the array of allowed locales" is grammatically incorrect and a bit too specific. i would say "a locale or false if no valid locale is found."  - *why* a locale is invalid is up to the implementation.