| #!/usr/bin/env python |
| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| '''A CustomType for filenames.''' |
| |
| from grit import clique |
| from grit import lazy_re |
| |
| |
| class WindowsFilename(clique.CustomType): |
| '''Validates that messages can be used as Windows filenames, and strips |
| illegal characters out of translations. |
| ''' |
| |
| BANNED = lazy_re.compile('\+|:|\/|\\\\|\*|\?|\"|\<|\>|\|') |
| |
| def Validate(self, message): |
| return not self.BANNED.search(message.GetPresentableContent()) |
| |
| def ValidateAndModify(self, lang, translation): |
| is_ok = self.Validate(translation) |
| self.ModifyEachTextPart(lang, translation) |
| return is_ok |
| |
| def ModifyTextPart(self, lang, text): |
| return self.BANNED.sub(' ', text) |