mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Auto Simplified-Traditional Chinese Conversion in Search #8398
Closed
opened 2025-12-29 20:36:13 +01:00 by adam
·
5 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#8398
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @frnksmdlkedjnfr on GitHub (Aug 2, 2023).
NetBox version
c6abd184c2b3 (v3.5.7)
Feature type
Data model extension
Proposed functionality
Regarding variants (alternative writing & simplification) of Chinese characters as the same when searching.
Use case
This might be a niche request, but it's a real pain for people like me working in a cross-country company. We use traditional Chinese and simplified Chinese at the same time, because we have employees from China, Hong Kong, and Taiwan. Though all three of these regions use Chinese, they all have their own unique standards of the writing system, much like the difference of the orthography of American English and British English.
Examples:
CN / HK / TW
卫 / 衞 / 衛
里 / 裏 / 裡
Technically all the three characters mean the same thing. They're just seen as the standard respectively. Native speakers can generally read the different variants with no problem, but when it comes to searching it becomes a serious problem—they have totally different Unicode codings.
So is it possible to regard these variants as the same character when searching? Supporting materials are easily available on the Internet (1, 2) I know it's very challenging for a non-native speaker to grasp the concept and struggle here, just think of this as trying to get 'authorisation' with 'authorization'. Or can you suggest some ways to modifying the code by myself?
Database changes
None.
External dependencies
None.
@jsenecal commented on GitHub (Aug 2, 2023):
Honestly, while I do understand the challenge here, I see little value in implementing such functionality (and supporting it) due to its nature. I'm not even sure there is an easy way to support this.
However! You can potentially use custom fields to support this, as they are searchable.
A text field, say "Alternate Typography" could contain the various variants and be searched for.
Let me know if that makes sense @frnksmdlkedjnfr
@frnksmdlkedjnfr commented on GitHub (Aug 3, 2023):
Thanks for the reply. The problem with custom fields is that I already have many custom fields for my assets, and they contain variant characters already.
@jsenecal commented on GitHub (Aug 3, 2023):
Its not working for you ? Perhaps there is a different issue here...
@frnksmdlkedjnfr commented on GitHub (Aug 10, 2023):
It's not that it's not working. The problem is that these variant characters are everywhere. They're in the names, in the descriptions, in the comments, and in custom fields I've already created.
Just imagine there's a circuit named
'British Gaol - American Gaol', and the description goes'The network centre circuit transmitting prisoners to be transferred by aeroplanes'. A circuit created by a British person obviously.Then an American user is trying to search this circuit with
'British Jail - American Jail', and he fails because of the different orthography. Then he tries to get it by searching'network center'and fails again, because 'center' is spelt as'centre'in the UK.It's not feasible to create an custom all-information-in-one field that contains the enumeration of the possible spellings. One like
'Orthography Proof Field': 'British Gaol - American Gaol|British Jail - American Jail: The network centre circuit transmitting prisoners to be transferred by aeroplanes|The network center circuit transmitting prisoners to be transferred by airplanes'.And even worse, for Chinese there're technically up to 4 variants of the same character. I cannot fathom the amount of combinations.
One way that might tackle the problem is, when a character that has variants is in the search input, instead of just returning the results for this one input, return the results of all possible combinations of variant characters.
Example:
Input: 卫生部专线 (Simplified Chinese, meaning dedicated line for the health dept.)
All possible variant combinations: 卫
[衞, 衛]生部专[專]线[綫,線]Enumeration (18 in total):
(search results for all 18 combinations)Just I was writing this, I thought of another solution that might be a lot more easier: search with Pinyin (basically the romanisation of Chinese characters). No matter how many variants a character has, they are all pronounced the same (except for few exceptions like
'校', which can be pronounced as'xiào'and'jiào').So if the pronunciation of these variant character are all the same, why not just treat Chinese characters are Pinyin in the search process?
In the example I gave above, all 18 combinations can be broadly transcribed (without the tone markers) as
'WeiShengBuZhuanXian'. So when the user tries to search any of the 18 combinations, they could all be first transcribed into'WeiShengBuZhuanXian', and then we try to match that transliteration with the assets' data.But this entails another problem: all the assets have to be 'compressed' together into a huge chunk of text, and then transcribed into Pinyin. Otherwise nothing would match the user input.
So I guess ultimately we need to implement an auto-transliteration function when the user searches with Chinese and assets with Chinese are created. I know it's of little value to you developers, but would you provide some guidance as to how to code this myself?
@jeremystretch commented on GitHub (Aug 10, 2023):
I'm sorry but this doesn't seem like something we'll be able to commit resources to working on, especially given how few developers actively contribute to NetBox. If you'd like to experiment with an implementation yourself and come up with a workable solution we'll be happy to take a look. Short of that this isn't something we'll be able to support.