Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iPad layouts more reflective of system keyboards #33

Closed
2 tasks done
andrewtavis opened this issue Nov 23, 2021 · 39 comments
Closed
2 tasks done

iPad layouts more reflective of system keyboards #33

andrewtavis opened this issue Nov 23, 2021 · 39 comments
Assignees
Labels
design Relates to UX/UI designs good first issue Good for newcomers help wanted Extra attention is needed

Comments

@andrewtavis
Copy link
Member

andrewtavis commented Nov 23, 2021

Terms

Description

This issue at time of writing is not a priority, but could be later. The focus is making the iPad version of Scribe more reflective of the system keyboard layout. iPad support was not the key focus for Scribe at launch, so the keyboards generally look like larger versions of iPhone keyboards. It would be best if multiple layouts of iPad keyboards could be made that reflect having the numbers on the top row always, as well as other the system keyboard layout characteristics.

@andrewtavis andrewtavis added feature New feature or request good first issue Good for newcomers help wanted Extra attention is needed design Relates to UX/UI designs labels Nov 23, 2021
@andrewtavis andrewtavis removed the feature New feature or request label Nov 30, 2021
@andrewtavis
Copy link
Member Author

These changes would be done in the InterfaceVariables files for each keyboard, with the conditions within KeyboardsBase/KeyboardKeys.swift then being used to adapt the key widths.

@neisenlo
Copy link
Contributor

Would this be desired for all iPads or would only the larger models want an additional row of keys?

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 21, 2023

Hey @neisenlo! 👋 I’d agree that only the larger models should have an extra row of keys :) A basic thing we could do is edit the key sizes now to get them to be more reflective of the system keyboards (by this I mean that some keys should be wider than they are now). After this we could do a simple boolean check of screen dimensions to determine if another row would be possible. We could add the number keys into the interface variable files and just ignore them if the screen isn’t big enough?

Let me know if this is something you’d be interested in working on. Would be happy to assign and could also draw your attention to some of the files you’d be working with 😊

@neisenlo
Copy link
Contributor

I'd definitely be willing to give it a shot! Would you recommend hardcoding the changes into each letterKeysPad in the InterfaceVariables file first?

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 21, 2023

Assigning you so people know 😊 I’d say a first thing to do as prep could even be adding in the number keys and delete into the letterKeysPads and then changing the place where they’re called such that those keys are skipped? The row would be 1 to 0, -, = and backspace.

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 21, 2023

Big thing is that in thinking about this we need a new layout file to make this work, as it’s designed now so that the keys each have their own row. We thus only have four rows available. Maybe let’s add the top row and skip it first, then I can make a new layout file for the larger iPads and hook it up, and then from there you can work on getting the layouts the way they should look with wider buttons and a tab option, etc? Let me know how this sounds :) You’d also be welcome to play around with layouts if you wanted, but that’s something I wouldn’t expect 😊

@neisenlo
Copy link
Contributor

I have added a number row (as specified above) to all the keyboards and simulated an iPad that was too small so I ignored the first row. I'm not sure this is worth a pull request but here is my forked branch
https://github.com/neisenlo/Scribe-iOS/tree/iPadKeyboard

@andrewtavis
Copy link
Member Author

It’s definitely worth a PR :) No stress! Send it along and I’ll merge. Do you have interest in working on .xib layout files? You’d be welcome to if so. I could make a layout file that’s the same as the current one, make sure it can be referenced by just iPads, and then you could experiment with adding the fifth row. Only if it’s of interest obviously 😊 If you’d rather work on other parts of the issue I’d be happy to do the layout files myself fully :)

@neisenlo
Copy link
Contributor

This is my first swift project so it may take me a while to figure out how. But I would definitely be interested in giving it a try if that's not a concern.

@andrewtavis
Copy link
Member Author

No stress! Happy to have people use Scribe as a means to learn 😊 I’ll plan on setting up the base iPad .xib, and just let me know if you want to work on that file as well or take it over after I’m done making it :)

@andrewtavis
Copy link
Member Author

andrewtavis commented Apr 22, 2023

Hey @neisenlo 👋 9475942 added in the potential to add a numbers row to the keyboard. Settings up the .xib was actually easier than I expected and we thankfully didn't need to set up another layout file 😊 The following controls the height of the new UIStackView that we can populate with the numbers keys for iPads:

func conditionallyShowTopNumbersRow() {

This function as of now sets the height of this UIStackView to zero, but we can use the conditional to check the size of the iPad or potentially the model and then add in the numbers keys if appropriate :) Do you want to give adding in the numbers keys a shot, and then from there we can finish it up by adding in tab and some other iPad specific keys?

@andrewtavis
Copy link
Member Author

Hey @neisenlo 👋 Just wanted to let you know that I'm gonna go through the v2.3.0 release process now as I was able to get some good new features done over the last few days. No stress on this issue is what I'm getting at! Hope that all's well with you and that you have had a nice week! Let me know if you still have interest and we'll go from there 😊

@neisenlo
Copy link
Contributor

neisenlo commented May 1, 2023 via email

@andrewtavis
Copy link
Member Author

Sounds great, @neisenlo! Let me know what I can do to support you :) Again no rush on this as for now I'm focussed on another project, but I'm very happy to jump over and help out if you have questions 😊

@andrewtavis
Copy link
Member Author

Hey @neisenlo! Hope you're well :) Checking in with you on if you'd still like to work on this issue 😊 We're getting into the swing of things for our participation in Google Summer of Code, so would be great if we could also include this in all the work we'll be doing 🚀

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 12, 2023

since I can't see the current layout, would you mind sending a screenshot of how it currently looks on the simulator?

@andrewtavis
Copy link
Member Author

Hey @nyfz18! Yes, sure thing :) The layout files that you'd be editing are in files like Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift where we'd want to edit the values for letterKeysPad and the like :)

As of now it looks like this:

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 20 23 58

And we're hoping to change the values in each InterfaceVariables.swift file so it looks more like this:

ipad_keyboard

This would be only for iPads that are big enough though, which we can discuss later :)

Btw, @neisenlo - hey there 👋 You're still welcome to help with this. @nyfz18 is on Windows and can thus only do the base layout changes. I can support if you're still busy 😊 Hope you're well!

@andrewtavis
Copy link
Member Author

@SaurabhJamadagni and @wkyoshida, interesting to see that for iPads there's a fair amount of variety based on the country 🤔 I doubt there's much variety aside from the main currency symbol on phones, but for pads we may need to consider country localizations? Not sure 🤔 I think that the average person is hunting and pecking on iPad keyboards, and if they actually want to type then they have an external one. At the very least for the start I think just picking the one that's most popular by native speakers and providing the QWERTY/AZERTY options via #312 would be enough :)

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 12, 2023

I'm working through the code. Here's my forked repo: https://github.com/nyfz18/Scribe-iOS/blob/main/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift

I haven't added the symbols on the right hand side of the keyboard yet but I've added some of the left buttons. I just wanted to double check if I'm on the right track before adding more

@andrewtavis
Copy link
Member Author

andrewtavis commented Jul 12, 2023

Yes, @nyfz18, this is generally what we were thinking. Thanks for checking! The only main change I'd do is leave the original iPad layouts as there were and make new versions of it. For smaller iPads we'll still need to use the old version :) You could make two new variables - letterKeysPadExpanded and symbolKeysPadExpanded - and we'd then not need the expanded version of the number keys as they'd be in the top row :)

And as far as the "snake" character that you mentioned, in looking at it it seems to be a carrot (^) to the left or 1 on the German letters layout above 😊 You can just put in that char instead of snake.

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 12, 2023

Okay, thanks for checking. I just added the letterKeysPadExpanded. Is that what you meant?

Also, would it be possible to send a reference of what you want the symbolKeysPadExpanded to look like? I can layout the keyboard based on that

@andrewtavis
Copy link
Member Author

Thanks for the communication! :)

Also, would it be possible to send a reference of what you want the symbolKeysPadExpanded to look like? I can layout the keyboard based on that

Using the above images as a baseline and specifically German:

letterKeysPadExpanded would look like the following as you generally have set up in your branch:

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 21 51 44

There are a couple of changes that you need to make, like the keys after 0 being ß and ' instead of - and =. For symbolKeysPadExpanded we'd be looking for a similar variable with the layout looking like the second picture within each language group above:

Simulator Screenshot - iPad Pro (12 9-inch) (4th generation) - 2023-07-12 at 22 17 52

Happy to answer further questions! Thanks for getting at this!

@wkyoshida
Copy link
Member

At the very least for the start I think just picking the one that's most popular by native speakers and providing the QWERTY/AZERTY options

Yeah, I'd agree - I think I'm perhaps less concerned with some of the small key differences that some regions might have, since accounting for all of them might be a whole pandora's box we might not want opened yet 😨 😆 What IS worth accounting for though is when regions do have completely different layouts, as is the case with France vs Canada as we've been discussing. As you pointed out, we've got that planned, so I'd say we're alright

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 13, 2023

I added the letterKeysPadExpanded and symbolKeysPadExpanded. There are two things that I'm not sure how to do:

  • the quotation button in the symbol expanded layout (")
  • when there's two character a button (ex: the numbers)

@andrewtavis
Copy link
Member Author

the quotation button in the symbol expanded layout (")

Do you mean how to input it, @nyfz18? Normally you can via single quotes like '"' :) Let me know if it's something else though :)

when there's two character a button (ex: the numbers)

This is related to #22, which as of now is not a priority. We'll have the bottom character be what shows up on letterKeysPadExpanded and top character be what shows up on symbolKeysPadExpanded :)

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 13, 2023

Yeah, so for line 68 in my forked repo of DE Interface, in the 8th index, I currently have '"' . Is that the right formatting? My IDE is coloring some text weirdly because of that part of the program I think. Also once I have the expanded keyboard set, should I add a condition for the larger iPad so it'll use the expanded keyboard version?

Thanks for the help!

@wkyoshida
Copy link
Member

Yeah, so for line 68 in my forked repo of DE Interface...

Quick tip on the above!

When viewing repo files within GitHub, if you click on the line number, there's a Copy permalink option that gives a link that goes directly to the specific line in the file. Very handy for sharing with others!

image

@andrewtavis
Copy link
Member Author

Yeah, so for line 68 in my forked repo of DE Interface, in the 8th index, I currently have '"' . Is that the right formatting?

Yes, @nyfz18, this should work great 😊

Also once I have the expanded keyboard set, should I add a condition for the larger iPad so it'll use the expanded keyboard version?

You can if you'd like to! I'd be happy to figure out where that change should go and help you test it a bit in the PR :)

Thanks for the help!

Thanks for the interest and dedication!

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 20, 2023

Sure, what should I do next?

@andrewtavis
Copy link
Member Author

I guess we’re ready for a pull request for now :)

@andrewtavis
Copy link
Member Author

@nyfz18, b563c7f was the fixes to the PR you sent, with my comments being in the now closed discussions of #346 :) Feel free to send along more PRs for the languages that we already have: French, Italian, Portuguese, Russian, Spanish and Swedish. For the other languages that you see we haven't implemented the iPhone versions, but I can do that for you and you can come in for the expanded iPad versions 😊

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 24, 2023

hello! sorry, been a little swamped these days. I'll try to get them in by the end of the week sometime.

@andrewtavis
Copy link
Member Author

Sounds wonderful, @nyfz18! Looking forward :) :)

@nyfz18
Copy link
Contributor

nyfz18 commented Jul 28, 2023

I've updated the languages for French, Italian, Portuguese, Russian, Spanish, Swedish. I committed the changes to my repo but my repo isn't up to date yet. Not sure if that will affect anything when trying to merge the change to the main repo.

https://github.com/nyfz18/Scribe-iOS/tree/main/Keyboards/LanguageKeyboards

@andrewtavis
Copy link
Member Author

Hey @nyfz18! Ideally you'd update your branch with the changes that have gone through, but then the changes that you've made are to files that haven't been edited, so you should be good for a PR 😊 After that we can get these all hooked up!

@andrewtavis
Copy link
Member Author

cd89548 was a ton of edits :) Please don't worry about how much went into the commit to complete this, @nyfz18! As the issue numbers int he commit say, I basically decided to go through and get the layouts for the remaining keyboards that we're working on as well as I find that it's best to handle these sorts of things in batches.

I'll close this issue now as what needs to happen for each keyboard is contained within the respective new keyboard issue 😊 Thanks so much for your work on this, @nyfz18! I'll email you soon with some ideas I've come up with for what you could work on :) Some basic things that could be done though is that if you'd like to make the variables for #133, #134 and #135 within each of their respective InterfaceVariables and CommandVariables files then that'd be a great help in us getting these keyboards out eventually. This is another thing for Scribe-iOS that wouldn't need an emulator. I'd be happy to explain this more, but then I think what I'll suggest in the email might be more fun anyway :) :)

andrewtavis added a commit to Jag-Marcel/Scribe-iOS that referenced this issue Nov 9, 2024
8c13530 Merge pull request scribe-org#73 from yerimmii/ko-json
bc78915 Create ko.json
3f2a3de Minor edit to .gitignore for spacing
e40d892 Merge pull request scribe-org#72 from axif0/bangla
1afc6ea Creating Bangla localization
23c56ed Merge pull request scribe-org#70 from KesharwaniArpita/ArpitaContributionsMarathi
d49ed68 Create string.xml
7dc4b73 Create mr.json (Marathi)
6bc6502 Merge pull request scribe-org#69 from axif0/work
933237d Update pr_maintainer_checklist.yaml
fa75400 Merge pull request scribe-org#68 from OmarAI2003/MSA-internationalization
329ad53 Translate from en to ar
c81e3a1 Add Arabic translation file (ar.json) for localization support
45bce87 Merge pull request scribe-org#66 from OmarAI2003/improve-android-convert-str-to-json
b774027 Minor spacing and removing permissions error
a3eeda1 Merge pull request scribe-org#67 from weblate/weblate-scribe-scribe-i18n
c67255b Translated using Weblate (Spanish)
7054971 fix: add check for missing values_directory
a90a040 Error handling for file read and write operations
9295291 Use a single variable for the 'jsons' folder path and add error handling for missing 'jsons' folder.
5e85b16 Merge pull request scribe-org#64 from OmarAI2003/improve-android-convert-jsons-to-strings
94482ef Added docstrings to Android string conversion functions
2a7b35b for the recently supported language: adding the 'hi' language folder generated by the script to prevent 'directory not found' errors when testing the reverse conversion (JSON to strings).
13a4849 small fix to the lang_dir
e5ca964 Refactor: Pre-load language JSON files before generating strings.xml files
f8ffe63 Use a single variable for the 'jsons' folder path and add error handling for missing 'jsons' folder.
7dbeaa1 Merge pull request scribe-org#62 from OmarAI2003/improve-convert-jsons-to-xcstrings
a3e5fbf Minor edits to script spacing and comments
5fb2fc5 Merge pull request scribe-org#63 from KesharwaniArpita/ArpitaContributionsHindi
fd91955 Create hi.json
9fcc0de fix: update inline comments to start with lowercase as per style guide.
8925a4b Rename variable for improved clarity
aee58c0 Add error handling for missing base language file
d41c8eb Remove automatic creation of the 'jsons' folder
d811de7 Optimize performance by pre-loading language JSON files
81da648 Refactor: Use a single variable for the 'jsons' folder path and ensure it exists.
f354bb4 Fix file handling: Use context managers to ensure safe reading and writing of files.
13d52f2 Merge pull request scribe-org#58 from OmarAI2003/improve-convert-xcstrings-to-jsons
8b13ee6 Fix to en.json being written rather than en-US + minor edits
2a7e03d Merge pull request scribe-org#61 from weblate/weblate-scribe-scribe-i18n
f0abf87 Translated using Weblate (French)
6c4acae Merge pull request scribe-org#60 from OmarAI2003/fix-typo-in-readme.md
d30380a Revert: Move Localizable.xcstrings back to original location
46a68da moved Localizable.xcstrings again where it was as andrew told me
d426a4b Fix typo in README: Changed 'an tools' to 'tools'
0d48009  made the changes as per the feedback and added Localizable.xcstrings to 'jsons' directory
42e76dd Improve language handling and ensure directory creation
b1ccff7 Refactor: Use context manager for writing JSON files to ensure proper file handling.
5b97d83 Add JSON loading error handling in convert_xcstrings_to_jsons.py
32b8f70 Improve file handling in convert_xcstrings_to_jsons.py
7536be6 Update app menu headings to not include second word caps
c286cf2 Merge pull request scribe-org#50 from weblate/weblate-scribe-scribe-i18n
3038710 Translated using Weblate (Spanish)
b80ddc7 Translated using Weblate (Spanish)
faf7ce3 Various fixes of strings and adding conjugate keys
1eb7d47 Minor update to readme headers
04574f8 Remove unused keys and fix colon spacing
8492a7a Make sure that application names are not localized
0ac6710 Merge pull request #48 from weblate/weblate-scribe-scribe-i18n
80708cb Translated using Weblate (Spanish)
dd15564 Merge pull request #47 from weblate/weblate-scribe-scribe-i18n
f05f74d Translated using Weblate (Spanish)
5701774 Add missing and update incorrect strings
c0a45c2 Merge pull request #46 from angrezichatterbox/Run-Json-to-XML-Scripts
3af18ab feat:Ran the script for converting json to xml
935903a Edit working directory for conversion workflows to try to fix error
c60a196 Merge pull request #45 from weblate/weblate-scribe-scribe-i18n
fc18213 Translated using Weblate (Spanish)
872d232 Set working directory for conversion scripts
2f6f5ab Fix incorrect keys in translation language JSONs
feb4a18 Edit to conversion scripts to fix their paths with relation to root
d6cce32 Fix German GitHub key
c26c78d Add all app texts for scribe + conjugate with new keys
ad588cc Update the suggested room based on new room name
1e07813 Merge pull request #42 from angrezichatterbox/XML-TO-JSON-FIX
2a8fe2a fix:Added escape characters for \n
924f00c scribe-org#37 minor edits to conversion scripts and try new command path
aafa0f6 scribe-org#37 update Scribe-i18n structure and fix conversion workflow
6a8faaa Merge pull request scribe-org#39 from Jag-Marcel/i18n-refactor
2b9caff Added newline at end of all JSON files
e775e46 Updated jsons and xcstrings file using new iOS scripts
dd018c1 Refactored iOS conversion scripts to use python json package
7f8c273 Updated conversion workflow to use paths filter instead of conditional check
ff21cdb Refactored scripts into new iOS and Android folders
700a3ce Update Android strings given new conversion script
1ba25e6 Remove reference to contribution guide as it's been removed
5f38e75 Merge pull request scribe-org#38 from angrezichatterbox/special_character_check_xml
40d1edb feat:Added special character replacement in the Script
d9a35d7 Minor update of readme to make subtree creation more clear
10b07b5 Merge pull request scribe-org#36 from angrezichatterbox/xml_conversion
dcad620 Run stings conversion script + workflow for Android + docs
8b65382 feat:Added script for conversion from strings.xml to json
cea2273 feat:Added script for conversion from json to strings.xml
b25df32 Revert change to conversion to see if adding the full path will make it work
18d50ca Merge pull request scribe-org#35 from Jag-Marcel/xcode-script-fix
b8a1598 Merge pull request scribe-org#34 from wkyoshida/20
7aeba36 Removed conditional from action
cf9878e docs: Add documentation on using Scribe-i18n as a git subtree
307cadc Merge pull request scribe-org#33 from Jag-Marcel/xcode-script-fix
44fa905 Removed quotes around bool value

git-subtree-dir: Scribe/i18n
git-subtree-split: 8c13530b51716c2e2f38be2565b6ef1f5a3d4188
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Relates to UX/UI designs good first issue Good for newcomers help wanted Extra attention is needed
Projects
Archived in project
Development

No branches or pull requests

4 participants